From ff5e68fcc3372cf075e7ba7b455e64adef425914 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Thu, 13 Jan 2022 13:33:13 -0700 Subject: [PATCH] kickall command wip --- .../commands/commands/manage/KickAll.java | 92 +++++++++++++++++++ .../commands/manage/ManageCommand.java | 1 + 2 files changed, 93 insertions(+) create mode 100644 common/src/main/java/us/ajg0702/queue/commands/commands/manage/KickAll.java diff --git a/common/src/main/java/us/ajg0702/queue/commands/commands/manage/KickAll.java b/common/src/main/java/us/ajg0702/queue/commands/commands/manage/KickAll.java new file mode 100644 index 0000000..3b222c1 --- /dev/null +++ b/common/src/main/java/us/ajg0702/queue/commands/commands/manage/KickAll.java @@ -0,0 +1,92 @@ +package us.ajg0702.queue.commands.commands.manage; + +import com.google.common.collect.ImmutableList; +import us.ajg0702.queue.api.commands.ICommandSender; +import us.ajg0702.queue.api.players.QueuePlayer; +import us.ajg0702.queue.api.queues.QueueServer; +import us.ajg0702.queue.commands.SubCommand; +import us.ajg0702.queue.common.QueueMain; +import us.ajg0702.utils.common.Messages; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class KickAll extends SubCommand { + + final QueueMain main; + public KickAll(QueueMain main) { + this.main = main; + } + + @Override + public String getName() { + return "kickall"; + } + + @Override + public ImmutableList getAliases() { + return ImmutableList.of(); + } + + @Override + public String getPermission() { + return "ajqueue.manage.kickall"; + } + + @Override + public Messages getMessages() { + return main.getMessages(); + } + + @Override + public void execute(ICommandSender sender, String[] args) { + if(!checkPermission(sender)) return; + + if(args.length < 1) { + sender.sendMessage(getMessages().getComponent("commands.kick.usage")); + return; + } + + List kickPlayers; + + if(args.length == 1) { + kickPlayers = main.getQueueManager().findPlayerInQueuesByName(args[0]); + } else { + QueueServer queue = main.getQueueManager().findServer(args[1]); + if(queue == null) { + sender.sendMessage(getMessages().getComponent("commands.kick.unknown-server", "QUEUE:"+args[1])); + return; + } + kickPlayers = Collections.singletonList(queue.findPlayer(args[0])); + } + + if(kickPlayers.size() == 0) { + sender.sendMessage(getMessages().getComponent("commands.kick.no-player", "PLAYER:"+args[0])); + return; + } + + for(QueuePlayer player : kickPlayers) { + player.getQueueServer().removePlayer(player); + } + + sender.sendMessage(getMessages().getComponent( + "commands.kick.success", + "PLAYER:"+args[0], + "NUM:"+kickPlayers.size(), + "s:"+ (kickPlayers.size() == 1 ? "" : "s") + )); + } + + @Override + public List autoComplete(ICommandSender sender, String[] args) { + if(args.length == 1) { + return main.getPlatformMethods().getPlayerNames(false); + } + if(args.length == 2) { + return main.getQueueManager().getServerNames(); + } + return new ArrayList<>(); + } +} + diff --git a/common/src/main/java/us/ajg0702/queue/commands/commands/manage/ManageCommand.java b/common/src/main/java/us/ajg0702/queue/commands/commands/manage/ManageCommand.java index 632c000..2d94fe5 100644 --- a/common/src/main/java/us/ajg0702/queue/commands/commands/manage/ManageCommand.java +++ b/common/src/main/java/us/ajg0702/queue/commands/commands/manage/ManageCommand.java @@ -32,6 +32,7 @@ public class ManageCommand extends BaseCommand { addSubCommand(new Whitelist(main)); addSubCommand(new Update(main)); addSubCommand(new Kick(main)); + addSubCommand(new KickAll(main)); }