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
4 geänderte Dateien mit 41 neuen und 36 gelöschten Zeilen
Nur Änderungen aus Commit f5eaadba4f werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -37,10 +37,13 @@ public class ServerStarter {
private Portrange portrange = BAU_PORTS;
private Function<Integer, String> serverNameProvider = port -> node.getName() + port;
private BooleanSupplier startCondition = () -> true;
private ServerConstructor constructor = (serverName, port, builder, shutdownCallback) -> new Subserver(Servertype.ARENA, serverName, port, builder, shutdownCallback);
private Runnable worldSetup = () -> {};
private String worldName = null;
private Runnable worldCleanup = () -> {};
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);
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<>();
@ -49,9 +52,11 @@ public class ServerStarter {
portrange = ARENA_PORTS;
serverNameProvider = port -> mode.getDisplayName() + (port - portrange.start);
serverJar = mode.serverJar();
Chaoscaot markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Ich weiß nicht, was du hier mit dem ranked-Check machen willst?

Ich weiß nicht, was du hier mit dem ranked-Check machen willst?
Veraltet
Review

Dies würde ich zum Default machen, und den boolean, ob merging erlaubt sein soll, in einen Boolean des ServerStarters auslagern, dann kannst du den einfacher/besser togglen. Und dann gibt es keine Instanz des Raw-Subservers mehr.

Dies würde ich zum Default machen, und den boolean, ob merging erlaubt sein soll, in einen Boolean des ServerStarters auslagern, dann kannst du den einfacher/besser togglen. Und dann gibt es keine Instanz des Raw-Subservers mehr.
allowMerge = true;
fightMap = map;
gameMode = mode.getInternalName();
directory = new File(SERVER_PATH, mode.getFolder());
arguments.put("config", mode.getConfig());
constructor = (serverName, port, builder, shutdownCallback) -> new Arenaserver(serverName, mode.getInternalName(), map, true, port, builder, shutdownCallback);
tempWorld(SERVER_PATH + mode.getFolder() + "/arenas/" + map);
return this;
}
@ -62,7 +67,8 @@ public class ServerStarter {
worldDir = EVENT_PATH;
worldCleanup = () -> {};
arguments.put("fightID", String.valueOf(eventFight.getFightID()));
constructor = (serverName, port, builder, shutdownCallback) -> new Arenaserver(serverName, eventFight.getSpielmodus().getInternalName(), eventFight.getMap(), false, port, builder, shutdownCallback);
fightMap = eventFight.getMap();
gameMode = eventFight.getSpielmodus().getInternalName();
String serverName = Team.get(eventFight.getTeamBlue()).getTeamKuerzel() + " vs " + Team.get(eventFight.getTeamRed()).getTeamKuerzel();
serverNameProvider = port -> serverName;
@ -186,7 +192,7 @@ public class ServerStarter {
}
private void build(UUID owner) {
constructor = (serverName, port, builder, shutdownCallback) -> new Bauserver(serverName, owner, port, builder, shutdownCallback);
constructor = (serverName, port, allowMerge, builder, shutdownCallback) -> new Bauserver(serverName, owner, port, builder, shutdownCallback);
serverNameProvider = port -> bauServerName(SteamwarUser.get(owner));
}
@ -210,7 +216,7 @@ public class ServerStarter {
worldSetup.run();
arguments.put("logPath", worldName);
Subserver subserver = constructor.construct(serverName, port, node.startServer(
Subserver subserver = constructor.construct(serverName, port, allowMerge, node.startServer(
serverJar, directory, worldDir, worldName, port, xmx, arguments.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()).toArray(String[]::new)
), worldCleanup);
@ -243,7 +249,7 @@ public class ServerStarter {
}
private interface ServerConstructor {
Subserver construct(String serverName, int port, ProcessBuilder builder, Runnable shutdownCallback);
Subserver construct(String serverName, int port, boolean merge, ProcessBuilder builder, Runnable shutdownCallback);
}
private static class Portrange {

Datei anzeigen

@ -71,7 +71,7 @@ public class ChallengeCommand extends BasicCommand {
return;
}
FightCommand.createArena(sender, "/challenge " + target.getName() + " ", true, args, 1, false, (player, mode, map) -> {
FightCommand.createArena(sender, "/challenge " + target.getName() + " ", false, args, 1, false, (player, mode, map) -> {
Veraltet
Review

Bei einer Herausforderung gezielt eines Spielers sollte meiner Meinung nach kein Arenamerging stattfinden.

Bei einer Herausforderung gezielt eines Spielers sollte meiner Meinung nach kein Arenamerging stattfinden.
if(challenges.containsKey(target) && challenges.get(target).contains(player)){
challenges.remove(target);
challenges.remove(player);

Datei anzeigen

@ -168,9 +168,7 @@ public class FightCommand extends BasicCommand {
if(map == null)
return;
if(!allowMerging) {
callback.run(player, mode, map);
} else if(suggestMerging(player, mode, map, callback)) {
if(!allowMerging || suggestMerging(player, mode, map, callback)) {
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
}
}
@ -189,28 +187,29 @@ public class FightCommand extends BasicCommand {
}
}
Chaoscaot markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Bitte durchgängig Message-System verwenden. Hier verwendest du übrigens den internalMode (nicht nötig, du hast ja schon mode. Bitte nicht die Map zu Uppercase casten.

Bitte durchgängig Message-System verwenden. Hier verwendest du übrigens den internalMode (nicht nötig, du hast ja schon mode. Bitte nicht die Map zu Uppercase casten.
if(mergable != null) {
SWInventory inventory = new SWInventory(player, 9, Message.parse("FIGHT_MERGE_TITLE", player));
inventory.addItem(0, new SWItem(Message.parse("FIGHT_MERGE_DECLINE", player), 1), click -> {
inventory.close();
declineMerge.run(player, mode, map);
});
Arenaserver finalMergable = mergable;
SWItem item = new SWItem(Message.parse("FIGHT_MERGE_INFO", player, mode.getDisplayName(), finalMergable.getMap()), 11);
item.addLore(Message.parse("FIGHT_MERGE_INFO_LORE_1", player, finalMergable.getServer().getPlayers().stream().map(ProxiedPlayer::getDisplayName).reduce((player1, player2) -> player1 + ", " + player2).orElse("Error?")));
inventory.addItem(4, item, click -> {});
inventory.addItem(8, new SWItem(Message.parse("FIGHT_MERGE_ACCEPT", player), 10), click -> {
if(Subserver.getServerList().contains(finalMergable)) {
finalMergable.sendPlayer(player);
} else {
Message.send("FIGHT_MERGE_OFFLINE", player);
declineMerge.run(player, mode, map);
}
});
inventory.open();
return false;
if(mergable == null) {
return true;
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.
}
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;
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
SWInventory inventory = new SWInventory(player, 9, Message.parse("FIGHT_MERGE_TITLE", player));
inventory.addItem(0, new SWItem(Message.parse("FIGHT_MERGE_DECLINE", player), 1), click -> {
inventory.close();
declineMerge.run(player, mode, map);
});
Arenaserver finalMergable = mergable;
SWItem item = new SWItem(Message.parse("FIGHT_MERGE_INFO", player, mode.getDisplayName(), finalMergable.getMap()), 11);
item.addLore(Message.parse("FIGHT_MERGE_INFO_LORE_1", player, finalMergable.getServer().getPlayers().toArray(new ProxiedPlayer[1])[0].getName()));
inventory.addItem(4, item, click -> {});
inventory.addItem(8, new SWItem(Message.parse("FIGHT_MERGE_ACCEPT", player), 10), click -> {
if(Subserver.getServerList().contains(finalMergable)) {
finalMergable.sendPlayer(player);
} else {
Message.send("FIGHT_MERGE_OFFLINE", player);
declineMerge.run(player, mode, map);
}
});
inventory.open();
return false;
}
@Override

Datei anzeigen

@ -597,9 +597,9 @@ MODIFICATION_BAN_LOG={0} hat probiert den Fabric Mod Sender zu editieren / umzug
MODIFICATION_CHECK_SUCCESS=§eDeine Mods wurden geprüft und du darfst nun auf Arenen joinen!
Veraltet
Review

§8:

§8:
Lixfel markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

§7Die vorgeschlagene Arena wurde in der Zwischenzeit beendet, es wird eine neue Arena gestartet.

§7Die vorgeschlagene Arena wurde in der Zwischenzeit beendet, es wird eine neue Arena gestartet.
#Arena Merging
Veraltet
Review

§8:

§8:
FIGHT_MERGE_TITLE=Gleicher Fight gefunden!
FIGHT_MERGE_TITLE=Gleicher Kampf gefunden!
FIGHT_MERGE_DECLINE=Neue Arena starten
FIGHT_MERGE_ACCEPT=Fight beitreten
FIGHT_MERGE_INFO_LORE_1=§7Von: §e{0}
FIGHT_MERGE_OFFLINE=Der Server dem du beitreten wolltest ist nicht mehr online
FIGHT_MERGE_INFO=§e{0}§7: §e{1}
FIGHT_MERGE_ACCEPT=Kampf beitreten
FIGHT_MERGE_INFO_LORE_1=§8Von: §e{0}
FIGHT_MERGE_OFFLINE=§7Die vorgeschlagene Arena wurde in der Zwischenzeit beendet, es wird eine neue Arena gestartet.
FIGHT_MERGE_INFO=§e{0}§8: §e{1}