Search in sources :

Example 36 with Message

use of net.dv8tion.jda.core.entities.Message in project Ardent by adamint.

the class ShardInfo method noArgs.

@Override
public void noArgs(Guild guild, MessageChannel channel, User user, Message message, String[] args) throws Exception {
    StringBuilder builder = new StringBuilder();
    for (Shard shard : ShardManager.getShards()) {
        builder.append(shard.jda.getShardInfo()).append(" | STATUS: ").append(shard.jda.getStatus()).append(" | " + "U: ").append(shard.jda.getUsers().size()).append(" | G: ").append(shard.jda.getGuilds().size()).append(" | MC: ").append(shard.jda.getVoiceChannels().stream().filter(voiceChannel -> voiceChannel.getMembers().contains(voiceChannel.getGuild().getSelfMember())).count()).append(" | LE: " + (System.currentTimeMillis() - shard.getLAST_EVENT()));
        if (shard.jda.getShardInfo() != null && shard.jda.getShardInfo().equals(guild.getJDA().getShardInfo())) {
            builder.append(" <- CURRENT");
        }
        builder.append("\n");
    }
    channel.sendMessage(String.format("```prolog\n%s```", builder.toString())).queue();
}
Also used : Guild(net.dv8tion.jda.core.entities.Guild) ShardManager(tk.ardentbot.main.ShardManager) User(net.dv8tion.jda.core.entities.User) Command(tk.ardentbot.core.executor.Command) MessageChannel(net.dv8tion.jda.core.entities.MessageChannel) Shard(tk.ardentbot.main.Shard) Message(net.dv8tion.jda.core.entities.Message) Shard(tk.ardentbot.main.Shard)

Example 37 with Message

use of net.dv8tion.jda.core.entities.Message in project Ardent by adamint.

the class Stats method setupSubcommands.

@Override
public void setupSubcommands() throws Exception {
    subcommands.add(new Subcommand("See what commands are being used", "commands", "commands") {

        @Override
        public void onCall(Guild guild, MessageChannel channel, User user, Message message, String[] args) throws Exception {
            StringBuilder commandBars = new StringBuilder();
            Map<String, Long> commandsUsed = getCommandData(ShardManager.getShards());
            final int[] counter = { 0 };
            final int[] totalCommandsReceived = { 0 };
            commandsUsed.forEach((key, value) -> {
                if (counter[0] < 7)
                    totalCommandsReceived[0] += value;
                counter[0]++;
            });
            counter[0] = 0;
            commandsUsed.forEach((key, value) -> {
                if (counter[0] < 7) {
                    int percent = (int) (value * 100 / totalCommandsReceived[0]);
                    String bar = bar(percent);
                    if (bar != null) {
                        commandBars.append(bar + " " + percent + "% **" + key + "**\n");
                    }
                }
                counter[0]++;
            });
            EmbedBuilder builder = MessageUtils.getDefaultEmbed(user);
            builder.setAuthor("Command Statistics", getShard().url, getShard().bot.getAvatarUrl());
            builder.setColor(Color.GREEN);
            builder.setDescription("Command Usage\n" + commandBars.toString());
            sendEmbed(builder, channel, user);
        }
    });
    subcommands.add(new Subcommand("See how many server's I'm joining and leaving", "guilds") {

        @Override
        public void onCall(Guild guild, MessageChannel channel, User user, Message message, String[] args) throws Exception {
            EmbedBuilder builder = MessageUtils.getDefaultEmbed(user);
            builder.setAuthor("Guild Statistics", getShard().url, getShard().bot.getAvatarUrl());
            builder.setColor(Color.GREEN);
            int lPH = 0;
            int lPD = 0;
            int lPS = 0;
            long epochSecond = Instant.now().getEpochSecond();
            long hBar = epochSecond - (60 * 60);
            long dBar = epochSecond - (60 * 60 * 24);
            long sBar = 0;
            for (Instant i : Leave.botLeaveEvents) {
                if (i.getEpochSecond() >= hBar)
                    lPH++;
                if (i.getEpochSecond() >= dBar)
                    lPD++;
                // Always true
                if (i.getEpochSecond() >= sBar)
                    lPS++;
            }
            int jPH = 0;
            int jPD = 0;
            int jPS = 0;
            for (Instant i : Join.botJoinEvents) {
                if (i.getEpochSecond() >= hBar)
                    jPH++;
                if (i.getEpochSecond() >= dBar)
                    jPD++;
                // Always true
                if (i.getEpochSecond() >= sBar)
                    jPS++;
            }
            builder.addField("Hourly", generateGuild(jPH, lPH), false);
            builder.addField("Daily", generateGuild(jPD, lPD), false);
            builder.addField("This Session", generateGuild(jPS, lPS), false);
            builder.addField("Guilds", String.valueOf(InternalStats.collect().getGuilds()), false);
            sendEmbed(builder, channel, user);
        }
    });
}
Also used : ShardManager(tk.ardentbot.main.ShardManager) MessageUtils(tk.ardentbot.utils.discord.MessageUtils) Join(tk.ardentbot.core.events.Join) Command(tk.ardentbot.core.executor.Command) Leave(tk.ardentbot.core.events.Leave) Subcommand(tk.ardentbot.core.executor.Subcommand) HashMap(java.util.HashMap) Instant(java.time.Instant) MessageChannel(net.dv8tion.jda.core.entities.MessageChannel) Shard(tk.ardentbot.main.Shard) Message(net.dv8tion.jda.core.entities.Message) EmbedBuilder(net.dv8tion.jda.core.EmbedBuilder) java.awt(java.awt) Guild(net.dv8tion.jda.core.entities.Guild) User(net.dv8tion.jda.core.entities.User) MapUtils(tk.ardentbot.utils.MapUtils) Map(java.util.Map) InternalStats(tk.ardentbot.utils.discord.InternalStats) User(net.dv8tion.jda.core.entities.User) Subcommand(tk.ardentbot.core.executor.Subcommand) Message(net.dv8tion.jda.core.entities.Message) Instant(java.time.Instant) Guild(net.dv8tion.jda.core.entities.Guild) EmbedBuilder(net.dv8tion.jda.core.EmbedBuilder) MessageChannel(net.dv8tion.jda.core.entities.MessageChannel) HashMap(java.util.HashMap) Map(java.util.Map)

