Essentials/EssentialsDiscord/src/main/java/net/essentialsx/discord/interactions/commands/ListCommand.java

52 lines
2.0 KiB
Java

package net.essentialsx.discord.interactions.commands;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.PlayerList;
import com.earth2me.essentials.User;
import net.essentialsx.api.v2.services.discord.InteractionCommandArgument;
import net.essentialsx.api.v2.services.discord.InteractionCommandArgumentType;
import net.essentialsx.api.v2.services.discord.InteractionEvent;
import net.essentialsx.discord.JDADiscordService;
import net.essentialsx.discord.interactions.InteractionCommandImpl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static com.earth2me.essentials.I18n.tl;
public class ListCommand extends InteractionCommandImpl {
public ListCommand(JDADiscordService jda) {
super(jda, "list", tl("discordCommandListDescription"));
addArgument(new InteractionCommandArgument("group", tl("discordCommandListArgumentGroup"), InteractionCommandArgumentType.STRING, false));
}
@Override
public void onCommand(InteractionEvent event) {
final boolean showHidden = event.getMember().hasRoles(getAdminSnowflakes());
final List<String> output = new ArrayList<>();
final IEssentials ess = jda.getPlugin().getEss();
output.add(PlayerList.listSummary(ess, null, showHidden));
final Map<String, List<User>> playerList = PlayerList.getPlayerLists(ess, null, showHidden);
final String group = event.getStringArgument("group");
if (group != null) {
try {
output.add(PlayerList.listGroupUsers(ess, playerList, group));
} catch (Exception e) {
output.add(tl("errorWithMessage", e.getMessage()));
}
} else {
output.addAll(PlayerList.prepareGroupedList(ess, getName(), playerList));
}
final StringBuilder stringBuilder = new StringBuilder();
for (final String str : output) {
stringBuilder.append(str).append("\n");
}
event.reply(stringBuilder.substring(0, stringBuilder.length() - 2));
}
}