diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
index 1c7ef5d..f980ddd 100644
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -4,7 +4,7 @@
us.ajg0702
ajQueue
ajQueue
- 1.4.6
+ 1.4.8
diff --git a/pom.xml b/pom.xml
index d8ee3f5..d15f768 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
us.ajg0702
ajQueue
- 1.4.6
+ 1.4.8
ajQueue
diff --git a/src/main/java/us/ajg0702/queue/Main.java b/src/main/java/us/ajg0702/queue/Main.java
index a614e16..bfa0896 100644
--- a/src/main/java/us/ajg0702/queue/Main.java
+++ b/src/main/java/us/ajg0702/queue/Main.java
@@ -3,10 +3,12 @@ package us.ajg0702.queue;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
+import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.concurrent.Callable;
+import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
@@ -41,6 +43,8 @@ public class Main extends Plugin implements Listener {
boolean isp;
+ MoveCommand moveCommand;
+
@Override
public void onEnable() {
plugin = this;
@@ -90,7 +94,8 @@ public class Main extends Plugin implements Listener {
config = new BungeeConfig(this);
checkConfig();
- this.getProxy().getPluginManager().registerCommand(this, new MoveCommand(this));
+ moveCommand = new MoveCommand(this);
+ this.getProxy().getPluginManager().registerCommand(this, moveCommand);
this.getProxy().getPluginManager().registerCommand(this, new ManageCommand(this));
this.getProxy().getPluginManager().registerCommand(this, new LeaveCommand(this));
@@ -218,7 +223,11 @@ public class Main extends Plugin implements Listener {
if(subchannel.equals("queue")) {
String data = in.readUTF();
- man.addToQueue(player, data);
+ String[] args = new String[1];
+ args[0] = data;
+ moveCommand.execute((CommandSender) player, args);
+ //man.addToQueue(player, data);
+
}
if(subchannel.equals("queuename")) {
BungeeUtils.sendCustomData(player, "queuename", man.getQueuedName(player));
diff --git a/src/main/java/us/ajg0702/queue/Manager.java b/src/main/java/us/ajg0702/queue/Manager.java
index 5928602..2adaafd 100644
--- a/src/main/java/us/ajg0702/queue/Manager.java
+++ b/src/main/java/us/ajg0702/queue/Manager.java
@@ -40,7 +40,7 @@ public class Manager {
public void run() {
reloadServers();
}
- }, 0, TimeUnit.SECONDS);
+ }, pl.config.getInt("wait-to-load-servers-delay"), TimeUnit.MILLISECONDS);
}
}
diff --git a/src/main/java/us/ajg0702/queue/commands/ManageCommand.java b/src/main/java/us/ajg0702/queue/commands/ManageCommand.java
index 534e264..a3d1150 100644
--- a/src/main/java/us/ajg0702/queue/commands/ManageCommand.java
+++ b/src/main/java/us/ajg0702/queue/commands/ManageCommand.java
@@ -81,17 +81,14 @@ public class ManageCommand extends Command {
}
if(args.length == 2) {
-
- List playerNames = new ArrayList<>();
- for(ProxiedPlayer ply : pl.getProxy().getPlayers()) {
- if(ply == null || !ply.isConnected()) continue;
- playerNames.add(ply.getName().toLowerCase());
+ if(!sender.hasPermission("ajqueue.send")) {
+ sender.sendMessage(msgs.getBC("noperm"));
+ return;
}
+
+ List playerNames = getNameList();
if(playerNames.contains(args[0].toLowerCase())) {
- if(!sender.hasPermission("ajqueue.send")) {
- sender.sendMessage(msgs.getBC("noperm"));
- return;
- }
+
ProxiedPlayer ply = pl.getProxy().getPlayer(args[0]);
Manager.getInstance().addToQueue(ply, args[1]);
sender.sendMessage(Main.formatMessage(
@@ -104,4 +101,14 @@ public class ManageCommand extends Command {
}
sender.sendMessage(Main.formatMessage("/ajqueue "));
- }}
+ }
+
+ private List getNameList() {
+ List playerNames = new ArrayList<>();
+ for(ProxiedPlayer ply : pl.getProxy().getPlayers()) {
+ if(ply == null || !ply.isConnected()) continue;
+ playerNames.add(ply.getName().toLowerCase());
+ }
+ return playerNames;
+ }
+}
diff --git a/src/main/java/us/ajg0702/queue/commands/MoveCommand.java b/src/main/java/us/ajg0702/queue/commands/MoveCommand.java
index 78a0074..5ac3bae 100644
--- a/src/main/java/us/ajg0702/queue/commands/MoveCommand.java
+++ b/src/main/java/us/ajg0702/queue/commands/MoveCommand.java
@@ -23,7 +23,12 @@ public class MoveCommand extends Command {
return;
}
ProxiedPlayer p = (ProxiedPlayer) sender;
+
if(args.length > 0) {
+ if(plugin.getConfig().getBoolean("require-permission") && !p.hasPermission("ajqueue.queue."+args[0])) {
+ sender.sendMessage(msgs.getBC("noperm"));
+ return;
+ }
Manager.getInstance().addToQueue(p, args[0]);
} else if(args.length == 0) {
sender.sendMessage(msgs.getBC("commands.joinqueue.usage"));
diff --git a/src/main/java/us/ajg0702/queue/utils/BungeeMessages.java b/src/main/java/us/ajg0702/queue/utils/BungeeMessages.java
index 0b503b4..18aacd8 100644
--- a/src/main/java/us/ajg0702/queue/utils/BungeeMessages.java
+++ b/src/main/java/us/ajg0702/queue/utils/BungeeMessages.java
@@ -90,6 +90,7 @@ public class BungeeMessages {
d.put("spigot.actionbar.offline", "&7You are queued for &f{SERVER}&7. &7You are in position &f{POS}&7 of &f{LEN}&7.");
d.put("send", "&aAdded &f{PLAYER}&a to the queue for &f{SERVER}");
+ d.put("remove", "&aRemoved &f{PLAYER} from all queues they were in.");
d.put("placeholders.queued.none", "None");
d.put("placeholders.position.none", "None");
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index e9ad7d0..3223fb9 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -1,5 +1,5 @@
# Dont touch this number please
-config-version: 6
+config-version: 8
# The time the server will wait between sending people in the queue
# Default: 5
@@ -43,8 +43,20 @@ remove-player-on-server-switch: true
# Default: false
wait-to-load-servers: false
+# How long should we wait after the server finishes loading to load the server list?
+# Only works if the above is enabled.
+# This is in miliseconds so 1000 = 1 second
+# Default: 500
+wait-to-load-servers-delay: 500
+
# How often (in seconds) we should check for new servers to add queues for.
# If you dynamicly add servers, set this to something other than 0.
# To disable, set to 0
reload-servers-interval: 0
+
+
+# Should we require permissions for players to be able to join queues?
+# If enabled, players will be required to have the permission ajqueue.queue.
+# Default: false
+require-permission: false