Search in sources :

Example 11 with Member

use of net.dv8tion.jda.api.entities.Member in project MantaroBot by Mantaro.

the class TrackScheduler method onTrackStart.

private void onTrackStart() {
    if (currentTrack == null) {
        onStop();
        return;
    }
    final var guild = MantaroBot.getInstance().getShardManager().getGuildById(guildId);
    final var dbGuild = MantaroData.db().getGuild(guildId);
    if (dbGuild.getData().isMusicAnnounce() && requestedChannel != 0 && getRequestedTextChannel() != null) {
        var voiceState = getRequestedTextChannel().getGuild().getSelfMember().getVoiceState();
        // What kind of massive meme is this? part 2
        if (voiceState == null) {
            this.getAudioPlayer().destroy();
            return;
        }
        final var voiceChannel = voiceState.getChannel();
        // It's called mantaro
        if (voiceChannel == null) {
            this.getAudioPlayer().destroy();
            return;
        }
        if (getRequestedTextChannel().canTalk() && repeatMode != Repeat.SONG) {
            var information = currentTrack.getInfo();
            var title = information.title;
            var trackLength = information.length;
            Member user = null;
            if (getCurrentTrack().getUserData() != null && guild != null) {
                // Retrieve member instead of user, so it gets cached.
                try {
                    user = guild.retrieveMemberById(String.valueOf(getCurrentTrack().getUserData()), false).complete();
                } catch (Exception ignored) {
                }
            }
            // Avoid massive spam of "now playing..." when repeating songs.
            if (lastMessageSentAt == 0 || lastMessageSentAt + 10000 < System.currentTimeMillis()) {
                getRequestedTextChannel().sendMessage(new MessageBuilder().append(String.format(language.get("commands.music_general.np_message"), "\uD83D\uDCE3", title, AudioCmdUtils.getDurationMinutes(trackLength), voiceChannel.getName(), user != null ? String.format(language.get("general.requested_by"), String.format("**%s**", user.getUser().getAsTag())) : "")).build()).queue(message -> {
                    if (getRequestedTextChannel() != null) {
                        lastMessageSentAt = System.currentTimeMillis();
                        message.delete().queueAfter(90, TimeUnit.SECONDS, scheduledExecutor);
                    }
                });
            }
        }
    }
}
Also used : MessageBuilder(net.dv8tion.jda.api.MessageBuilder) Member(net.dv8tion.jda.api.entities.Member)

Example 12 with Member

use of net.dv8tion.jda.api.entities.Member in project c0debaseBot by Biospheere.

the class MessageReceiveListener method onGuildMessageReceived.

@Override
public void onGuildMessageReceived(GuildMessageReceivedEvent event) {
    if (event.getAuthor().isBot()) {
        return;
    }
    if (event.getChannel().getTopic() != null && event.getChannel().getTopic().contains("\uD83D\uDCCC")) {
        createPoll(event.getMessage());
        return;
    }
    if (checkMemeMessage(event.getMessage())) {
        return;
    }
    final Member member = event.getMember();
    if (lastMessage.containsKey(member) && lastMessage.get(member).equalsIgnoreCase(event.getMessage().getContentRaw()) && event.getMessage().getAttachments().isEmpty()) {
        event.getMessage().delete().queue();
        return;
    }
    lastMessage.put(member, event.getMessage().getContentRaw());
    updateXP(event.getMessage());
}
Also used : Member(net.dv8tion.jda.api.entities.Member)

Example 13 with Member

use of net.dv8tion.jda.api.entities.Member in project c0debaseBot by Biospheere.

the class SinceLeaderboard method buildList.

