allow you to send a whole server

This commit is contained in:
ajgeiss0702
2021-04-18 12:04:25 -07:00
parent 5d6cf791b5
commit a3f03d278f
2 changed files with 34 additions and 7 deletions
+1 -1
View File
@@ -72,7 +72,7 @@ public class Main extends Plugin implements Listener {
d.put("status.now-in-empty-queue", ""); d.put("status.now-in-empty-queue", "");
d.put("status.sending-now", "&aSending you to &f{SERVER} &anow.."); 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.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.player-only", "&cThis command can only be executed as a player!");
d.put("errors.already-connected", "&cYou are already connected to this server!"); d.put("errors.already-connected", "&cYou are already connected to this server!");
@@ -1,6 +1,7 @@
package us.ajg0702.queue.commands; package us.ajg0702.queue.commands;
import net.md_5.bungee.api.CommandSender; 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.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command; import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.api.plugin.TabExecutor; import net.md_5.bungee.api.plugin.TabExecutor;
@@ -109,7 +110,7 @@ public class ManageCommand extends Command implements TabExecutor {
return; return;
} }
if(!Manager.getInstance().getServerNames().contains(args[1])) { 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; return;
} }
QueueServer srv = Manager.getInstance().findServer(args[1]); QueueServer srv = Manager.getInstance().findServer(args[1]);
@@ -161,7 +162,12 @@ public class ManageCommand extends Command implements TabExecutor {
return; return;
} }
List<String> playerNames = getNameList(); if(Manager.getInstance().getServer(args[2]) == null) {
sender.sendMessage(msgs.getBC("errors.server-not-exist", "SERVER:"+args[2]));
return;
}
List<String> playerNames = getNameList(true);
if(playerNames.contains(args[1].toLowerCase())) { if(playerNames.contains(args[1].toLowerCase())) {
ProxiedPlayer ply = pl.getProxy().getPlayer(args[1]); ProxiedPlayer ply = pl.getProxy().getPlayer(args[1]);
@@ -172,6 +178,21 @@ public class ManageCommand extends Command implements TabExecutor {
.replaceAll("\\{SERVER\\}", args[2])) .replaceAll("\\{SERVER\\}", args[2]))
); );
return; 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<ProxiedPlayer> 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 { } else {
sender.sendMessage(msgs.getBC("commands.send.player-not-found")); sender.sendMessage(msgs.getBC("commands.send.player-not-found"));
return; return;
@@ -182,11 +203,15 @@ public class ManageCommand extends Command implements TabExecutor {
sender.sendMessage(Main.formatMessage("/ajqueue <reload|list|send|pause>")); sender.sendMessage(Main.formatMessage("/ajqueue <reload|list|send|pause>"));
} }
private List<String> getNameList() { private List<String> getNameList(boolean lowercase) {
List<String> playerNames = new ArrayList<>(); List<String> playerNames = new ArrayList<>();
for(ProxiedPlayer ply : pl.getProxy().getPlayers()) { for(ProxiedPlayer ply : pl.getProxy().getPlayers()) {
if(ply == null || !ply.isConnected()) continue; 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; return playerNames;
} }
@@ -198,7 +223,9 @@ public class ManageCommand extends Command implements TabExecutor {
} }
if(args.length == 2) { if(args.length == 2) {
if(args[0].equalsIgnoreCase("send")) { if(args[0].equalsIgnoreCase("send")) {
return getNameList(); List<String> options = new ArrayList<>(pl.getProxy().getServers().keySet());
options.addAll(getNameList(false));
return options;
} }
if(args[0].equalsIgnoreCase("pause")) { if(args[0].equalsIgnoreCase("pause")) {
return Manager.getInstance().getServerNames(); return Manager.getInstance().getServerNames();
@@ -212,6 +239,6 @@ public class ManageCommand extends Command implements TabExecutor {
return Arrays.asList("on", "off", "true", "false"); return Arrays.asList("on", "off", "true", "false");
} }
} }
return null; return new ArrayList<>();
} }
} }