Example 38 with Message

use of net.dv8tion.jda.core.entities.Message in project Ardent by adamint.

the class MusicConfig method noArgs.

@Override
public void noArgs(Guild guild, MessageChannel channel, User user, Message message, String[] args) throws Exception {
    Cursor<HashMap> settings = r.db("data").table("music_settings").filter(row -> row.g("guild_id").eq(guild.getId())).run(connection);
    if (settings.hasNext()) {
        MusicSettingsModel musicSettingsModel = asPojo(settings.next(), MusicSettingsModel.class);
        sendTranslatedMessage("**music Settings**\n" + "Delete music play messages: " + musicSettingsModel.isRemove_addition_messages(), channel, user);
    } else
        sendTranslatedMessage("Your guild has no set music settings! Type **/manage** to find your portal" + " link", channel, user);
}
Also used : Guild(net.dv8tion.jda.core.entities.Guild) Cursor(com.rethinkdb.net.Cursor) User(net.dv8tion.jda.core.entities.User) Command(tk.ardentbot.core.executor.Command) MusicSettingsModel(tk.ardentbot.rethink.models.MusicSettingsModel) Database.connection(tk.ardentbot.rethink.Database.connection) Database.r(tk.ardentbot.rethink.Database.r) HashMap(java.util.HashMap) MessageChannel(net.dv8tion.jda.core.entities.MessageChannel) Message(net.dv8tion.jda.core.entities.Message) HashMap(java.util.HashMap) MusicSettingsModel(tk.ardentbot.rethink.models.MusicSettingsModel)

Example 39 with Message

use of net.dv8tion.jda.core.entities.Message in project MantaroBot by Mantaro.

the class Poll method createPoll.

