Fix UserElo.getEloFromDb

This commit is contained in:
2025-11-10 11:01:31 +01:00
parent 0760a5a08a
commit 8ada9a6335
5 changed files with 10 additions and 9 deletions
@@ -46,14 +46,14 @@ public class Season {
if (season == -1) return ""; if (season == -1) return "";
int yearSeason = season % 3; int yearSeason = season % 3;
int year = (season - yearSeason) / 3; int year = (season - yearSeason) / 3;
return String.format("%d-%d", year, yearSeason); return String.format("%d-%d", year, yearSeason + 1);
} }
public static int convertSeasonToNumber(String season){ public static int convertSeasonToNumber(String season){
if (season.isEmpty()) return -1; if (season.isEmpty()) return -1;
String[] split = season.split("-"); String[] split = season.split("-");
try { try {
return Integer.parseInt(split[0]) * 3 + Integer.parseInt(split[1]); return Integer.parseInt(split[0]) * 3 + Integer.parseInt(split[1]) - 1;
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
return -1; return -1;
} }
@@ -67,7 +67,7 @@ class UserElo(id: EntityID<CompositeID>) : CompositeEntity(id) {
.getOrPut(userId) { getEloFromDb(userId, gameMode)?.elo } .getOrPut(userId) { getEloFromDb(userId, gameMode)?.elo }
private fun getEloFromDb(userId: Int, gameMode: String) = useDb { private fun getEloFromDb(userId: Int, gameMode: String) = useDb {
find { (UserEloTable.userId eq userId) and (UserEloTable.gameMode eq gameMode) }.firstOrNull() find { (UserEloTable.userId eq userId) and (UserEloTable.gameMode eq gameMode) and (UserEloTable.season eq Season.getSeason()) }.firstOrNull()
} }
@JvmStatic @JvmStatic
@@ -677,7 +677,8 @@ ARENA_NOT_FOUND=§cThe specified arena could not be found
#Rank #Rank
RANK_PLAYER_NOT_FOUND=§cPlayer not found RANK_PLAYER_NOT_FOUND=§cPlayer not found
RANK_PLAYER_FOUND=§eRank §7of §e{0} RANK_PLAYER_FOUND=§eRank §7of §e{0}
RANK_HEADER={0} §e{1} {2} RANK_HEADER=§eRank Season {0}
RANK_DATA={0} §e{1} {2}
RANK_UNPLACED=§7unranked RANK_UNPLACED=§7unranked
RANK_PLACED=§e{0}§8. §7with §e{1} §7Elo§8. RANK_PLACED=§e{0}§8. §7with §e{1} §7Elo§8.
@@ -644,7 +644,8 @@ ARENA_NOT_FOUND=§cDie angegebene Arena konnte nicht gefunden werden
#Rank #Rank
RANK_PLAYER_NOT_FOUND=§cSpieler nicht gefunden RANK_PLAYER_NOT_FOUND=§cSpieler nicht gefunden
RANK_PLAYER_FOUND=§eRang §7von §e{0} RANK_PLAYER_FOUND=§eRang §7von §e{0}
RANK_HEADER={0} §e{1} {2} RANK_HEADER=§eRang Saison {0}
RANK_DATA={0} §e{1} {2}
RANK_UNPLACED=§7unplatziert RANK_UNPLACED=§7unplatziert
RANK_PLACED=§e{0}§8. §7mit §e{1} §7Elo§8. RANK_PLACED=§e{0}§8. §7mit §e{1} §7Elo§8.
@@ -24,13 +24,11 @@ import de.steamwar.sql.GameModeConfig;
import de.steamwar.linkage.Linked; import de.steamwar.linkage.Linked;
import de.steamwar.messages.Chatter; import de.steamwar.messages.Chatter;
import de.steamwar.messages.Message; import de.steamwar.messages.Message;
import de.steamwar.sql.SchematicType; import de.steamwar.sql.Season;
import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.SteamwarUser;
import de.steamwar.sql.UserElo; import de.steamwar.sql.UserElo;
import de.steamwar.velocitycore.ArenaMode; import de.steamwar.velocitycore.ArenaMode;
import java.util.Optional;
@Linked @Linked
public class RankCommand extends SWCommand { public class RankCommand extends SWCommand {
@@ -45,6 +43,7 @@ public class RankCommand extends SWCommand {
@Register @Register
public void rank(Chatter sender, @ErrorMessage("RANK_PLAYER_NOT_FOUND") SteamwarUser user) { public void rank(Chatter sender, @ErrorMessage("RANK_PLAYER_NOT_FOUND") SteamwarUser user) {
sender.prefixless("RANK_HEADER", Season.convertSeasonToString(Season.getSeason()));
if (!sender.user().equals(user)) if (!sender.user().equals(user))
sender.prefixless("RANK_PLAYER_FOUND", user); sender.prefixless("RANK_PLAYER_FOUND", user);
@@ -61,7 +60,7 @@ public class RankCommand extends SWCommand {
eloMsg = new Message("RANK_UNPLACED"); eloMsg = new Message("RANK_UNPLACED");
} }
sender.prefixless("RANK_HEADER", UserElo.getEmblemProgression(mode.getChatName(), user.getId()), mode.getChatName(), eloMsg); sender.prefixless("RANK_DATA", UserElo.getEmblemProgression(mode.getChatName(), user.getId()), mode.getChatName(), eloMsg);
} }
} }
} }