forked from Fascinated/Bat
update member count command
This commit is contained in:
@ -1,18 +1,24 @@
|
||||
package cc.fascinated.bat.command.impl.server;
|
||||
|
||||
import cc.fascinated.bat.Emojis;
|
||||
import cc.fascinated.bat.command.BatCommand;
|
||||
import cc.fascinated.bat.command.CommandInfo;
|
||||
import cc.fascinated.bat.common.EmbedUtils;
|
||||
import cc.fascinated.bat.common.NumberUtils;
|
||||
import cc.fascinated.bat.model.BatGuild;
|
||||
import cc.fascinated.bat.model.BatUser;
|
||||
import lombok.NonNull;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.OnlineStatus;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.api.interactions.commands.SlashCommandInteraction;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Nick (okNick)
|
||||
*/
|
||||
@ -23,7 +29,40 @@ public class MemberCountCommand extends BatCommand {
|
||||
public void execute(BatGuild guild, @NonNull BatUser user, @NonNull MessageChannel channel, Member member, @NonNull SlashCommandInteraction interaction) {
|
||||
EmbedBuilder embed = EmbedUtils.genericEmbed().setAuthor("Member Count");
|
||||
Guild discordGuild = guild.getDiscordGuild();
|
||||
embed.setDescription("**%s** has a total of %s members.".formatted(discordGuild.getName(), discordGuild.getMembers().size()));
|
||||
int totalMembers = 0, totalUsers = 0, totalBots = 0;
|
||||
Map<OnlineStatus, Integer> memberCounts = new HashMap<>();
|
||||
for (Member guildMember : discordGuild.getMembers()) {
|
||||
OnlineStatus status = guildMember.getOnlineStatus();
|
||||
memberCounts.put(status, memberCounts.getOrDefault(status, 0) + 1);
|
||||
|
||||
if (guildMember.getUser().isBot()) {
|
||||
totalBots++;
|
||||
} else {
|
||||
totalUsers++;
|
||||
}
|
||||
totalMembers++;
|
||||
}
|
||||
|
||||
embed.setDescription("""
|
||||
Total Members: `%s`
|
||||
Total Users: `%s`
|
||||
Total Bots: `%s`
|
||||
\s
|
||||
%s Online: `%s`
|
||||
%s Idle: `%s`
|
||||
%s Do Not Disturb: `%s`
|
||||
%s Offline: `%s`""".formatted(
|
||||
NumberUtils.formatNumberCommas(totalMembers),
|
||||
NumberUtils.formatNumberCommas(totalUsers),
|
||||
NumberUtils.formatNumberCommas(totalBots),
|
||||
Emojis.ONLINE_EMOJI,
|
||||
NumberUtils.formatNumberCommas(memberCounts.getOrDefault(OnlineStatus.ONLINE, 0)),
|
||||
Emojis.IDLE_EMOJI,
|
||||
NumberUtils.formatNumberCommas(memberCounts.getOrDefault(OnlineStatus.IDLE, 0)),
|
||||
Emojis.DND_EMOJI,
|
||||
NumberUtils.formatNumberCommas(memberCounts.getOrDefault(OnlineStatus.DO_NOT_DISTURB, 0)),
|
||||
Emojis.OFFLINE_EMOJI,
|
||||
NumberUtils.formatNumberCommas(memberCounts.getOrDefault(OnlineStatus.OFFLINE, 0))));
|
||||
interaction.replyEmbeds(embed.build()).queue();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user