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);
}