Add %ajqueue_status_<server>% placeholder

This commit is contained in:
ajgeiss0702
2022-07-08 10:54:20 -05:00
parent 35f07ab760
commit a5771d03c3
13 changed files with 102 additions and 17 deletions
@@ -116,6 +116,17 @@ public class EventHandlerImpl implements EventHandler {
if(server == null) return;
main.getPlatformMethods().sendPluginMessage(recievingPlayer, "queuedfor", srv, server.getQueue().size()+"");
}
if(subchannel.equals("status")) {
String srv = in.readUTF();
QueueServer server = main.getQueueManager().findServer(srv);
if(server == null) return;
main.getPlatformMethods().sendPluginMessage(
recievingPlayer,
"status",
srv,
main.getMessages().getRawString("placeholders.status."+server.getStatus(recievingPlayer))
);
}
if(subchannel.equals("leavequeue")) {
String[] args = new String[1];
try {
@@ -180,7 +180,7 @@ public class QueueMain extends AjQueueAPI {
}
private void constructMessages() {
LinkedHashMap<String, String> d = new LinkedHashMap<>();
LinkedHashMap<String, Object> d = new LinkedHashMap<>();
d.put("status.offline.base", "&c{SERVER} is {STATUS}. &7You are in position &f{POS}&7 of &f{LEN}&7.");
@@ -237,6 +237,14 @@ public class QueueMain extends AjQueueAPI {
d.put("placeholders.position.none", "None");
d.put("placeholders.estimated_time.none", "None");
d.put("placeholders.status.online", "&aOnline");
d.put("placeholders.status.offline", "&cOffline");
d.put("placeholders.status.restarting", "&cRestarting");
d.put("placeholders.status.full", "&eFull");
d.put("placeholders.status.restricted", "&eRestricted");
d.put("placeholders.status.paused", "&ePaused");
d.put("placeholders.status.whitelisted", "&eWhitelisted");
d.put("title.title", "");
d.put("title.subtitle", "<gold>You are <green>#{POS} <gold>in the queue!");
@@ -157,6 +157,40 @@ public class QueueServerImpl implements QueueServer {
return getStatusString(null);
}
@Override
public String getStatus(AdaptedPlayer p) {
if(getOfflineTime() > main.getConfig().getInt("offline-time")) {
return "offline";
}
if(!isOnline()) {
return "restarting";
}
if(isPaused()) {
return "paused";
}
if(p != null && isWhitelisted() && !getWhitelistedPlayers().contains(p.getUniqueId())) {
return "whitelisted";
}
if(isFull() && !canJoinFull(p)) {
return "full";
}
if(p != null && !canAccess(p)) {
return "restricted";
}
return "online";
}
@Override
public String getStatus() {
return null;
}
@Override
public void updatePing() {
boolean pingerDebug = main.getConfig().getBoolean("pinger-debug");