private Future<Void> createPoll(Message message) {
    runningPoll = ReactionOperations.create(message, TimeUnit.MILLISECONDS.toSeconds(timeout), new ReactionOperation() {

        @Override
        public int add(MessageReactionAddEvent e) {
            int i = e.getReactionEmote().getName().charAt(0) - '\u0030';
            if (i < 1 || i > options.length)
                return Operation.IGNORED;
            // always return false anyway lul
            return Operation.IGNORED;
        }

        @Override
        public void onExpire() {
            if (getChannel() == null)
                return;
            EmbedBuilder embedBuilder = new EmbedBuilder().setTitle("Poll results").setDescription("**Showing results for the poll started by " + MantaroBot.getInstance().getUserById(owner).getName() + "** with name: *" + name + "*").setFooter("Thanks for your vote", null);
            AtomicInteger react = new AtomicInteger(0);
            AtomicInteger counter = new AtomicInteger(0);
            String votes = new ArrayList<>(getChannel().getMessageById(message.getIdLong()).complete().getReactions()).stream().filter(r -> react.getAndIncrement() <= options.length).map(r -> "+Registered " + (r.getCount() - 1) + " votes for option " + options[counter.getAndIncrement()]).collect(Collectors.joining("\n"));
            embedBuilder.addField("Results", "```diff\n" + votes + "```", false);
            getChannel().sendMessage(embedBuilder.build()).queue();
            getRunningPolls().remove(getChannel().getId());
        }

        @Override
        public void onCancel() {
            getChannel().sendMessage(EmoteReference.CORRECT + "Cancelled poll").queue();
            onExpire();
        }
    }, reactions(options.length));
    return runningPoll;
}
Also used : ReactionOperation(net.kodehawa.mantarobot.core.listeners.operations.core.ReactionOperation) MessageReactionAddEvent(net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent) JsonProperty(com.fasterxml.jackson.annotation.JsonProperty) TextChannel(net.dv8tion.jda.core.entities.TextChannel) Utils(net.kodehawa.mantarobot.utils.Utils) HashMap(java.util.HashMap) Message(net.dv8tion.jda.core.entities.Message) Lobby(net.kodehawa.mantarobot.commands.interaction.Lobby) ArrayList(java.util.ArrayList) MantaroBot(net.kodehawa.mantarobot.MantaroBot) GuildMessageReceivedEvent(net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent) Future(java.util.concurrent.Future) Permission(net.dv8tion.jda.core.Permission) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Map(java.util.Map) JsonIgnore(com.fasterxml.jackson.annotation.JsonIgnore) InteractiveOperations(net.kodehawa.mantarobot.core.listeners.operations.InteractiveOperations) DBGuild(net.kodehawa.mantarobot.db.entities.DBGuild) Collectors(java.util.stream.Collectors) ReactionOperations(net.kodehawa.mantarobot.core.listeners.operations.ReactionOperations) EmbedBuilder(net.dv8tion.jda.core.EmbedBuilder) java.awt(java.awt) TimeUnit(java.util.concurrent.TimeUnit) Stream(java.util.stream.Stream) User(net.dv8tion.jda.core.entities.User) GuildData(net.kodehawa.mantarobot.db.entities.helpers.GuildData) EmoteReference(net.kodehawa.mantarobot.utils.commands.EmoteReference) MantaroData(net.kodehawa.mantarobot.data.MantaroData) ReactionOperation(net.kodehawa.mantarobot.core.listeners.operations.core.ReactionOperation) Operation(net.kodehawa.mantarobot.core.listeners.operations.core.Operation) MessageReactionAddEvent(net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent) EmbedBuilder(net.dv8tion.jda.core.EmbedBuilder) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ArrayList(java.util.ArrayList)

Example 40 with Message

use of net.dv8tion.jda.core.entities.Message in project MantaroBot by Mantaro.

the class AudioLoader method loadSingle.

