rework (1.3.0)

This commit is contained in:
ajgeiss0702
2020-05-22 09:03:43 -07:00
parent 9c1c279cf3
commit bb565cad27
13 changed files with 814 additions and 269 deletions
+18 -230
View File
@@ -1,32 +1,26 @@
package us.ajg0702.queue;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.TimeUnit;
import net.md_5.bungee.api.Callback;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.ServerPing;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
import net.md_5.bungee.api.event.ServerSwitchEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.event.EventHandler;
import us.ajg0702.queue.commands.LeaveCommand;
import us.ajg0702.queue.commands.ManageCommand;
import us.ajg0702.queue.commands.MoveCommand;
import us.ajg0702.queue.utils.BungeeConfig;
import us.ajg0702.queue.utils.BungeeMessages;
import us.ajg0702.queue.utils.BungeeStats;
import us.ajg0702.queue.utils.BungeeUtils;
public class Main extends Plugin implements Listener {
static Main plugin = null;
int timeBetweenPlayers = 5;
public int timeBetweenPlayers = 5;
BungeeStats metrics;
@@ -34,6 +28,8 @@ public class Main extends Plugin implements Listener {
BungeeConfig config;
Manager man;
boolean isp;
@Override
@@ -55,8 +51,6 @@ public class Main extends Plugin implements Listener {
timeBetweenPlayers = config.getInt("wait-time");
updateOnlineServers();
try {
Class.forName("us.ajg0702.queue.Logic");
isp = true;
@@ -64,12 +58,7 @@ public class Main extends Plugin implements Listener {
isp = false;
}
getProxy().getScheduler().schedule(this, new Runnable() {
public void run() {
updateOnlineServers();
sendPlayers();
}
}, 5, timeBetweenPlayers, TimeUnit.SECONDS);
man = Manager.getInstance(this);
metrics = new BungeeStats(this, 7404);
@@ -77,10 +66,12 @@ public class Main extends Plugin implements Listener {
}
public static Main getInstance() {
return plugin;
public boolean isp() {
return isp;
}
public void checkConfig() {
List<String> svs = getConfig().getStringList("queue-servers");
for(String s : svs) {
@@ -100,118 +91,12 @@ public class Main extends Plugin implements Listener {
}
HashMap<String, Integer> offlineTime = new HashMap<>();
boolean notif = false;
public void sendPlayers(String sv) {
for(String server : queues.keySet()) {
if(sv != null && !server.equalsIgnoreCase(sv)) continue;
List<ProxiedPlayer> plys = queues.get(server);
if(plys.size() <= 0) continue;
while(!plys.get(0).isConnected()) {
plys.remove(0);
if(plys.size() <= 0) break;
}
if(plys.size() <= 0) continue;
ProxiedPlayer p = plys.get(0);
if(!servers.get(server)) {
int ot;
if(!offlineTime.containsKey(server)) {
ot = timeBetweenPlayers;
} else {
ot = offlineTime.get(server)+timeBetweenPlayers;
}
offlineTime.put(server, ot);
for(ProxiedPlayer ply : plys) {
int pos = plys.indexOf(ply)+1;
if(pos == 0) {
plys.remove(ply);
continue;
}
int len = plys.size();
String or = msgs.get("status.offline.restarting");
if(ot > config.getInt("offline-time")) {
or = msgs.get("status.offline.offline");
} else {
//ply.sendMessage(formatMessage(ot + " <= "+offlineSecs));
}
if(notif) {
ply.sendMessage(formatMessage(
msgs.get("status.offline.base")
.replaceAll("\\{STATUS\\}", or)
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
));
}
if(getConfig().getBoolean("send-actionbar")) {
BungeeUtils.sendCustomData(ply, "actionbar", msgs.get("spigot.actionbar.offline")
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
.replaceAll("\\{STATUS\\}", or)+";time="+timeBetweenPlayers);
}
}
if(!notif) {
notif = true;
} else {
notif = false;
}
continue;
} else {
offlineTime.put(server, 0);
ServerInfo target = ProxyServer.getInstance().getServerInfo(server);
p.connect(target);
//plys.remove(p);
}
for(ProxiedPlayer ply : plys) {
int pos = plys.indexOf(ply)+1;
int len = plys.size();
int time = pos*timeBetweenPlayers;
int min = (int) Math.floor((time) / (60));
int sec = (int) Math.floor((time % (60)));
String timeStr;
if(min <= 0) {
timeStr = msgs.get("format.time.secs")
.replaceAll("\\{m\\}", "0")
.replaceAll("\\{s\\}", sec+"");
} else {
timeStr = msgs.get("format.time.mins")
.replaceAll("\\{m\\}", min+"")
.replaceAll("\\{s\\}", sec+"");
}
if(notif) {
ply.sendMessage(formatMessage(
msgs.get("status.online.base")
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
.replaceAll("\\{TIME\\}", timeStr)
));
}
if(getConfig().getBoolean("send-actionbar")) {
BungeeUtils.sendCustomData(ply, "actionbar", msgs.get("spigot.actionbar.online")
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
.replaceAll("\\{TIME\\}", timeStr)+";time="+timeBetweenPlayers);
}
}
if(!notif) {
notif = true;
} else {
notif = false;
}
}
}
public void sendPlayers() {
sendPlayers(null);
}
@EventHandler
public void moveServer(ServerSwitchEvent e) {
ProxiedPlayer p = e.getPlayer();
String queue = getPlayerInQueue(p);
if(queue != null) {
queues.get(queue).remove(p);
Server alreadyqueued = man.findPlayerInQueue(p);
if(alreadyqueued != null) {
alreadyqueued.getQueue().remove(p);
}
String servername = e.getPlayer().getServer().getInfo().getName();
@@ -222,7 +107,7 @@ public class Main extends Plugin implements Listener {
String from = parts[0];
String to = parts[1];
if(from.equalsIgnoreCase(servername)) {
addToQueue(p, to);
man.addToQueue(p, to);
}
}
}
@@ -230,107 +115,10 @@ public class Main extends Plugin implements Listener {
@EventHandler
public void onLeave(PlayerDisconnectEvent e) {
ProxiedPlayer p = e.getPlayer();
String queue = getPlayerInQueue(p);
if(queue != null) {
queues.get(queue).remove(p);
Server server = man.findPlayerInQueue(p);
if(server != null) {
server.getQueue().remove(p);
}
}
HashMap<String, Boolean> servers = new HashMap<>();
public void updateOnlineServers() {
for(final String server : getProxy().getServers().keySet()) {
if(!servers.containsKey(server)) {
servers.put(server, false);
}
getProxy().getServers().get(server).ping(new Callback<ServerPing>() {
@Override
public void done(ServerPing result, Throwable error) {
servers.put(server, error == null);
}
});
}
}
HashMap<String, List<ProxiedPlayer>> queues = new HashMap<>();
public void addToQueue(ProxiedPlayer p, String server) {
//getLogger().info("adding "+p.getDisplayName()+" to queue "+server);
if(!servers.containsKey(server)) {
p.sendMessage(msgs.getBC("errors.server-not-exist"));
return;
}
if(!queues.containsKey(server)) {
queues.put(server, new ArrayList<ProxiedPlayer>());
}
if(p.getServer().getInfo().getName().equals(server)) {
p.sendMessage(msgs.getBC("errors.already-connected"));
return;
}
String currentQueued = getPlayerInQueue(p);
List<ProxiedPlayer> list = queues.get(server);
if(list.indexOf(p) != -1) {
int pos = list.indexOf(p)+1;
int len = list.size();
p.sendMessage(formatMessage(
msgs.get("errors.already-queued")
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
));
return;
}
if(currentQueued != null) {
queues.get(currentQueued).remove(p);
p.sendMessage(msgs.getBC("status.left-last-queue"));
}
if(isp) {
us.ajg0702.queue.Logic.priorityLogic(list, server, p);
} else {
if((p.hasPermission("ajqueue.priority") || p.hasPermission("ajqueue.serverpriority."+server)) && list.size() > 0) {
int i = 0;
for(ProxiedPlayer ply : list) {
if(!(ply.hasPermission("ajqueue.priority") || ply.hasPermission("ajqueue.serverpriority."+server))) {
list.add(i, p);
break;
}
i++;
}
if(list.size() == 0) {
list.add(p);
}
} else {
list.add(p);
}
}
int pos = list.indexOf(p)+1;
int len = list.size();
p.sendMessage(formatMessage(
msgs.get("status.now-in-queue")
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
));
if(list.size() <= 1) {
sendPlayers(server);
}
}
public void sendPlayer(ProxiedPlayer p) {
String server = getPlayerInQueue(p);
if(server == null) return;
sendPlayers(server);
}
public String getPlayerInQueue(ProxiedPlayer p) {
for(String server : queues.keySet()) {
if(queues.get(server).indexOf(p) != -1) {
return server;
}
}
return null;
}
}
+329
View File
@@ -0,0 +1,329 @@
package us.ajg0702.queue;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import us.ajg0702.queue.utils.BungeeMessages;
import us.ajg0702.queue.utils.BungeeUtils;
public class Manager {
static Manager INSTANCE = null;
public static Manager getInstance(Main pl) {
if(INSTANCE == null) {
INSTANCE = new Manager(pl);
}
return INSTANCE;
}
public static Manager getInstance() {
return INSTANCE;
}
BungeeMessages msgs;
Main pl;
private Manager(Main pl) {
this.pl = pl;
msgs = BungeeMessages.getInstance();
reloadServers();
reloadIntervals();
}
/*
* Returns all servers
*/
public List<Server> getServers() {
return servers;
}
int sendId = -1;
int updateId = -1;
int messagerId = -1;
int actionbarId = -1;
/**
* Clears all intervals and re-makes them
*/
public void reloadIntervals() {
if(sendId != -1) {
pl.getProxy().getScheduler().cancel(sendId);
}
if(updateId != -1) {
pl.getProxy().getScheduler().cancel(updateId);
}
if(messagerId != -1) {
pl.getProxy().getScheduler().cancel(messagerId);
}
if(actionbarId != -1) {
pl.getProxy().getScheduler().cancel(actionbarId);
}
sendId = pl.getProxy().getScheduler().schedule(pl, new Runnable() {
public void run() {
sendPlayers();
}
}, 2, pl.timeBetweenPlayers, TimeUnit.SECONDS).getId();
updateId = pl.getProxy().getScheduler().schedule(pl, new Runnable() {
public void run() {
updateServers();
}
}, 0, Math.max(pl.timeBetweenPlayers, 2), TimeUnit.SECONDS).getId();
messagerId = pl.getProxy().getScheduler().schedule(pl, new Runnable() {
public void run() {
sendMessages();
}
}, 0, pl.getConfig().getInt("message-time"), TimeUnit.SECONDS).getId();
actionbarId = pl.getProxy().getScheduler().schedule(pl, new Runnable() {
public void run() {
sendActionBars();
}
}, 0, 2, TimeUnit.SECONDS).getId();
}
List<Server> servers = new ArrayList<>();
/**
* Checks servers that are in bungeecord and adds any it doesnt
* know about.
*/
public void reloadServers() {
Map<String, ServerInfo> svs = ProxyServer.getInstance().getServers();
for(String name : svs.keySet()) {
if(findServer(name) != null) continue;
ServerInfo info = svs.get(name);
servers.add(new Server(name, info));
}
}
/**
* Sends actionbar updates to all players in all queues with their
* position in the queue and time remaining
*/
public void sendActionBars() {
if(!pl.getConfig().getBoolean("send-actionbar")) return;
for(Server s : servers) {
int ot = s.getOfflineTime();
List<ProxiedPlayer> plys = s.getQueue();
for(ProxiedPlayer ply : plys) {
int pos = plys.indexOf(ply)+1;
if(pos == 0) {
plys.remove(ply);
continue;
}
int len = plys.size();
if(!s.isOnline()) {
String or = msgs.get("status.offline.restarting");
if(ot > pl.config.getInt("offline-time")) {
or = msgs.get("status.offline.offline");
}
BungeeUtils.sendCustomData(ply, "actionbar", msgs.get("spigot.actionbar.offline")
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
.replaceAll("\\{STATUS\\}", or)+";time="+pl.timeBetweenPlayers);
} else {
int time = pos*pl.timeBetweenPlayers;
int min = (int) Math.floor((time) / (60));
int sec = (int) Math.floor((time % (60)));
String timeStr;
if(min <= 0) {
timeStr = msgs.get("format.time.secs")
.replaceAll("\\{m\\}", "0")
.replaceAll("\\{s\\}", sec+"");
} else {
timeStr = msgs.get("format.time.mins")
.replaceAll("\\{m\\}", min+"")
.replaceAll("\\{s\\}", sec+"");
}
BungeeUtils.sendCustomData(ply, "actionbar", msgs.get("spigot.actionbar.online")
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
.replaceAll("\\{TIME\\}", timeStr)+";time="+pl.timeBetweenPlayers);
}
}
}
}
/**
* Sends the message to the player updating them on their position in the queue
* along with their time remaining
*/
public void sendMessages() {
for(Server s : servers) {
int ot = s.getOfflineTime();
List<ProxiedPlayer> plys = s.getQueue();
for(ProxiedPlayer ply : plys) {
int pos = plys.indexOf(ply)+1;
if(pos == 0) {
plys.remove(ply);
continue;
}
int len = plys.size();
if(!s.isOnline()) {
String or = msgs.get("status.offline.restarting");
if(ot > pl.config.getInt("offline-time")) {
or = msgs.get("status.offline.offline");
}
ply.sendMessage(Main.formatMessage(
msgs.get("status.offline.base")
.replaceAll("\\{STATUS\\}", or)
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
));
} else {
int time = pos*pl.timeBetweenPlayers;
int min = (int) Math.floor((time) / (60));
int sec = (int) Math.floor((time % (60)));
String timeStr;
if(min <= 0) {
timeStr = msgs.get("format.time.secs")
.replaceAll("\\{m\\}", "0")
.replaceAll("\\{s\\}", sec+"");
} else {
timeStr = msgs.get("format.time.mins")
.replaceAll("\\{m\\}", min+"")
.replaceAll("\\{s\\}", sec+"");
}
ply.sendMessage(Main.formatMessage(
msgs.get("status.online.base")
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
.replaceAll("\\{TIME\\}", timeStr)
));
}
}
}
}
/**
* Find a server by name
* @param name Name of the server
* @return The server if it exists (otherwise null)
*/
public Server findServer(String name) {
for(Server server : servers) {
if(server.getName().equals(name)) {
return server;
}
}
return null;
}
/**
* Updates info about servers.
*/
public void updateServers() {
for(Server s : servers) {
s.update();
}
}
/**
* Attempts to send the first player in all queues
*/
public void sendPlayers() {
sendPlayers(null);
}
/**
* Attempts to send the first player in this queue
* @param server The server to send the first player in the queue. null for all servers.
*/
public void sendPlayers(String server) {
for(Server s : servers) {
String name = s.getName();
if(server != null && !server.equals(name)) continue;
if(!s.isOnline()) continue;
if(s.getQueue().size() <= 0) continue;
s.getQueue().get(0).connect(s.getInfo());
}
}
/**
* Add a player to the queue for a server
* @param p The player
* @param s The name of the server
*/
public void addToQueue(ProxiedPlayer p, String s) {
Server server = findServer(s);
if(server == null) {
p.sendMessage(msgs.getBC("errors.server-not-exist"));
return;
}
Server beforeQueue = findPlayerInQueue(p);
if(beforeQueue != null) {
if(beforeQueue.equals(server)) {
p.sendMessage(msgs.getBC("errors.already-queued"));
return;
}
p.sendMessage(msgs.getBC("status.left-last-queue"));
beforeQueue.getQueue().remove(p);
}
List<ProxiedPlayer> list = server.getQueue();
if(list.indexOf(p) != -1) {
int pos = list.indexOf(p)+1;
int len = list.size();
p.sendMessage(Main.formatMessage(
msgs.get("errors.already-queued")
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
));
return;
}
if(pl.isp) {
us.ajg0702.queue.Logic.priorityLogic(list, s, p);
} else {
if((p.hasPermission("ajqueue.priority") || p.hasPermission("ajqueue.serverpriority."+server)) && list.size() > 0) {
int i = 0;
for(ProxiedPlayer ply : list) {
if(!(ply.hasPermission("ajqueue.priority") || ply.hasPermission("ajqueue.serverpriority."+server))) {
list.add(i, p);
break;
}
i++;
}
if(list.size() == 0) {
list.add(p);
}
} else {
list.add(p);
}
}
int pos = list.indexOf(p)+1;
int len = list.size();
p.sendMessage(Main.formatMessage(
msgs.get("status.now-in-queue")
.replaceAll("\\{POS\\}", pos+"")
.replaceAll("\\{LEN\\}", len+"")
));
if(list.size() <= 1) {
sendPlayers(s);
}
}
/**
* Finds which server the player is queued for
* @param p The player to search for
* @return The server the player is queued for. Null if not in a queue
*/
public Server findPlayerInQueue(ProxiedPlayer p) {
for(Server s : servers) {
if(s.getQueue().contains(p)) return s;
}
return null;
}
}
@@ -0,0 +1,93 @@
package us.ajg0702.queue;
import java.util.ArrayList;
import java.util.List;
import net.md_5.bungee.api.Callback;
import net.md_5.bungee.api.ServerPing;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
public class Server {
String name;
ServerInfo info;
public Server(String name, ServerInfo info) {
this.name = name;
this.info = info;
update();
}
public String getName() {
return name;
}
public ServerInfo getInfo() {
return info;
}
int offlineTime = 0;
boolean online = false;
int playercount = 0;
int maxplayers = 0;
long lastUpdate = -1;
public void update() {
info.ping(new Callback<ServerPing>() {
@Override
public void done(ServerPing result, Throwable error) {
online = error == null;
if(lastUpdate == -1) {
lastUpdate = System.currentTimeMillis();
offlineTime = 0;
} else {
int timesincelast = Math.round((System.currentTimeMillis() - lastUpdate)/1000);
lastUpdate = System.currentTimeMillis();
if(!online) {
offlineTime += timesincelast;
} else {
offlineTime = 0;
}
}
if(!online) {
playercount = 0;
maxplayers = 0;
return;
}
playercount = result.getPlayers().getOnline();
maxplayers = result.getPlayers().getMax();
}
});
}
public int getOfflineTime() {
return offlineTime;
}
public boolean isOnline() {
return online;
}
public boolean isFull() {
return playercount >= maxplayers;
}
List<ProxiedPlayer> queue = new ArrayList<>();
public List<ProxiedPlayer> getQueue() {
return queue;
}
boolean whitelisted = false;
List<String> whitelistedplayers = new ArrayList<>();
public void setWhitelisted(boolean b) {
whitelisted = b;
}
public void setWhitelistedPlayers(List<String> plys) {
whitelistedplayers = plys;
}
public boolean getWhitelisted() {
return whitelisted;
}
public List<String> getWhitelistedPlayers() {
return whitelistedplayers;
}
}
@@ -1,8 +1,11 @@
package us.ajg0702.queue;
package us.ajg0702.queue.commands;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
import us.ajg0702.queue.Main;
import us.ajg0702.queue.Manager;
import us.ajg0702.queue.Server;
import us.ajg0702.queue.utils.BungeeMessages;
public class LeaveCommand extends Command {
@@ -21,9 +24,9 @@ public class LeaveCommand extends Command {
return;
}
ProxiedPlayer p = (ProxiedPlayer) sender;
String queue = plugin.getPlayerInQueue((ProxiedPlayer) sender);
if(queue != null) {
plugin.queues.get(queue).remove(p);
Server server = Manager.getInstance().findPlayerInQueue((ProxiedPlayer) sender);
if(server != null) {
server.getQueue().remove(p);
p.sendMessage(msgs.getBC("commands.leave-queue"));
}
}
@@ -1,4 +1,4 @@
package us.ajg0702.queue;
package us.ajg0702.queue.commands;
import java.util.ArrayList;
import java.util.List;
@@ -6,6 +6,9 @@ import java.util.List;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
import us.ajg0702.queue.Main;
import us.ajg0702.queue.Manager;
import us.ajg0702.queue.Server;
import us.ajg0702.queue.utils.BungeeMessages;
public class ManageCommand extends Command {
@@ -31,6 +34,9 @@ public class ManageCommand extends Command {
}
msgs.reload();
pl.getConfig().reload();
pl.timeBetweenPlayers = pl.getConfig().getInt("wait-time");
Manager.getInstance().reloadIntervals();
Manager.getInstance().reloadServers();
pl.checkConfig();
sender.sendMessage(msgs.getBC("commands.reload"));
return;
@@ -38,11 +44,11 @@ public class ManageCommand extends Command {
}
if(args[0].equalsIgnoreCase("list")) {
int total = 0;
for(String server : pl.queues.keySet()) {
for(Server server : Manager.getInstance().getServers()) {
String msg = msgs.get("list.format").replaceAll("\\{SERVER\\}", server);
String msg = msgs.get("list.format").replaceAll("\\{SERVER\\}", server.getName());
String playerlist = "";
List<ProxiedPlayer> players = pl.queues.get(server);
List<ProxiedPlayer> players = server.getQueue();
if(msg.contains("{LIST}")) {
for(ProxiedPlayer p : players) {
playerlist += msgs.get("list.playerlist").replaceAll("\\{NAME\\}", p.getDisplayName());
@@ -61,7 +67,7 @@ public class ManageCommand extends Command {
return;
}
if(args[0].equalsIgnoreCase("p")) {
sender.sendMessage(Main.formatMessage(pl.isp+""));
sender.sendMessage(Main.formatMessage(pl.isp()+""));
return;
}
if(args[0].equalsIgnoreCase("player")) {
@@ -82,7 +88,7 @@ public class ManageCommand extends Command {
return;
}
ProxiedPlayer ply = pl.getProxy().getPlayer(args[0]);
pl.addToQueue(ply, args[1]);
Manager.getInstance().addToQueue(ply, args[1]);
sender.sendMessage(Main.formatMessage(
msgs.get("send")
.replaceAll("\\{PLAYER\\}", ply.getDisplayName())
@@ -1,9 +1,11 @@
package us.ajg0702.queue;
package us.ajg0702.queue.commands;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
import us.ajg0702.queue.Main;
import us.ajg0702.queue.Manager;
import us.ajg0702.queue.Server;
import us.ajg0702.queue.utils.BungeeMessages;
public class MoveCommand extends Command {
@@ -23,11 +25,11 @@ public class MoveCommand extends Command {
}
ProxiedPlayer p = (ProxiedPlayer) sender;
if(args.length > 0) {
plugin.addToQueue(p, args[0]);
Manager.getInstance().addToQueue(p, args[0]);
} else if(args.length == 0) {
String queue = plugin.getPlayerInQueue((ProxiedPlayer) sender);
if(queue != null) {
plugin.queues.get(queue).remove(p);
Server server = Manager.getInstance().findPlayerInQueue((ProxiedPlayer) sender);
if(server != null) {
server.getQueue().remove(p);
p.sendMessage(msgs.getBC("commands.leave-queue"));
}
}
@@ -33,22 +33,6 @@ public class Main extends JavaPlugin implements PluginMessageListener {
final String text = data.split(";time=")[0];
//getLogger().info("recieved actionbar for "+player.getName()+": "+text);
VersionSupport.sendActionBar(p, text);
int time = Integer.parseInt(data.split(";time=")[1]);
if(time > 2) {
Bukkit.getScheduler().runTaskLater(this, new Runnable() {
public void run() {
VersionSupport.sendActionBar(p, text);
}
}, 2*20);
if(time > 4) {
Bukkit.getScheduler().runTaskLater(this, new Runnable() {
public void run() {
VersionSupport.sendActionBar(p, text);
}
}, 4*20);
}
}
}
}
}
@@ -61,7 +61,7 @@ public class BungeeMessages {
d.put("status.now-in-queue", "&aYou are now queued! &7You are in position &f{POS}&7 of &f{LEN}&7.\n&7Type &f/leavequeue&7 to leave the queue!");
d.put("errors.server-not-exist", "&cThat server does not exist!");
d.put("errors.already-queued", "&cYou are already queued! &7You are in position &f{POS}&7 of &f{LEN}&7.");
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!");