Seperate sudo-queueing and normal queueing on spigot side. /queue <player> <server> on the spigot side now acts the same as /ajqueue send

This commit is contained in:
ajgeiss0702
2023-06-08 10:05:53 -07:00
parent 80289de371
commit 2414c698ed
6 changed files with 85 additions and 15 deletions
@@ -7,6 +7,7 @@ import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import us.ajg0702.queue.api.spigot.AjQueueSpigotAPI;
public class Commands implements CommandExecutor {
@@ -42,23 +43,32 @@ public class Commands implements CommandExecutor {
pl.sendMessage(player, "leavequeue", arg.toString());
return true;
}
// Queue command
if(args.length < 1) return false;
String srvname = args[0];
String serverName = args[0];
boolean sudo = true;
// /queue <player> <server>
if(args.length > 1) {
pl.getLogger().info("Sending "+args[0]+" to queue '" + args[1] + "'");
sudo = false;
if(!sender.hasPermission("ajqueue.send")) {
sender.sendMessage(color("&cYou do not have permission to do this!"));
return true;
}
Player tply = Bukkit.getPlayer(args[0]);
if(tply == null) {
pl.getLogger().info("Sending "+args[0]+" to queue '" + args[1] + "'");
Player playerToSend = Bukkit.getPlayer(args[0]);
if(playerToSend == null) {
sender.sendMessage(color("&cCannot find that player!"));
return true;
}
player = tply;
srvname = args[1];
player = playerToSend;
serverName = args[1];
}
if(player == null) {
@@ -66,10 +76,14 @@ public class Commands implements CommandExecutor {
return true;
}
if(pl.getAConfig().getBoolean("send-queue-commands-in-batches")) {
pl.queuebatch.put(player, srvname);
if(sudo) {
if(pl.getAConfig().getBoolean("send-queue-commands-in-batches")) {
pl.queuebatch.put(player, serverName);
} else {
AjQueueSpigotAPI.getInstance().sudoQueue(player.getUniqueId(), serverName);
}
} else {
pl.sendMessage(player, "queue", srvname);
AjQueueSpigotAPI.getInstance().addToQueue(player.getUniqueId(), serverName);
}
return true;
@@ -38,7 +38,25 @@ public class SpigotAPI extends AjQueueSpigotAPI {
@Override
public Future<Boolean> addToQueue(UUID player, String queueName) {
throw new UnsupportedOperationException("Not yet implemented!");
Player p = Bukkit.getPlayer(player);
if(p == null) throw new IllegalArgumentException("Player must be online!");
CompletableFuture<Boolean> future = new CompletableFuture<>();
responseManager.awaitResponse(player.toString(), "serverqueue", response -> {
future.complete(Boolean.valueOf(response.getResponse()));
});
main.sendMessage(p, "serverqueue", queueName);
return future;
}
@Override
public void sudoQueue(UUID player, String queueName) {
Player p = Bukkit.getPlayer(player);
if(p == null) throw new IllegalArgumentException("Player must be online!");
main.sendMessage(p, "queue", queueName);
}
@Override