SteamWar/BungeeCore
Archiviert
13
2

Ranked #306

Zusammengeführt
Lixfel hat 25 Commits von Ranked nach master 2022-03-13 20:26:16 +01:00 zusammengeführt
2 geänderte Dateien mit 5 neuen und 1 gelöschten Zeilen
Nur Änderungen aus Commit 0d7ebc224c werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -85,7 +85,7 @@ public class FightEndsHandler implements SpigotHandler {
private void calculateEloOfTeam(List<Integer> team, String gameMode, double factor) {
for (int player : team) {
int playerElo = UserElo.getElo(player, gameMode).orElse(ELO_DEFAULT);
int playerElo = UserElo.getEloOrDefault(player, gameMode);
UserElo.setElo(player, gameMode, (int) Math.round(playerElo + K * factor));
}
}

Datei anzeigen

@ -41,6 +41,10 @@ public class UserElo {
private static final Statement maxElo = new Statement("SELECT MAX(Elo) AS MaxElo FROM UserElo WHERE Season = ? AND GameMode = ?");
private static final Statement fightsOfSeason = new Statement("SELECT COUNT(*) AS Fights FROM FightPlayer INNER JOIN Fight F on FightPlayer.FightID = F.FightID WHERE UserID = ? AND GameMode = ? AND UNIX_TIMESTAMP(StartTime) + Duration >= UNIX_TIMESTAMP(?)");
public static int getEloOrDefault(int userID, String gameMode) {
Lixfel markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Mach es doch wie in der SchemElo und gib die Default-Elo zurück, wenn es keine gibt... Falls du eine Funktion brauchst, wo es relevant ist, ob überhaupt eine exisitiert, dann habe das doch als 2 verschiedene Funktionen. Damit würde dann z.B. der FightEndsHandler nichts mehr von der Default-Elo wissen müssen

Mach es doch wie in der SchemElo und gib die Default-Elo zurück, wenn es keine gibt... Falls du eine Funktion brauchst, wo es relevant ist, ob überhaupt eine exisitiert, dann habe das doch als 2 verschiedene Funktionen. Damit würde dann z.B. der FightEndsHandler nichts mehr von der Default-Elo wissen müssen
Veraltet
Review

Ist das so in Ordnung wie ich das gemacht habe?

Ist das so in Ordnung wie ich das gemacht habe?
return getElo(userID, gameMode).orElse(ELO_DEFAULT);
}
public static Optional<Integer> getElo(int userID, String gameMode) {
return gameModeUserEloCache.computeIfAbsent(gameMode, gm -> {
return new HashMap<>();
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Du clearst den Cache eh schon stündlich, das ist häufig genug auch für Seasonänderungen.

Du clearst den Cache eh schon stündlich, das ist häufig genug auch für Seasonänderungen.