Skip to content

Commit 28190f5

Browse files
feat(i18n): migrate all callsites to use per-player locale
Update ~110 files across GUIs, commands, scoreboards, tab modules, and NPCs to resolve translations using the player's client locale instead of the hardcoded default (Locale.US).
1 parent 489e32e commit 28190f5

123 files changed

Lines changed: 1810 additions & 1502 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

type.backwaterbayou/src/main/java/net/swofty/type/backwaterbayou/tab/BackwaterBayouServerModule.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88

99
import java.util.ArrayList;
1010
import java.util.List;
11+
import java.util.Locale;
1112
import java.util.Map;
1213

1314
public class BackwaterBayouServerModule extends TablistModule {
1415
@Override
1516
public List<TablistEntry> getEntries(HypixelPlayer player) {
17+
Locale l = player.getLocale();
1618
ArrayList<TablistEntry> entries = new ArrayList<>(List.of(
17-
new TablistEntry(getCentered(I18n.string("tablist.module.server_info")), TablistSkinRegistry.CYAN)
19+
new TablistEntry(getCentered(I18n.string("tablist.module.server_info", l)), TablistSkinRegistry.CYAN)
1820
));
1921

20-
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.backwater_bayou"), TablistSkinRegistry.GRAY));
21-
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
22+
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.backwater_bayou", l), TablistSkinRegistry.GRAY));
23+
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", l, Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
2224

2325
fillRestWithGray(entries);
2426

type.bedwarsgame/src/main/java/net/swofty/type/bedwarsgame/BedWarsGameScoreboard.java

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.ArrayList;
1919
import java.util.Date;
2020
import java.util.List;
21+
import java.util.Locale;
2122
import java.util.Map;
2223

2324
public class BedWarsGameScoreboard {
@@ -40,6 +41,7 @@ public static void start(Game game) {
4041
if (player.joined - System.currentTimeMillis() > 5000) {
4142
continue;
4243
}
44+
Locale l = player.getLocale();
4345
HypixelDataHandler dataHandler = player.getDataHandler();
4446
BedWarsDataHandler bwDataHandler = BedWarsDataHandler.getUser(player);
4547

@@ -48,17 +50,17 @@ public static void start(Game game) {
4850
}
4951

5052
List<String> lines = new ArrayList<>();
51-
lines.add("§7" + new SimpleDateFormat(I18n.string("scoreboard.common.date_format")).format(new Date()) + " §8" + HypixelConst.getServerName());
53+
lines.add("§7" + new SimpleDateFormat(I18n.string("scoreboard.common.date_format", l)).format(new Date()) + " §8" + HypixelConst.getServerName());
5254
lines.add("§7 ");
5355

5456
if (game.getGameStatus() == GameStatus.WAITING) {
55-
lines.add(I18n.string("scoreboard.bedwars_game.map_label") + game.getMapEntry().getName());
56-
lines.add(I18n.string("scoreboard.bedwars_game.players_label") + game.getPlayers().size() + "/" + game.getMapEntry().getConfiguration().getTeams().size());
57+
lines.add(I18n.string("scoreboard.bedwars_game.map_label", l) + game.getMapEntry().getName());
58+
lines.add(I18n.string("scoreboard.bedwars_game.players_label", l) + game.getPlayers().size() + "/" + game.getMapEntry().getConfiguration().getTeams().size());
5759
lines.add("§7 ");
58-
lines.add(I18n.string("scoreboard.bedwars_game.starting_in_label") + game.getCountdown().getRemainingSeconds() + I18n.string("scoreboard.bedwars_game.starting_in_suffix"));
60+
lines.add(I18n.string("scoreboard.bedwars_game.starting_in_label", l) + game.getCountdown().getRemainingSeconds() + I18n.string("scoreboard.bedwars_game.starting_in_suffix", l));
5961
lines.add("§7 ");
60-
lines.add(I18n.string("scoreboard.bedwars_game.mode_label") + game.getBedwarsGameType().getDisplayName());
61-
lines.add(I18n.string("scoreboard.bedwars_game.version_label"));
62+
lines.add(I18n.string("scoreboard.bedwars_game.mode_label", l) + game.getBedwarsGameType().getDisplayName());
63+
lines.add(I18n.string("scoreboard.bedwars_game.version_label", l));
6264
} else {
6365
String eventName = game.getEventManager().getNextEvent() != null
6466
? game.getEventManager().getNextEvent().getDisplayName()
@@ -67,28 +69,28 @@ public static void start(Game game) {
6769
long minutesPart = seconds / 60;
6870
long secondsPart = seconds % 60;
6971
String timeLeft = String.format("%d:%02d", minutesPart, secondsPart);
70-
lines.add(I18n.string("scoreboard.bedwars_game.event_in_label", Map.of("event_name", eventName, "time_left", timeLeft)));
72+
lines.add(I18n.string("scoreboard.bedwars_game.event_in_label", l, Map.of("event_name", eventName, "time_left", timeLeft)));
7173
lines.add("§7 ");
7274
for (Map.Entry<TeamKey, net.swofty.commons.bedwars.map.BedWarsMapsConfig.MapTeam> entry : game.getMapEntry().getConfiguration().getTeams().entrySet()) {
7375
TeamKey teamKey = entry.getKey();
7476
String teamName = teamKey.getName();
7577
String teamInitial = teamName.substring(0, 1).toUpperCase();
7678

7779
String bedStatus = game.getTeamManager().isBedAlive(teamKey)
78-
? I18n.string("scoreboard.bedwars_game.bed_alive")
79-
: I18n.string("scoreboard.bedwars_game.bed_dead");
80+
? I18n.string("scoreboard.bedwars_game.bed_alive", l)
81+
: I18n.string("scoreboard.bedwars_game.bed_dead", l);
8082
lines.add(String.format("%s%s §f%s %s", teamKey.chatColor(), teamInitial, teamName, bedStatus));
8183
}
8284
}
8385
lines.add("§7 ");
84-
lines.add(I18n.string("scoreboard.common.footer"));
86+
lines.add(I18n.string("scoreboard.common.footer", l));
8587

8688
if (!scoreboard.hasScoreboard(player)) {
87-
scoreboard.createScoreboard(player, getSidebarName(prototypeName));
89+
scoreboard.createScoreboard(player, getSidebarName(prototypeName, l));
8890
}
8991

9092
scoreboard.updateLines(player, lines);
91-
scoreboard.updateTitle(player, getSidebarName(prototypeName));
93+
scoreboard.updateTitle(player, getSidebarName(prototypeName, l));
9294
}
9395
return TaskSchedule.tick(4);
9496
});
@@ -98,8 +100,8 @@ public static void removeCache(Player player) {
98100
scoreboard.removeScoreboard(player);
99101
}
100102

101-
private static String getSidebarName(int counter) {
102-
String baseText = I18n.string("scoreboard.bedwars_game.title_base");
103+
private static String getSidebarName(int counter, Locale locale) {
104+
String baseText = I18n.string("scoreboard.bedwars_game.title_base", locale);
103105
String[] colors = {"§f§l", "§6§l", "§e§l"};
104106
String endColor = "§a§l";
105107

type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/BedWarsLobbyScoreboard.java

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.ArrayList;
2020
import java.util.Date;
2121
import java.util.List;
22+
import java.util.Locale;
2223

2324
import static net.swofty.commons.bedwars.BedwarsLevelUtil.suffix;
2425

@@ -36,6 +37,7 @@ public static void start() {
3637
}
3738

3839
for (HypixelPlayer player : HypixelGenericLoader.getLoadedPlayers()) {
40+
Locale l = player.getLocale();
3941
HypixelDataHandler dataHandler = player.getDataHandler();
4042
BedWarsDataHandler bwDataHandler = BedWarsDataHandler.getUser(player);
4143

@@ -49,41 +51,41 @@ public static void start() {
4951

5052
double percentage = Math.min(1.0, (double) progress / maxExperience);
5153
int filledSquares = (int) Math.round(percentage * 10);
52-
StringBuilder progressBar = new StringBuilder(" " + I18n.string("scoreboard.bedwars_lobby.progress_bar_open"));
54+
StringBuilder progressBar = new StringBuilder(" " + I18n.string("scoreboard.bedwars_lobby.progress_bar_open", l));
5355
for (int i = 0; i < 10; i++) {
5456
if (i < filledSquares) {
55-
progressBar.append(I18n.string("scoreboard.bedwars_lobby.progress_bar_filled"));
57+
progressBar.append(I18n.string("scoreboard.bedwars_lobby.progress_bar_filled", l));
5658
} else {
57-
progressBar.append(I18n.string("scoreboard.bedwars_lobby.progress_bar_empty"));
59+
progressBar.append(I18n.string("scoreboard.bedwars_lobby.progress_bar_empty", l));
5860
}
5961
}
60-
progressBar.append(I18n.string("scoreboard.bedwars_lobby.progress_bar_close"));
62+
progressBar.append(I18n.string("scoreboard.bedwars_lobby.progress_bar_close", l));
6163

6264
long tokens = bwDataHandler.get(BedWarsDataHandler.Data.TOKENS, DatapointLeaderboardLong.class).getValue();
6365
long tickets = bwDataHandler.get(BedWarsDataHandler.Data.SLUMBER_TICKETS, DatapointLeaderboardLong.class).getValue();
6466

6567
List<String> lines = new ArrayList<>();
66-
lines.add("§7" + new SimpleDateFormat(I18n.string("scoreboard.common.date_format")).format(new Date()) + " §8" + HypixelConst.getServerName());
68+
lines.add("§7" + new SimpleDateFormat(I18n.string("scoreboard.common.date_format", l)).format(new Date()) + " §8" + HypixelConst.getServerName());
6769
lines.add("§7 ");
68-
lines.add(I18n.string("scoreboard.bedwars_lobby.level_label") + BedwarsLevelColor.constructLevelString(BedwarsLevelUtil.calculateLevel(experience)));
70+
lines.add(I18n.string("scoreboard.bedwars_lobby.level_label", l) + BedwarsLevelColor.constructLevelString(BedwarsLevelUtil.calculateLevel(experience)));
6971
lines.add("§7 ");
70-
lines.add(I18n.string("scoreboard.bedwars_lobby.progress_label") + suffix(progress) + I18n.string("scoreboard.bedwars_lobby.progress_separator") + suffix(maxExperience));
72+
lines.add(I18n.string("scoreboard.bedwars_lobby.progress_label", l) + suffix(progress) + I18n.string("scoreboard.bedwars_lobby.progress_separator", l) + suffix(maxExperience));
7173
lines.add(progressBar.toString());
7274
lines.add("§7 ");
73-
lines.add(I18n.string("scoreboard.bedwars_lobby.tokens_label") + tokens);
74-
lines.add(I18n.string("scoreboard.bedwars_lobby.tickets_label") + tickets + I18n.string("scoreboard.bedwars_lobby.tickets_max"));
75+
lines.add(I18n.string("scoreboard.bedwars_lobby.tokens_label", l) + tokens);
76+
lines.add(I18n.string("scoreboard.bedwars_lobby.tickets_label", l) + tickets + I18n.string("scoreboard.bedwars_lobby.tickets_max", l));
7577
lines.add("§7 ");
76-
lines.add(I18n.string("scoreboard.bedwars_lobby.total_kills_label"));
77-
lines.add(I18n.string("scoreboard.bedwars_lobby.total_wins_label"));
78+
lines.add(I18n.string("scoreboard.bedwars_lobby.total_kills_label", l));
79+
lines.add(I18n.string("scoreboard.bedwars_lobby.total_wins_label", l));
7880
lines.add("§7 ");
79-
lines.add(I18n.string("scoreboard.common.footer"));
81+
lines.add(I18n.string("scoreboard.common.footer", l));
8082

8183
if (!scoreboard.hasScoreboard(player)) {
82-
scoreboard.createScoreboard(player, getSidebarName(prototypeName));
84+
scoreboard.createScoreboard(player, getSidebarName(prototypeName, l));
8385
}
8486

8587
scoreboard.updateLines(player, lines);
86-
scoreboard.updateTitle(player, getSidebarName(prototypeName));
88+
scoreboard.updateTitle(player, getSidebarName(prototypeName, l));
8789
}
8890
return TaskSchedule.tick(4);
8991
});
@@ -93,8 +95,8 @@ public static void removeCache(Player player) {
9395
scoreboard.removeScoreboard(player);
9496
}
9597

96-
private static String getSidebarName(int counter) {
97-
String baseText = I18n.string("scoreboard.bedwars_lobby.title_base");
98+
private static String getSidebarName(int counter, Locale locale) {
99+
String baseText = I18n.string("scoreboard.bedwars_lobby.title_base", locale);
98100
String[] colors = {"§f§l", "§6§l", "§e§l"};
99101
String endColor = "§a§l";
100102

type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/tab/BedWarsPlayersOnlineModule.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.ArrayList;
1717
import java.util.Collections;
1818
import java.util.List;
19+
import java.util.Locale;
1920
import java.util.Map;
2021

2122
public class BedWarsPlayersOnlineModule extends TablistModule {
@@ -27,10 +28,11 @@ public BedWarsPlayersOnlineModule(int page) {
2728

2829
@Override
2930
public List<TablistEntry> getEntries(HypixelPlayer player) {
31+
Locale l = player.getLocale();
3032
List<HypixelPlayer> players = HypixelGenericLoader.getLoadedPlayers();
3133

3234
ArrayList<TablistEntry> entries = new ArrayList<>(List.of(
33-
new TablistEntry(getCentered(I18n.string("tablist.module.players", Map.of("count", String.valueOf(players.size())))), TablistSkinRegistry.GREEN)
35+
new TablistEntry(getCentered(I18n.string("tablist.module.players", l, Map.of("count", String.valueOf(players.size())))), TablistSkinRegistry.GREEN)
3436
));
3537

3638
List<HypixelPlayer> toShow = new ArrayList<>();

type.crimsonisle/src/main/java/net/swofty/type/crimsonisle/tab/CrimsonIsleServerModule.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88

99
import java.util.ArrayList;
1010
import java.util.List;
11+
import java.util.Locale;
1112
import java.util.Map;
1213

1314
public class CrimsonIsleServerModule extends TablistModule {
1415
@Override
1516
public List<TablistEntry> getEntries(HypixelPlayer player) {
17+
Locale l = player.getLocale();
1618
ArrayList<TablistEntry> entries = new ArrayList<>(List.of(
17-
new TablistEntry(getCentered(I18n.string("tablist.module.server_info")), TablistSkinRegistry.CYAN)
19+
new TablistEntry(getCentered(I18n.string("tablist.module.server_info", l)), TablistSkinRegistry.CYAN)
1820
));
1921

20-
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.crimson_isle"), TablistSkinRegistry.GRAY));
21-
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
22+
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.crimson_isle", l), TablistSkinRegistry.GRAY));
23+
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", l, Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
2224

2325
fillRestWithGray(entries);
2426

type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/tab/DeepCavernsServerModule.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88

99
import java.util.ArrayList;
1010
import java.util.List;
11+
import java.util.Locale;
1112
import java.util.Map;
1213

1314
public class DeepCavernsServerModule extends TablistModule {
1415
@Override
1516
public List<TablistEntry> getEntries(HypixelPlayer player) {
17+
Locale l = player.getLocale();
1618
ArrayList<TablistEntry> entries = new ArrayList<>(List.of(
17-
new TablistEntry(getCentered(I18n.string("tablist.module.server_info")), TablistSkinRegistry.CYAN)
19+
new TablistEntry(getCentered(I18n.string("tablist.module.server_info", l)), TablistSkinRegistry.CYAN)
1820
));
1921

20-
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.deep_caverns"), TablistSkinRegistry.GRAY));
21-
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
22+
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.deep_caverns", l), TablistSkinRegistry.GRAY));
23+
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", l, Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
2224

2325
fillRestWithGray(entries);
2426

type.dungeonhub/src/main/java/net/swofty/type/dungeonhub/tab/DungeonServerModule.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88

99
import java.util.ArrayList;
1010
import java.util.List;
11+
import java.util.Locale;
1112
import java.util.Map;
1213

1314
public class DungeonServerModule extends TablistModule {
1415
@Override
1516
public List<TablistEntry> getEntries(HypixelPlayer player) {
17+
Locale l = player.getLocale();
1618
ArrayList<TablistEntry> entries = new ArrayList<>(List.of(
17-
new TablistEntry(getCentered(I18n.string("tablist.module.server_info")), TablistSkinRegistry.CYAN)
19+
new TablistEntry(getCentered(I18n.string("tablist.module.server_info", l)), TablistSkinRegistry.CYAN)
1820
));
1921

20-
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.dungeon_hub"), TablistSkinRegistry.GRAY));
21-
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
22+
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.dungeon_hub", l), TablistSkinRegistry.GRAY));
23+
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", l, Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
2224

2325
fillRestWithGray(entries);
2426

type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/tab/DwarvenMinesServerModule.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88

99
import java.util.ArrayList;
1010
import java.util.List;
11+
import java.util.Locale;
1112
import java.util.Map;
1213

1314
public class DwarvenMinesServerModule extends TablistModule {
1415
@Override
1516
public List<TablistEntry> getEntries(HypixelPlayer player) {
17+
Locale l = player.getLocale();
1618
ArrayList<TablistEntry> entries = new ArrayList<>(List.of(
17-
new TablistEntry(getCentered(I18n.string("tablist.module.server_info")), TablistSkinRegistry.CYAN)
19+
new TablistEntry(getCentered(I18n.string("tablist.module.server_info", l)), TablistSkinRegistry.CYAN)
1820
));
1921

20-
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.dwarven_mines"), TablistSkinRegistry.GRAY));
21-
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
22+
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.dwarven_mines", l), TablistSkinRegistry.GRAY));
23+
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", l, Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
2224

2325
fillRestWithGray(entries);
2426

type.galatea/src/main/java/net/swofty/type/galatea/tab/GalateaServerModule.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88

99
import java.util.ArrayList;
1010
import java.util.List;
11+
import java.util.Locale;
1112
import java.util.Map;
1213

1314
public class GalateaServerModule extends TablistModule {
1415
@Override
1516
public List<TablistEntry> getEntries(HypixelPlayer player) {
17+
Locale l = player.getLocale();
1618
ArrayList<TablistEntry> entries = new ArrayList<>(List.of(
17-
new TablistEntry(getCentered(I18n.string("tablist.module.server_info")), TablistSkinRegistry.CYAN)
19+
new TablistEntry(getCentered(I18n.string("tablist.module.server_info", l)), TablistSkinRegistry.CYAN)
1820
));
1921

20-
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.galatea"), TablistSkinRegistry.GRAY));
21-
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
22+
entries.add(new TablistEntry(I18n.string("tablist.server_info.area.galatea", l), TablistSkinRegistry.GRAY));
23+
entries.add(new TablistEntry(I18n.string("tablist.server_info.server_label", l, Map.of("server_name", HypixelConst.getServerName())), TablistSkinRegistry.GRAY));
2224

2325
fillRestWithGray(entries);
2426

0 commit comments

Comments
 (0)