diff --git a/common/src/main/java/us/ajg0702/queue/common/EventHandlerImpl.java b/common/src/main/java/us/ajg0702/queue/common/EventHandlerImpl.java index 3d9dddf..8797c86 100644 --- a/common/src/main/java/us/ajg0702/queue/common/EventHandlerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/EventHandlerImpl.java @@ -13,6 +13,7 @@ import us.ajg0702.queue.api.server.AdaptedServer; import us.ajg0702.queue.commands.commands.PlayerSender; import us.ajg0702.queue.common.players.QueuePlayerImpl; import us.ajg0702.queue.common.utils.Debug; +import us.ajg0702.utils.common.TimeUtils; import java.io.ByteArrayInputStream; import java.io.DataInputStream; @@ -83,6 +84,28 @@ public class EventHandlerImpl implements EventHandler { } main.getPlatformMethods().sendPluginMessage(recievingPlayer, "positionof", pos); } + if(subchannel.equals("estimated_time")) { + QueueServer server = main.getQueueManager().getSingleServer(recievingPlayer); + + int time; + String timeString; + if(server != null) { + QueuePlayer queuePlayer = server.findPlayer(recievingPlayer); + time = (int) Math.round(queuePlayer.getPosition() * main.getTimeBetweenPlayers()); + timeString = TimeUtils.timeString( + time, + main.getMessages().getString("format.time.mins"), + main.getMessages().getString("format.time.secs") + ); + } else { + timeString = main.getMessages().getString("placeholders.estimated_time.none"); + } + main.getPlatformMethods().sendPluginMessage( + recievingPlayer, + "estimated_time", + timeString + ); + } if(subchannel.equals("inqueue")) { QueueServer server = main.getQueueManager().getSingleServer(recievingPlayer); main.getPlatformMethods().sendPluginMessage(recievingPlayer, "inqueue", (server != null)+""); diff --git a/common/src/main/java/us/ajg0702/queue/common/QueueMain.java b/common/src/main/java/us/ajg0702/queue/common/QueueMain.java index e8e64b0..cb4b7ae 100644 --- a/common/src/main/java/us/ajg0702/queue/common/QueueMain.java +++ b/common/src/main/java/us/ajg0702/queue/common/QueueMain.java @@ -235,6 +235,7 @@ public class QueueMain extends AjQueueAPI { d.put("placeholders.queued.none", "None"); d.put("placeholders.position.none", "None"); + d.put("placeholders.estimated_time.none", "None"); d.put("title.title", ""); d.put("title.subtitle", "You are #{POS} in the queue!"); diff --git a/spigot/src/main/java/us/ajg0702/queue/spigot/Placeholders.java b/spigot/src/main/java/us/ajg0702/queue/spigot/Placeholders.java index 5945862..1a5d757 100644 --- a/spigot/src/main/java/us/ajg0702/queue/spigot/Placeholders.java +++ b/spigot/src/main/java/us/ajg0702/queue/spigot/Placeholders.java @@ -195,6 +195,9 @@ public class Placeholders extends PlaceholderExpansion { if(identifier.equalsIgnoreCase("inqueue")) { plugin.sendMessage(player, "inqueue", ""); } + if(identifier.equalsIgnoreCase("estimated_time")) { + plugin.sendMessage(player, "estimated_time", ""); + } if(identifier.matches("queuedfor_*.*")) { plugin.sendMessage(player, "queuedfor", identifier.split("_")[1]); } diff --git a/spigot/src/main/java/us/ajg0702/queue/spigot/SpigotMain.java b/spigot/src/main/java/us/ajg0702/queue/spigot/SpigotMain.java index d72db5f..0a8783b 100644 --- a/spigot/src/main/java/us/ajg0702/queue/spigot/SpigotMain.java +++ b/spigot/src/main/java/us/ajg0702/queue/spigot/SpigotMain.java @@ -165,6 +165,19 @@ public class SpigotMain extends JavaPlugin implements PluginMessageListener,List phs.put("queuedfor_"+queuename, number+""); placeholders.responseCache.put(p, phs); } + if(subchannel.equals("estimated_time")) { + String playername = in.readUTF(); + + Player p = Bukkit.getPlayer(playername); + if(p == null) return; + if(!p.isOnline()) return; + + String time = in.readUTF(); + HashMap phs = placeholders.responseCache.get(p); + if(phs == null) phs = new HashMap<>(); + phs.put("estimated_time", time); + placeholders.responseCache.put(p, phs); + } }