private void loadSingle(AudioTrack audioTrack, boolean silent) {
    AudioTrackInfo trackInfo = audioTrack.getInfo();
    audioTrack.setUserData(event.getAuthor().getId());
    DBGuild dbGuild = MantaroData.db().getGuild(event.getGuild());
    DBUser dbUser = MantaroData.db().getUser(event.getMember());
    GuildData guildData = dbGuild.getData();
    String title = trackInfo.title;
    long length = trackInfo.length;
    long queueLimit = !Optional.ofNullable(dbGuild.getData().getMusicQueueSizeLimit()).isPresent() ? MAX_QUEUE_LENGTH : dbGuild.getData().getMusicQueueSizeLimit();
    int fqSize = guildData.getMaxFairQueue();
    if (musicManager.getTrackScheduler().getQueue().size() > queueLimit && !dbUser.isPremium() && !dbGuild.isPremium()) {
        if (!silent)
            event.getChannel().sendMessage(String.format(":warning: Could not queue %s: Surpassed queue song limit!", title)).queue(message -> message.delete().queueAfter(30, TimeUnit.SECONDS));
        return;
    }
    if (audioTrack.getInfo().length > MAX_SONG_LENGTH && !dbUser.isPremium() && !dbGuild.isPremium()) {
        event.getChannel().sendMessage(String.format(":warning: Could not queue %s: Track is longer than 32 minutes! (%s)", title, AudioUtils.getLength(length))).queue();
        return;
    }
    // Comparing if the URLs are the same to be 100% sure they're just not spamming the same url over and over again.
    if (musicManager.getTrackScheduler().getQueue().stream().filter(track -> track.getInfo().uri.equals(audioTrack.getInfo().uri)).count() > fqSize && !silent) {
        event.getChannel().sendMessage(EmoteReference.ERROR + String.format("**Surpassed fair queue level of %d (Too many songs which are exactly equal)**", fqSize + 1)).queue();
        return;
    }
    musicManager.getTrackScheduler().queue(audioTrack, insertFirst);
    musicManager.getTrackScheduler().setRequestedChannel(event.getChannel().getIdLong());
    if (!silent) {
        event.getChannel().sendMessage(new MessageBuilder().append(String.format("\uD83D\uDCE3 Added to queue -> **%s** **(%s)**", title, AudioUtils.getLength(length))).stripMentions(event.getGuild(), Message.MentionType.EVERYONE, Message.MentionType.HERE).build()).queue();
    }
    MantaroBot.getInstance().getStatsClient().increment("tracks_loaded");
}
Also used : Utils(net.kodehawa.mantarobot.utils.Utils) GuildMusicManager(net.kodehawa.mantarobot.commands.music.GuildMusicManager) DiscordUtils(net.kodehawa.mantarobot.utils.DiscordUtils) AudioPlaylist(com.sedmelluq.discord.lavaplayer.track.AudioPlaylist) Message(net.dv8tion.jda.core.entities.Message) MantaroBot(net.kodehawa.mantarobot.MantaroBot) MessageBuilder(net.dv8tion.jda.core.MessageBuilder) GuildMessageReceivedEvent(net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent) DBUser(net.kodehawa.mantarobot.db.entities.DBUser) AudioTrackInfo(com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo) FriendlyException(com.sedmelluq.discord.lavaplayer.tools.FriendlyException) SentryHelper(net.kodehawa.mantarobot.utils.SentryHelper) DBGuild(net.kodehawa.mantarobot.db.entities.DBGuild) AudioLoadResultHandler(com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler) EmbedBuilder(net.dv8tion.jda.core.EmbedBuilder) java.awt(java.awt) TimeUnit(java.util.concurrent.TimeUnit) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) AudioUtils(net.kodehawa.mantarobot.commands.music.utils.AudioUtils) GuildData(net.kodehawa.mantarobot.db.entities.helpers.GuildData) EmoteReference(net.kodehawa.mantarobot.utils.commands.EmoteReference) MantaroData(net.kodehawa.mantarobot.data.MantaroData) Optional(java.util.Optional) AudioTrack(com.sedmelluq.discord.lavaplayer.track.AudioTrack) GuildData(net.kodehawa.mantarobot.db.entities.helpers.GuildData) DBGuild(net.kodehawa.mantarobot.db.entities.DBGuild) MessageBuilder(net.dv8tion.jda.core.MessageBuilder) AudioTrackInfo(com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo) DBUser(net.kodehawa.mantarobot.db.entities.DBUser)

Aggregations

Message (net.dv8tion.jda.core.entities.Message)50 EmbedBuilder (net.dv8tion.jda.core.EmbedBuilder)27 User (net.dv8tion.jda.core.entities.User)23 Guild (net.dv8tion.jda.core.entities.Guild)15 ArrayList (java.util.ArrayList)13 TextChannel (net.dv8tion.jda.core.entities.TextChannel)13 List (java.util.List)12 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)11 MessageChannel (net.dv8tion.jda.core.entities.MessageChannel)11 MessageUtils (stream.flarebot.flarebot.util.MessageUtils)10 GuildWrapper (stream.flarebot.flarebot.objects.GuildWrapper)9 Member (net.dv8tion.jda.core.entities.Member)8 Subcommand (tk.ardentbot.core.executor.Subcommand)8 TimeUnit (java.util.concurrent.TimeUnit)7 Collectors (java.util.stream.Collectors)7 MessageEmbed (net.dv8tion.jda.core.entities.MessageEmbed)7 CommandType (stream.flarebot.flarebot.commands.CommandType)7 HashMap (java.util.HashMap)6 Map (java.util.Map)6 Permission (stream.flarebot.flarebot.permissions.Permission)6