@Override
public void buildList(EmbedBuilder embedBuilder, int page, boolean descending, Guild guild) {
    final List<Member> users = getSortedMembers(guild);
    if (!descending)
        Collections.reverse(users);
    for (Map.Entry<Integer, Member> entry : getPage(page, users, descending).entrySet()) {
        Member member = entry.getValue();
        int count = entry.getKey();
        if (member != null) {
            long days = ChronoUnit.DAYS.between(member.getTimeJoined(), LocalDateTime.now().atOffset(ZoneOffset.UTC));
            embedBuilder.appendDescription("`" + count + ")` " + StringUtils.replaceCharacter(member.getEffectiveName()) + "#" + member.getUser().getDiscriminator() + " (Beitritt am " + member.getTimeJoined().toInstant().atOffset(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm")) + " / Seit " + days + " Tag" + (days == 1 ? "" : "en") + ")\n");
        } else {
            embedBuilder.appendDescription("`" + count + ")` undefined#0000\n");
        }
        count++;
    }
}
Also used : Member(net.dv8tion.jda.api.entities.Member) Map(java.util.Map)

Example 14 with Member

use of net.dv8tion.jda.api.entities.Member in project c0debaseBot by Biospheere.

the class ServerinfoCommand method execute.

@Override
public void execute(final String[] args, final Message message) {
    final EmbedBuilder embedBuilder = getEmbed(message.getGuild(), message.getAuthor());
    final Member oldestMember = DiscordUtils.getOldestMember(message.getGuild());
    embedBuilder.setTitle(message.getGuild().getName(), "https://c0debase.de");
    embedBuilder.setThumbnail(message.getGuild().getIconUrl());
    embedBuilder.addField("Erstellt am", message.getGuild().getTimeCreated().format(DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm")), true);
    embedBuilder.addField("Region", message.getGuild().getRegionRaw(), true);
    embedBuilder.addField("Mitglieder", String.valueOf(message.getGuild().getMemberCount()), true);
    embedBuilder.addField("Boosts", String.valueOf(message.getGuild().getBoostCount()), true);
    embedBuilder.addField("Text Channels", String.valueOf(message.getGuild().getTextChannels().size()), true);
    embedBuilder.addField("Voice Channels", String.valueOf(message.getGuild().getVoiceChannels().size()), true);
    embedBuilder.addField("Rollen", String.valueOf(message.getGuild().getRoles().size()), true);
    embedBuilder.addField("Owner", StringUtils.replaceCharacter(message.getGuild().getOwner().getUser().getName()) + "#" + message.getGuild().getOwner().getUser().getDiscriminator(), true);
    if (oldestMember != null) {
        embedBuilder.addField("Ältestes Mitglied", StringUtils.replaceCharacter(oldestMember.getUser().getName()) + "#" + oldestMember.getUser().getDiscriminator(), true);
    }
    embedBuilder.addField("Erstellt vor", ChronoUnit.DAYS.between(message.getGuild().getTimeCreated(), LocalDateTime.now().atOffset(ZoneOffset.UTC)) + " Tagen", true);
    message.getTextChannel().sendMessage(embedBuilder.build()).queue();
}
Also used : EmbedBuilder(net.dv8tion.jda.api.EmbedBuilder) Member(net.dv8tion.jda.api.entities.Member)

Example 15 with Member

use of net.dv8tion.jda.api.entities.Member in project c0debaseBot by Biospheere.

the class UserinfoCommand method execute.

@Override
public void execute(final String[] args, final Message message) {
    final Member member = DiscordUtils.getAddressedMember(message);
    final EmbedBuilder embedBuilder = getEmbed(message.getMember());
    embedBuilder.setThumbnail(member.getUser().getAvatarUrl());
    embedBuilder.addField("Name", StringUtils.replaceCharacter(member.getUser().getName()), true);
    embedBuilder.addField("Nickname", member.getNickname() == null ? StringUtils.replaceCharacter(member.getUser().getName()) : StringUtils.replaceCharacter(member.getNickname()), true);
    embedBuilder.addField("Status", member.getOnlineStatus().getKey(), true);
    embedBuilder.addField("Spiel", member.getActivities().isEmpty() ? "---" : member.getActivities().get(0).getName(), true);
    embedBuilder.addField("Rollen", String.valueOf(member.getRoles().size()), true);
    embedBuilder.addField("Beitritt", member.getTimeJoined().format(DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm")), true);
    embedBuilder.addField("Erstelldatum: ", member.getUser().getTimeCreated().format(DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm")), true);
    embedBuilder.addField("Standard Avatar: ", String.valueOf(member.getUser().getAvatarUrl() == null), true);
    message.getTextChannel().sendMessage(embedBuilder.build()).queue();
}
Also used : EmbedBuilder(net.dv8tion.jda.api.EmbedBuilder) Member(net.dv8tion.jda.api.entities.Member)

Aggregations

Member (net.dv8tion.jda.api.entities.Member)19 EmbedBuilder (net.dv8tion.jda.api.EmbedBuilder)7 Map (java.util.Map)3 Collectors (java.util.stream.Collectors)3 MessageBuilder (net.dv8tion.jda.api.MessageBuilder)3 User (de.c0debase.bot.database.model.User)2 java.util (java.util)2 TimeUnit (java.util.concurrent.TimeUnit)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 Message (net.dv8tion.jda.api.entities.Message)2 Role (net.dv8tion.jda.api.entities.Role)2 MantaroBot (net.kodehawa.mantarobot.MantaroBot)2 CommandCategory (net.kodehawa.mantarobot.core.modules.commands.base.CommandCategory)2 Context (net.kodehawa.mantarobot.core.modules.commands.base.Context)2 HelpContent (net.kodehawa.mantarobot.core.modules.commands.help.HelpContent)2 MantaroData (net.kodehawa.mantarobot.data.MantaroData)2 EmoteReference (net.kodehawa.mantarobot.utils.commands.EmoteReference)2 Subscribe (com.google.common.eventbus.Subscribe)1 ThreadFactoryBuilder (com.google.common.util.concurrent.ThreadFactoryBuilder)1 BotCommandMappingHandler (com.sedmelluq.discord.lavaplayer.demo.controller.BotCommandMappingHandler)1