diff --git a/src/de/steamwar/bungeecore/ServerStarter.java b/src/de/steamwar/bungeecore/ServerStarter.java index cb456db6..36ccac63 100644 --- a/src/de/steamwar/bungeecore/ServerStarter.java +++ b/src/de/steamwar/bungeecore/ServerStarter.java @@ -43,7 +43,7 @@ public class ServerStarter { private boolean allowMerge = false; private String fightMap = null; private String gameMode = null; - private ServerConstructor constructor = (serverName, port, allowMerge, builder, shutdownCallback) -> new Arenaserver(serverName, gameMode, fightMap, false, port, builder, shutdownCallback); + private ServerConstructor constructor = (serverName, port, builder, shutdownCallback) -> new Arenaserver(serverName, gameMode, fightMap, allowMerge, port, builder, shutdownCallback); private final Set playersToSend = new HashSet<>(); private final Map arguments = new HashMap<>(); @@ -192,7 +192,7 @@ public class ServerStarter { } private void build(UUID owner) { - constructor = (serverName, port, allowMerge, builder, shutdownCallback) -> new Bauserver(serverName, owner, port, builder, shutdownCallback); + constructor = (serverName, port, builder, shutdownCallback) -> new Bauserver(serverName, owner, port, builder, shutdownCallback); serverNameProvider = port -> bauServerName(SteamwarUser.get(owner)); } @@ -216,7 +216,7 @@ public class ServerStarter { worldSetup.run(); arguments.put("logPath", worldName); - Subserver subserver = constructor.construct(serverName, port, allowMerge, node.startServer( + Subserver subserver = constructor.construct(serverName, port, node.startServer( serverJar, directory, worldDir, worldName, port, xmx, arguments.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()).toArray(String[]::new) ), worldCleanup); @@ -249,7 +249,7 @@ public class ServerStarter { } private interface ServerConstructor { - Subserver construct(String serverName, int port, boolean merge, ProcessBuilder builder, Runnable shutdownCallback); + Subserver construct(String serverName, int port, ProcessBuilder builder, Runnable shutdownCallback); } private static class Portrange { diff --git a/src/de/steamwar/bungeecore/commands/FightCommand.java b/src/de/steamwar/bungeecore/commands/FightCommand.java index 07eb5d66..c4632393 100644 --- a/src/de/steamwar/bungeecore/commands/FightCommand.java +++ b/src/de/steamwar/bungeecore/commands/FightCommand.java @@ -168,12 +168,14 @@ public class FightCommand extends BasicCommand { if(map == null) return; - if(!allowMerging || suggestMerging(player, mode, map, callback)) { + if(!allowMerging) { callback.run(player, mode, map); + } else { + suggestMerging(player, mode, map, callback); } } - public static boolean suggestMerging(ProxiedPlayer player, ArenaMode mode, String map, FightCallback declineMerge) { + public static void suggestMerging(ProxiedPlayer player, ArenaMode mode, String map, FightCallback declineMerge) { Arenaserver mergable = null; synchronized (Subserver.getServerList()) { for (Subserver subserver : Subserver.getServerList()) { @@ -188,7 +190,8 @@ public class FightCommand extends BasicCommand { } if(mergable == null) { - return true; + declineMerge.run(player, mode, map); + return; } SWInventory inventory = new SWInventory(player, 9, Message.parse("FIGHT_MERGE_TITLE", player)); @@ -209,7 +212,6 @@ public class FightCommand extends BasicCommand { } }); inventory.open(); - return false; } @Override