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);
}
});
}
}
}
}
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());
}
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++;
}
}
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();
}
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();
}
Aggregations