diff --git a/SubServers.Bungee/pom.xml b/SubServers.Bungee/pom.xml index 7c4abf4c..166af7cd 100644 --- a/SubServers.Bungee/pom.xml +++ b/SubServers.Bungee/pom.xml @@ -50,7 +50,7 @@ net.ME1312.SubData Server - 20w46d + 20w48a compile true diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkExHost.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkExHost.java index 17b310d6..63ab2fcf 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkExHost.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkExHost.java @@ -85,11 +85,13 @@ public class PacketLinkExHost implements InitialPacket, PacketObjectIn, private void queue(String name, Runnable action) { final long now = Calendar.getInstance().getTime().getTime(); - new Timer("SubServers.Bungee::ExHost_Linker(" + name + ")").schedule(new TimerTask() { + Timer timer = new Timer("SubServers.Bungee::ExHost_Linker(" + name + ")"); + timer.schedule(new TimerTask() { @Override public void run() { action.run(); --req; + timer.cancel(); } }, (now - last < 500) ? (req * 500) : 0); diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkProxy.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkProxy.java index 2003941a..89c5cf1e 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkProxy.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkProxy.java @@ -91,11 +91,13 @@ public class PacketLinkProxy implements InitialPacket, PacketObjectIn, private void queue(String name, Runnable action) { final long now = Calendar.getInstance().getTime().getTime(); - new Timer("SubServers.Bungee::Proxy_Linker(" + name + ")").schedule(new TimerTask() { + Timer timer = new Timer("SubServers.Bungee::Proxy_Linker(" + name + ")"); + timer.schedule(new TimerTask() { @Override public void run() { action.run(); --req; + timer.cancel(); } }, (now - last < 500) ? (req * 500) : 0); diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkServer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkServer.java index e3ddaba8..80744a9b 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkServer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketLinkServer.java @@ -129,10 +129,12 @@ public class PacketLinkServer implements InitialPacket, PacketObjectIn, }; final long now = Calendar.getInstance().getTime().getTime(); - new Timer("SubServers.Bungee::Server_Linker(" + server.getName() + ")").schedule(new TimerTask() { + Timer timer = new Timer("SubServers.Bungee::Server_Linker(" + server.getName() + ")"); + timer.schedule(new TimerTask() { @Override public void run() { register.run(); + timer.cancel(); } }, ((server instanceof SubServer && !((SubServer) server).isRunning()) ? TimeUnit.SECONDS.toMillis(5) : 0) + ((now - last < 500) ? (req * 500) : 0)); diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java index 062261e6..0eaa0d23 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java @@ -992,15 +992,19 @@ public final class SubProxy extends BungeeCommon implements Listener { } - if (fallbackLimbo.keySet().contains(e.getPlayer().getUniqueId())) new Timer("SubServers.Bungee::Fallback_Limbo_Timer(" + e.getPlayer().getUniqueId() + ')').schedule(new TimerTask() { - @Override - public void run() { - if (e.getPlayer().getServer() != null && !((UserConnection) e.getPlayer()).isDimensionChange() && e.getPlayer().getServer().getInfo().getAddress().equals(e.getServer().getInfo().getAddress())) { - fallbackLimbo.remove(e.getPlayer().getUniqueId()); - e.getPlayer().sendMessage(api.getLang("SubServers", "Bungee.Feature.Smart-Fallback.Result").replace("$str$", (e.getServer().getInfo() instanceof Server)?((Server) e.getServer().getInfo()).getDisplayName():e.getServer().getInfo().getName())); + if (fallbackLimbo.keySet().contains(e.getPlayer().getUniqueId())) { + Timer timer = new Timer("SubServers.Bungee::Fallback_Limbo_Timer(" + e.getPlayer().getUniqueId() + ')'); + timer.schedule(new TimerTask() { + @Override + public void run() { + if (e.getPlayer().getServer() != null && !((UserConnection) e.getPlayer()).isDimensionChange() && e.getPlayer().getServer().getInfo().getAddress().equals(e.getServer().getInfo().getAddress())) { + fallbackLimbo.remove(e.getPlayer().getUniqueId()); + e.getPlayer().sendMessage(api.getLang("SubServers", "Bungee.Feature.Smart-Fallback.Result").replace("$str$", (e.getServer().getInfo() instanceof Server)?((Server) e.getServer().getInfo()).getDisplayName():e.getServer().getInfo().getName())); + } + timer.cancel(); } - } - }, 1000); + }, 1000); + } } } diff --git a/SubServers.Client/Bukkit/pom.xml b/SubServers.Client/Bukkit/pom.xml index 5ec2f5b3..a9defd42 100644 --- a/SubServers.Client/Bukkit/pom.xml +++ b/SubServers.Client/Bukkit/pom.xml @@ -62,7 +62,7 @@ net.ME1312.SubData Client - 20w46d + 20w48a compile true diff --git a/SubServers.Client/Common/pom.xml b/SubServers.Client/Common/pom.xml index 49093358..5f80a06e 100644 --- a/SubServers.Client/Common/pom.xml +++ b/SubServers.Client/Common/pom.xml @@ -26,7 +26,7 @@ net.ME1312.SubData Client - 20w46d + 20w48a provided diff --git a/SubServers.Client/Sponge/pom.xml b/SubServers.Client/Sponge/pom.xml index b47598bb..5a6e4900 100644 --- a/SubServers.Client/Sponge/pom.xml +++ b/SubServers.Client/Sponge/pom.xml @@ -44,7 +44,7 @@ net.ME1312.SubData Client - 20w46d + 20w48a compile true diff --git a/SubServers.Host/pom.xml b/SubServers.Host/pom.xml index adb5165a..5df9094b 100644 --- a/SubServers.Host/pom.xml +++ b/SubServers.Host/pom.xml @@ -34,7 +34,7 @@ net.ME1312.SubData Client - 20w46d + 20w48a compile true diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java b/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java index fcb8f75c..59ada304 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/SubCommand.java @@ -544,11 +544,13 @@ public class SubCommand { PacketInExRunEvent.callback("SubStoppedEvent", this); String name = json.getString("server").toLowerCase(); if (listening.keySet().contains(name)) { - new Timer("SubServers.Sync::Server_Restart_Command_Handler(" + name + ")").schedule(new TimerTask() { + Timer timer = new Timer("SubServers.Host::Server_Restart_Command_Handler(" + name + ")"); + timer.schedule(new TimerTask() { @Override public void run() { starter.run(listening.get(name)); listening.remove(name); + timer.cancel(); } }, 100); } diff --git a/SubServers.Sync/pom.xml b/SubServers.Sync/pom.xml index 0b739ab3..267da944 100644 --- a/SubServers.Sync/pom.xml +++ b/SubServers.Sync/pom.xml @@ -57,7 +57,7 @@ net.ME1312.SubData Client - 20w46d + 20w48a compile true diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java index 6e3c03fe..b375f178 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java @@ -525,15 +525,19 @@ public final class ExProxy extends BungeeCommon implements Listener { } - if (fallbackLimbo.keySet().contains(e.getPlayer().getUniqueId())) new Timer("SubServers.Sync::Fallback_Limbo_Timer(" + e.getPlayer().getUniqueId() + ')').schedule(new TimerTask() { - @Override - public void run() { - if (e.getPlayer().getServer() != null && !((UserConnection) e.getPlayer()).isDimensionChange() && e.getPlayer().getServer().getInfo().getAddress().equals(e.getServer().getInfo().getAddress())) { - fallbackLimbo.remove(e.getPlayer().getUniqueId()); - e.getPlayer().sendMessage(api.getLang("SubServers", "Bungee.Feature.Smart-Fallback.Result").replace("$str$", (e.getServer().getInfo() instanceof ServerImpl)?((ServerImpl) e.getServer().getInfo()).getDisplayName():e.getServer().getInfo().getName())); + if (fallbackLimbo.keySet().contains(e.getPlayer().getUniqueId())) { + Timer timer = new Timer("SubServers.Sync::Fallback_Limbo_Timer(" + e.getPlayer().getUniqueId() + ')'); + timer.schedule(new TimerTask() { + @Override + public void run() { + if (e.getPlayer().getServer() != null && !((UserConnection) e.getPlayer()).isDimensionChange() && e.getPlayer().getServer().getInfo().getAddress().equals(e.getServer().getInfo().getAddress())) { + fallbackLimbo.remove(e.getPlayer().getUniqueId()); + e.getPlayer().sendMessage(api.getLang("SubServers", "Bungee.Feature.Smart-Fallback.Result").replace("$str$", (e.getServer().getInfo() instanceof ServerImpl)?((ServerImpl) e.getServer().getInfo()).getDisplayName():e.getServer().getInfo().getName())); + } + timer.cancel(); } - } - }, 1000); + }, 1000); + } } } diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java index 2464c800..c991ad3b 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubCommand.java @@ -453,11 +453,13 @@ public final class SubCommand extends CommandX { PacketInExRunEvent.callback("SubStoppedEvent", this); String name = json.getString("server").toLowerCase(); if (listening.keySet().contains(name)) { - new Timer("SubServers.Sync::Server_Restart_Command_Handler(" + name + ")").schedule(new TimerTask() { + Timer timer = new Timer("SubServers.Sync::Server_Restart_Command_Handler(" + name + ")"); + timer.schedule(new TimerTask() { @Override public void run() { starter.run(listening.get(name)); listening.remove(name); + timer.cancel(); } }, 100); }