From a3f03d278f04253197ca32f264de68ee5482f813 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Sun, 18 Apr 2021 12:04:25 -0700 Subject: [PATCH] allow you to send a whole server --- src/main/java/us/ajg0702/queue/Main.java | 2 +- .../ajg0702/queue/commands/ManageCommand.java | 39 ++++++++++++++++--- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/main/java/us/ajg0702/queue/Main.java b/src/main/java/us/ajg0702/queue/Main.java index 406de1c..e02301c 100644 --- a/src/main/java/us/ajg0702/queue/Main.java +++ b/src/main/java/us/ajg0702/queue/Main.java @@ -72,7 +72,7 @@ public class Main extends Plugin implements Listener { d.put("status.now-in-empty-queue", ""); d.put("status.sending-now", "&aSending you to &f{SERVER} &anow.."); - d.put("errors.server-not-exist", "&cThat server does not exist!"); + d.put("errors.server-not-exist", "&cThe server {SERVER} does not exist!"); d.put("errors.already-queued", "&cYou are already queued for that server!"); d.put("errors.player-only", "&cThis command can only be executed as a player!"); d.put("errors.already-connected", "&cYou are already connected to this server!"); diff --git a/src/main/java/us/ajg0702/queue/commands/ManageCommand.java b/src/main/java/us/ajg0702/queue/commands/ManageCommand.java index 936e017..463e47a 100644 --- a/src/main/java/us/ajg0702/queue/commands/ManageCommand.java +++ b/src/main/java/us/ajg0702/queue/commands/ManageCommand.java @@ -1,6 +1,7 @@ package us.ajg0702.queue.commands; import net.md_5.bungee.api.CommandSender; +import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.plugin.Command; import net.md_5.bungee.api.plugin.TabExecutor; @@ -109,7 +110,7 @@ public class ManageCommand extends Command implements TabExecutor { return; } if(!Manager.getInstance().getServerNames().contains(args[1])) { - sender.sendMessage(msgs.getBC("errors.server-not-exist")); + sender.sendMessage(msgs.getBC("errors.server-not-exist", "SERVER:"+args[1])); return; } QueueServer srv = Manager.getInstance().findServer(args[1]); @@ -160,8 +161,13 @@ public class ManageCommand extends Command implements TabExecutor { sender.sendMessage(msgs.getBC("noperm")); return; } + + if(Manager.getInstance().getServer(args[2]) == null) { + sender.sendMessage(msgs.getBC("errors.server-not-exist", "SERVER:"+args[2])); + return; + } - List playerNames = getNameList(); + List playerNames = getNameList(true); if(playerNames.contains(args[1].toLowerCase())) { ProxiedPlayer ply = pl.getProxy().getPlayer(args[1]); @@ -172,6 +178,21 @@ public class ManageCommand extends Command implements TabExecutor { .replaceAll("\\{SERVER\\}", args[2])) ); return; + } else if(pl.getProxy().getServers().keySet().contains(args[1])) { + + ServerInfo from = pl.getProxy().getServerInfo(args[1]); + if(from == null) { + sender.sendMessage(msgs.getBC("errors.server-not-exist", "SERVER:"+args[1])); + return; + } + List players = new ArrayList<>(from.getPlayers()); + for(ProxiedPlayer ply : players) { + Manager.getInstance().addToQueue(ply, args[2]); + } + + sender.sendMessage(msgs.getBC("send", "PLAYER:"+args[1], "SERVER:"+args[2])); + return; + } else { sender.sendMessage(msgs.getBC("commands.send.player-not-found")); return; @@ -182,11 +203,15 @@ public class ManageCommand extends Command implements TabExecutor { sender.sendMessage(Main.formatMessage("/ajqueue ")); } - private List getNameList() { + private List getNameList(boolean lowercase) { List playerNames = new ArrayList<>(); for(ProxiedPlayer ply : pl.getProxy().getPlayers()) { if(ply == null || !ply.isConnected()) continue; - playerNames.add(ply.getName().toLowerCase()); + if(lowercase) { + playerNames.add(ply.getName().toLowerCase()); + } else { + playerNames.add(ply.getName()); + } } return playerNames; } @@ -198,7 +223,9 @@ public class ManageCommand extends Command implements TabExecutor { } if(args.length == 2) { if(args[0].equalsIgnoreCase("send")) { - return getNameList(); + List options = new ArrayList<>(pl.getProxy().getServers().keySet()); + options.addAll(getNameList(false)); + return options; } if(args[0].equalsIgnoreCase("pause")) { return Manager.getInstance().getServerNames(); @@ -212,6 +239,6 @@ public class ManageCommand extends Command implements TabExecutor { return Arrays.asList("on", "off", "true", "false"); } } - return null; + return new ArrayList<>(); } }