SteamWar/BungeeCore
Archiviert
13
2

Arena Merging 2.0 #329

Zusammengeführt
Lixfel hat 12 Commits von arena_merging_2.0 nach master 2022-05-01 22:45:03 +02:00 zusammengeführt
2 geänderte Dateien mit 10 neuen und 8 gelöschten Zeilen
Nur Änderungen aus Commit d854621752 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -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);
Veraltet
Review

Du hast allowMerge bereits im Objekt, allowMerge ist nicht Startablaufdynamisch, daher bitte aus dem Interface raushalten! (also kein allowMerge im Interface als parameter)

Du hast allowMerge bereits im Objekt, allowMerge ist nicht Startablaufdynamisch, daher bitte aus dem Interface raushalten! (also kein allowMerge im Interface als parameter)
private final Set<ProxiedPlayer> playersToSend = new HashSet<>();
private final Map<String, String> 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 {

Datei anzeigen

@ -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);
Chaoscaot markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Bitte mal an andere Stellen schauen, aber ich glaube, hier fehlt ein synchronized

Bitte mal an andere Stellen schauen, aber ich glaube, hier fehlt ein synchronized
} 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 {
}
Veraltet
Review

Mir gefällt es nicht ganz, dass die Methode sowohl durch den Returnwert als auch über declineMerge das gleiche mache n kann (wobei die Booleanrichtung auch durch den Methodennamen unklar ist). (Würde ich auch so akzeptieren, aber schöner wäre es anders).

Evtl. die createArena-Methode sofort eine Arena starten lassen, wenn merging nicht allowed ist (und returnen) und dann die suggestMerging-Methode am Ende der Methode ausführen.

Mir gefällt es nicht ganz, dass die Methode sowohl durch den Returnwert als auch über declineMerge das gleiche mache n kann (wobei die Booleanrichtung auch durch den Methodennamen unklar ist). (Würde ich auch so akzeptieren, aber schöner wäre es anders). Evtl. die createArena-Methode sofort eine Arena starten lassen, wenn merging nicht allowed ist (und returnen) und dann die suggestMerging-Methode am Ende der Methode ausführen.
if(mergable == null) {
Lixfel markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Error? Hackts? Dann werf wenn schon einen richtigen Fehler!

Error? Hackts? Dann werf wenn schon einen richtigen Fehler!
return true;
declineMerge.run(player, mode, map);
Chaoscaot markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Das wirkt mir nach einem sehr merkwürdigen Check, ob der Server noch online ist. Entweder wir haben dafür eine Funktion im Subserver oder du machst das über Spieler == 0

Das wirkt mir nach einem sehr merkwürdigen Check, ob der Server noch online ist. Entweder wir haben dafür eine Funktion im Subserver oder du machst das über Spieler == 0
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