diff --git a/SubServers.Bungee/pom.xml b/SubServers.Bungee/pom.xml
index a7082ae1..ede5a015 100644
--- a/SubServers.Bungee/pom.xml
+++ b/SubServers.Bungee/pom.xml
@@ -43,7 +43,7 @@
net.ME1312.SubData
Server
- 20w15a
+ 20w42a
compile
true
@@ -91,14 +91,14 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -110,7 +110,7 @@
-
+
diff --git a/SubServers.Bungee/src/META-INF/MANIFEST.MF b/SubServers.Bungee/src/META-INF/MANIFEST.MF
index df622d89..015421c5 100644
--- a/SubServers.Bungee/src/META-INF/MANIFEST.MF
+++ b/SubServers.Bungee/src/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
-Class-Path: GalaxiEngine.jar SubDataServer.jar BungeeCord.jar Waterfall.jar
+Class-Path: BungeeCord.jar Waterfall.jar
Main-Class: net.ME1312.SubServers.Bungee.Launch
Implementation-Title: SubServers.Bungee
diff --git a/SubServers.Bungee/src/META-INF/MANIFEST.MOD.MF b/SubServers.Bungee/src/META-INF/MANIFEST.MOD.MF
new file mode 100644
index 00000000..c582b9d9
--- /dev/null
+++ b/SubServers.Bungee/src/META-INF/MANIFEST.MOD.MF
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Class-Path: libraries/GalaxiEngine.jar libraries/SubDataServer.jar libraries/BungeeCord.jar
+Main-Class: net.ME1312.SubServers.Bungee.Launch
+Implementation-Title: SubServers.Bungee
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Fallback/SmartFallback.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Fallback/SmartFallback.java
index a28b53af..14f7fdfb 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Fallback/SmartFallback.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Fallback/SmartFallback.java
@@ -33,24 +33,25 @@ public class SmartFallback implements ReconnectHandler {
@Override
public ServerInfo getServer(ProxiedPlayer player) {
- Map fallbacks = getFallbackServers(player.getPendingConnection().getListener(), player);
- LinkedList queue = new LinkedList(fallbacks.keySet());
+ return getServer(player, player instanceof UserConnection);
+ }
- ServerInfo server;
- if ((server = getForcedHost(player.getPendingConnection())) == null
- && (server = getDNS(player.getPendingConnection())) == null
- && (server = getReconnectServer(player)) == null) {
- if (!fallbacks.isEmpty()) {
- server = new LinkedList(fallbacks.values()).getFirst();
- }
+ protected ServerInfo getServer(ProxiedPlayer player, boolean queue) {
+ ServerInfo override;
+ if ((override = getForcedHost(player.getPendingConnection())) != null
+ || (override = getDNS(player.getPendingConnection())) != null) {
+ if (queue) ((UserConnection) player).setServerJoinQueue(new LinkedList<>());
+ return override;
} else {
- queue.addFirst(server.getName());
+ Map fallbacks = getFallbackServers(player.getPendingConnection().getListener(), player);
+
+ if ((override = getReconnectServer(player)) != null || !fallbacks.isEmpty()) {
+ if (queue) ((UserConnection) player).setServerJoinQueue(new LinkedList<>(fallbacks.keySet()));
+ return (override != null)? override : new LinkedList<>(fallbacks.values()).getFirst();
+ } else {
+ return null;
+ }
}
-
-
- if (server != null && player instanceof UserConnection)
- ((UserConnection) player).setServerJoinQueue(new LinkedList<>(fallbacks.keySet()));
- return server;
}
/**
diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java
index 2e4bd166..5ba85fdd 100644
--- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java
+++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java
@@ -82,7 +82,7 @@ public final class SubProxy extends BungeeCord implements Listener {
public SubProtocol subprotocol;
public SubDataServer subdata = null;
public SubServer sudo = null;
- public static final Version version = Version.fromString("2.16.2a");
+ public static final Version version = Version.fromString("2.16.4a");
public final Proxy mProxy;
public boolean canSudo = false;
@@ -208,7 +208,7 @@ public final class SubProxy extends BungeeCord implements Listener {
Logger.get("SubServers").info("Removed ./SubServers/Recently Deleted/" + file.getName());
}
} catch (Exception e) {
- Logger.get("SubServers").info("Problem scanning .SubServers/Recently Deleted/" + file.getName());
+ Logger.get("SubServers").info("Problem scanning ./SubServers/Recently Deleted/" + file.getName());
e.printStackTrace();
Files.delete(file.toPath());
}
@@ -669,8 +669,8 @@ public final class SubProxy extends BungeeCord implements Listener {
}
}, 0, TimeUnit.DAYS.toMillis(2));
- int interval = config.get().getMap("Settings").getInt("RPEC-Check-Interval", 300);
- int start = interval - new Random().nextInt((interval / 3) + 1);
+ int rpec_i = config.get().getMap("Settings").getInt("RPEC-Check-Interval", 300);
+ int rpec_s = rpec_i - new Random().nextInt((rpec_i / 3) + 1);
new Timer("SubServers.Bungee::RemotePlayer_Error_Checking").schedule(new TimerTask() {
@Override
public void run() {
@@ -678,7 +678,6 @@ public final class SubProxy extends BungeeCord implements Listener {
ArrayList add = new ArrayList();
for (ProxiedPlayer player : getPlayers()) {
if (!rPlayers.containsKey(player.getUniqueId())) { // Add players that don't exist
- Logger.get("SubServers").info("RPEC::Add(" + player.getUniqueId() + ")");
RemotePlayer p = new RemotePlayer(player);
rPlayerLinkP.put(player.getUniqueId(), p.getProxy());
rPlayers.put(player.getUniqueId(), p);
@@ -689,7 +688,6 @@ public final class SubProxy extends BungeeCord implements Listener {
ArrayList remove = new ArrayList();
for (UUID player : Util.getBackwards(rPlayerLinkP, mProxy)) { // Remove players that shouldn't exist
if (getPlayer(player) == null) {
- Logger.get("SubServers").info("RPEC::Remove(" + player + ")");
remove.add(rPlayers.get(player));
rPlayerLinkS.remove(player);
rPlayerLinkP.remove(player);
@@ -707,7 +705,7 @@ public final class SubProxy extends BungeeCord implements Listener {
}
}
}
- }, TimeUnit.SECONDS.toMillis(start), TimeUnit.SECONDS.toMillis(interval));
+ }, TimeUnit.SECONDS.toMillis(rpec_s), TimeUnit.SECONDS.toMillis(rpec_i));
}
/**
@@ -1007,11 +1005,9 @@ public final class SubProxy extends BungeeCord implements Listener {
UUID id = e.getPlayer().getUniqueId();
fallbackLimbo.remove(id);
SubCommand.players.remove(id);
- Logger.get("SubServers").info("PlayerDisconnectEvent(" + id + ")");
synchronized (rPlayers) {
if (rPlayers.containsKey(id) && (!rPlayerLinkP.containsKey(id) || rPlayerLinkP.get(id).isMaster())) {
- Logger.get("SubServers").info("RP::Remove(" + id + ")");
RemotePlayer player = rPlayers.get(id);
rPlayerLinkS.remove(id);
rPlayerLinkP.remove(id);
diff --git a/SubServers.Client/Bukkit/pom.xml b/SubServers.Client/Bukkit/pom.xml
index 663af8fe..651232b5 100644
--- a/SubServers.Client/Bukkit/pom.xml
+++ b/SubServers.Client/Bukkit/pom.xml
@@ -55,7 +55,7 @@
net.ME1312.SubData
Client
- 20w15a
+ 20w42a
compile
true
diff --git a/SubServers.Client/Bukkit/src/plugin.yml b/SubServers.Client/Bukkit/src/plugin.yml
index 7a014dca..c814ff87 100644
--- a/SubServers.Client/Bukkit/src/plugin.yml
+++ b/SubServers.Client/Bukkit/src/plugin.yml
@@ -1,6 +1,6 @@
name: SubServers-Client-Bukkit
main: net.ME1312.SubServers.Client.Bukkit.SubPlugin
-version: "2.16.2a"
+version: "2.16.4a"
authors: ["ME1312"]
softdepend: [TitleManager, PlaceholderAPI]
website: "https://github.com/ME1312/SubServers-2"
diff --git a/SubServers.Client/Sponge/pom.xml b/SubServers.Client/Sponge/pom.xml
index bbc68719..0d0be6aa 100644
--- a/SubServers.Client/Sponge/pom.xml
+++ b/SubServers.Client/Sponge/pom.xml
@@ -37,7 +37,7 @@
net.ME1312.SubData
Client
- 20w15a
+ 20w42a
compile
true
diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubPlugin.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubPlugin.java
index 2d1b7ea6..5b222e53 100644
--- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubPlugin.java
+++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/SubPlugin.java
@@ -46,7 +46,7 @@ import java.util.concurrent.TimeUnit;
/**
* SubServers Client Plugin Class
*/
-@Plugin(id = "subservers-client-sponge", name = "SubServers-Client-Sponge", authors = "ME1312", version = "2.16.2a", url = "https://github.com/ME1312/SubServers-2", description = "Take control of the server manager — from your servers")
+@Plugin(id = "subservers-client-sponge", name = "SubServers-Client-Sponge", authors = "ME1312", version = "2.16.4a", url = "https://github.com/ME1312/SubServers-2", description = "Take control of the server manager — from your servers")
public final class SubPlugin {
HashMap subdata = new HashMap();
NamedContainer>> lang = null;
diff --git a/SubServers.Client/Universal/pom.xml b/SubServers.Client/Universal/pom.xml
index 057ffec6..5b965cb5 100644
--- a/SubServers.Client/Universal/pom.xml
+++ b/SubServers.Client/Universal/pom.xml
@@ -23,7 +23,7 @@
- ../../out/compile/target/SubServers.Client
+ ../../out/compile/target/SubServers.Client.Universal
org.apache.maven.plugins
@@ -39,7 +39,7 @@
maven-assembly-plugin
2.2-beta-5
- SubServers.Client
+ SubServers.Client.Universal
../../Artifacts
MANIFEST.MF
diff --git a/SubServers.Console/pom.xml b/SubServers.Console/pom.xml
index 1b11d577..e435e247 100644
--- a/SubServers.Console/pom.xml
+++ b/SubServers.Console/pom.xml
@@ -106,7 +106,7 @@
2.2-beta-5
SubServers.Console
- ../Artifacts
+ ../Artifacts/Plugins
jar-with-dependencies
diff --git a/SubServers.Creator/src/Forge/build.sh b/SubServers.Creator/Forge/build.sh
similarity index 100%
rename from SubServers.Creator/src/Forge/build.sh
rename to SubServers.Creator/Forge/build.sh
diff --git a/SubServers.Creator/src/Forge/config/sponge/global.conf b/SubServers.Creator/Forge/config/sponge/global.conf
similarity index 100%
rename from SubServers.Creator/src/Forge/config/sponge/global.conf
rename to SubServers.Creator/Forge/config/sponge/global.conf
diff --git a/SubServers.Creator/src/Forge/eula.txt b/SubServers.Creator/Forge/eula.txt
similarity index 100%
rename from SubServers.Creator/src/Forge/eula.txt
rename to SubServers.Creator/Forge/eula.txt
diff --git a/SubServers.Creator/src/Forge/server.properties b/SubServers.Creator/Forge/server.properties
similarity index 100%
rename from SubServers.Creator/src/Forge/server.properties
rename to SubServers.Creator/Forge/server.properties
diff --git a/SubServers.Creator/src/Forge/template.yml b/SubServers.Creator/Forge/template.yml
similarity index 100%
rename from SubServers.Creator/src/Forge/template.yml
rename to SubServers.Creator/Forge/template.yml
diff --git a/SubServers.Creator/src/Paper/build.sh b/SubServers.Creator/Paper/build.sh
similarity index 100%
rename from SubServers.Creator/src/Paper/build.sh
rename to SubServers.Creator/Paper/build.sh
diff --git a/SubServers.Creator/src/Paper/eula.txt b/SubServers.Creator/Paper/eula.txt
similarity index 100%
rename from SubServers.Creator/src/Paper/eula.txt
rename to SubServers.Creator/Paper/eula.txt
diff --git a/SubServers.Creator/src/Paper/server.properties b/SubServers.Creator/Paper/server.properties
similarity index 100%
rename from SubServers.Creator/src/Paper/server.properties
rename to SubServers.Creator/Paper/server.properties
diff --git a/SubServers.Creator/src/Paper/spigot.yml b/SubServers.Creator/Paper/spigot.yml
similarity index 100%
rename from SubServers.Creator/src/Paper/spigot.yml
rename to SubServers.Creator/Paper/spigot.yml
diff --git a/SubServers.Creator/src/Paper/template.yml b/SubServers.Creator/Paper/template.yml
similarity index 100%
rename from SubServers.Creator/src/Paper/template.yml
rename to SubServers.Creator/Paper/template.yml
diff --git a/SubServers.Creator/src/Spigot/build.sh b/SubServers.Creator/Spigot/build.sh
similarity index 100%
rename from SubServers.Creator/src/Spigot/build.sh
rename to SubServers.Creator/Spigot/build.sh
diff --git a/SubServers.Creator/src/Spigot/eula.txt b/SubServers.Creator/Spigot/eula.txt
similarity index 100%
rename from SubServers.Creator/src/Spigot/eula.txt
rename to SubServers.Creator/Spigot/eula.txt
diff --git a/SubServers.Creator/src/Spigot/server.properties b/SubServers.Creator/Spigot/server.properties
similarity index 100%
rename from SubServers.Creator/src/Spigot/server.properties
rename to SubServers.Creator/Spigot/server.properties
diff --git a/SubServers.Creator/src/Spigot/spigot.yml b/SubServers.Creator/Spigot/spigot.yml
similarity index 100%
rename from SubServers.Creator/src/Spigot/spigot.yml
rename to SubServers.Creator/Spigot/spigot.yml
diff --git a/SubServers.Creator/src/Spigot/template.yml b/SubServers.Creator/Spigot/template.yml
similarity index 100%
rename from SubServers.Creator/src/Spigot/template.yml
rename to SubServers.Creator/Spigot/template.yml
diff --git a/SubServers.Creator/src/Sponge/build.sh b/SubServers.Creator/Sponge/build.sh
similarity index 100%
rename from SubServers.Creator/src/Sponge/build.sh
rename to SubServers.Creator/Sponge/build.sh
diff --git a/SubServers.Creator/src/Sponge/config/sponge/global.conf b/SubServers.Creator/Sponge/config/sponge/global.conf
similarity index 100%
rename from SubServers.Creator/src/Sponge/config/sponge/global.conf
rename to SubServers.Creator/Sponge/config/sponge/global.conf
diff --git a/SubServers.Creator/src/Sponge/eula.txt b/SubServers.Creator/Sponge/eula.txt
similarity index 100%
rename from SubServers.Creator/src/Sponge/eula.txt
rename to SubServers.Creator/Sponge/eula.txt
diff --git a/SubServers.Creator/src/Sponge/server.properties b/SubServers.Creator/Sponge/server.properties
similarity index 100%
rename from SubServers.Creator/src/Sponge/server.properties
rename to SubServers.Creator/Sponge/server.properties
diff --git a/SubServers.Creator/src/Sponge/template.yml b/SubServers.Creator/Sponge/template.yml
similarity index 100%
rename from SubServers.Creator/src/Sponge/template.yml
rename to SubServers.Creator/Sponge/template.yml
diff --git a/SubServers.Creator/src/Vanilla/build.sh b/SubServers.Creator/Vanilla/build.sh
similarity index 100%
rename from SubServers.Creator/src/Vanilla/build.sh
rename to SubServers.Creator/Vanilla/build.sh
diff --git a/SubServers.Creator/src/Vanilla/eula.txt b/SubServers.Creator/Vanilla/eula.txt
similarity index 100%
rename from SubServers.Creator/src/Vanilla/eula.txt
rename to SubServers.Creator/Vanilla/eula.txt
diff --git a/SubServers.Creator/src/Vanilla/server.properties b/SubServers.Creator/Vanilla/server.properties
similarity index 100%
rename from SubServers.Creator/src/Vanilla/server.properties
rename to SubServers.Creator/Vanilla/server.properties
diff --git a/SubServers.Creator/src/Vanilla/template.yml b/SubServers.Creator/Vanilla/template.yml
similarity index 100%
rename from SubServers.Creator/src/Vanilla/template.yml
rename to SubServers.Creator/Vanilla/template.yml
diff --git a/SubServers.Creator/pom.xml b/SubServers.Creator/pom.xml
new file mode 100644
index 00000000..bba4ec74
--- /dev/null
+++ b/SubServers.Creator/pom.xml
@@ -0,0 +1,11 @@
+
+ 4.0.0
+
+ net.ME1312.SubServers
+ SubServers.Creator
+ -PLACEHOLDER
+ pom
+
+
+
\ No newline at end of file
diff --git a/SubServers.Host/pom.xml b/SubServers.Host/pom.xml
index 0a8945b5..a21a2b09 100644
--- a/SubServers.Host/pom.xml
+++ b/SubServers.Host/pom.xml
@@ -27,7 +27,7 @@
net.ME1312.SubData
Client
- 20w15a
+ 20w42a
compile
true
@@ -75,7 +75,7 @@
-
+
@@ -87,7 +87,7 @@
-
+
diff --git a/SubServers.Host/src/META-INF/MANIFEST.MF b/SubServers.Host/src/META-INF/MANIFEST.MF
index 48535a6c..75a44854 100644
--- a/SubServers.Host/src/META-INF/MANIFEST.MF
+++ b/SubServers.Host/src/META-INF/MANIFEST.MF
@@ -1,4 +1,3 @@
Manifest-Version: 1.0
-Class-Path: GalaxiEngine.jar SubDataClient.jar
Main-Class: net.ME1312.SubServers.Host.Launch
Implementation-Title: SubServers.Host
diff --git a/SubServers.Host/src/META-INF/MANIFEST.MOD.MF b/SubServers.Host/src/META-INF/MANIFEST.MOD.MF
new file mode 100644
index 00000000..51d61873
--- /dev/null
+++ b/SubServers.Host/src/META-INF/MANIFEST.MOD.MF
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Class-Path: Libraries/GalaxiEngine.jar Libraries/SubDataClient.jar
+Main-Class: net.ME1312.SubServers.Host.Launch
+Implementation-Title: SubServers.Host
diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java b/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java
index 556b81c4..06357771 100644
--- a/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java
+++ b/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java
@@ -42,7 +42,7 @@ import java.util.jar.Manifest;
/**
* SubServers.Host Main Class
*/
-@App(name = "SubServers.Host", version = "2.16.2a", authors = "ME1312", website = "https://github.com/ME1312/SubServers-2", description = "Host subservers on separate machines")
+@App(name = "SubServers.Host", version = "2.16.4a", authors = "ME1312", website = "https://github.com/ME1312/SubServers-2", description = "Host subservers on separate machines")
public final class ExHost {
HashMap subdata = new HashMap();
NamedContainer>> lang = null;
diff --git a/SubServers.Sync/pom.xml b/SubServers.Sync/pom.xml
index 9985d24a..a626ba5d 100644
--- a/SubServers.Sync/pom.xml
+++ b/SubServers.Sync/pom.xml
@@ -43,7 +43,7 @@
net.ME1312.SubData
Client
- 20w15a
+ 20w42a
compile
true
@@ -108,7 +108,7 @@
-
+
diff --git a/SubServers.Sync/src/META-INF/MANIFEST.MF b/SubServers.Sync/src/META-INF/MANIFEST.MF
index bf83fc3f..da7d5eb9 100644
--- a/SubServers.Sync/src/META-INF/MANIFEST.MF
+++ b/SubServers.Sync/src/META-INF/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
-Class-Path: GalaxiEngine.jar SubDataClient.jar BungeeCord.jar Waterfall.jar
+Class-Path: BungeeCord.jar Waterfall.jar
Main-Class: net.ME1312.SubServers.Sync.Launch
Implementation-Title: SubServers.Sync
diff --git a/SubServers.Sync/src/META-INF/MANIFEST.MOD.MF b/SubServers.Sync/src/META-INF/MANIFEST.MOD.MF
new file mode 100644
index 00000000..91b751dd
--- /dev/null
+++ b/SubServers.Sync/src/META-INF/MANIFEST.MOD.MF
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Class-Path: libraries/GalaxiEngine.jar libraries/SubDataClient.jar libraries/BungeeCord.jar
+Main-Class: net.ME1312.SubServers.Sync.Launch
+Implementation-Title: SubServers.Sync
diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java
index d2070503..67479fea 100644
--- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java
+++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java
@@ -68,7 +68,7 @@ public final class ExProxy extends BungeeCord implements Listener {
public YAMLConfig config;
public final SubAPI api = new SubAPI(this);
public SubProtocol subprotocol;
- public static final Version version = Version.fromString("2.16.2a");
+ public static final Version version = Version.fromString("2.16.4a");
public final boolean isPatched;
public final boolean isGalaxi;
@@ -238,8 +238,8 @@ public final class ExProxy extends BungeeCord implements Listener {
}
}, 0, TimeUnit.DAYS.toMillis(2));
- int interval = config.get().getMap("Settings").getInt("RPEC-Check-Interval", 300);
- int start = interval - new Random().nextInt((interval / 3) + 1);
+ int rpec_i = config.get().getMap("Settings").getInt("RPEC-Check-Interval", 300);
+ int rpec_s = rpec_i - new Random().nextInt((rpec_i / 3) + 1);
new Timer("SubServers.Sync::RemotePlayer_Error_Checking").schedule(new TimerTask() {
@Override
public void run() {
@@ -285,7 +285,7 @@ public final class ExProxy extends BungeeCord implements Listener {
});
}
}
- }, TimeUnit.SECONDS.toMillis(start), TimeUnit.SECONDS.toMillis(interval));
+ }, TimeUnit.SECONDS.toMillis(rpec_s), TimeUnit.SECONDS.toMillis(rpec_i));
}
/**
diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/Fallback/SmartFallback.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/Fallback/SmartFallback.java
index 9d8d2e14..4dd146d2 100644
--- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/Fallback/SmartFallback.java
+++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/Fallback/SmartFallback.java
@@ -33,24 +33,25 @@ public class SmartFallback implements ReconnectHandler {
@Override
public ServerInfo getServer(ProxiedPlayer player) {
- Map fallbacks = getFallbackServers(player.getPendingConnection().getListener(), player);
- LinkedList queue = new LinkedList(fallbacks.keySet());
+ return getServer(player, player instanceof UserConnection);
+ }
- ServerInfo server;
- if ((server = getForcedHost(player.getPendingConnection())) == null
- && (server = getDNS(player.getPendingConnection())) == null
- && (server = getReconnectServer(player)) == null) {
- if (!fallbacks.isEmpty()) {
- server = new LinkedList(fallbacks.values()).getFirst();
- }
+ protected ServerInfo getServer(ProxiedPlayer player, boolean queue) {
+ ServerInfo override;
+ if ((override = getForcedHost(player.getPendingConnection())) != null
+ || (override = getDNS(player.getPendingConnection())) != null) {
+ if (queue) ((UserConnection) player).setServerJoinQueue(new LinkedList<>());
+ return override;
} else {
- queue.addFirst(server.getName());
+ Map fallbacks = getFallbackServers(player.getPendingConnection().getListener(), player);
+
+ if ((override = getReconnectServer(player)) != null || !fallbacks.isEmpty()) {
+ if (queue) ((UserConnection) player).setServerJoinQueue(new LinkedList<>(fallbacks.keySet()));
+ return (override != null)? override : new LinkedList<>(fallbacks.values()).getFirst();
+ } else {
+ return null;
+ }
}
-
-
- if (server != null && player instanceof UserConnection)
- ((UserConnection) player).setServerJoinQueue(new LinkedList<>(fallbacks.keySet()));
- return server;
}
/**
diff --git a/pom.xml b/pom.xml
index 4f9d8f94..d0f14877 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,6 +11,7 @@
SubServers.Client
SubServers.Bungee
SubServers.Console
+ SubServers.Creator
SubServers.Host
SubServers.Sync