Skip to content

Commit d25f1dc

Browse files
refactor(i18n): migrate 6 commands to use I18n translation system
Replace hardcoded sendMessage strings with I18n.string() calls in FriendCommand, PartyCommand, MessageCommand, RankCommand, MuteCommand, and BanCommand. Uses commands.properties for all player-facing text.
1 parent 1a31cc5 commit d25f1dc

6 files changed

Lines changed: 88 additions & 75 deletions

File tree

type.generic/src/main/java/net/swofty/type/generic/command/commands/BanCommand.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@
1414
import net.swofty.proxyapi.ProxyService;
1515
import net.swofty.type.generic.command.CommandParameters;
1616
import net.swofty.type.generic.command.HypixelCommand;
17+
import net.swofty.type.generic.i18n.I18n;
1718
import net.swofty.type.generic.user.HypixelPlayer;
1819
import net.swofty.type.generic.user.categories.Rank;
1920
import org.jetbrains.annotations.Nullable;
2021

2122
import java.io.IOException;
2223
import java.util.ArrayList;
2324
import java.util.List;
25+
import java.util.Map;
2426
import java.util.UUID;
2527
import java.util.concurrent.CompletableFuture;
2628
import java.util.concurrent.TimeUnit;
@@ -58,7 +60,7 @@ public void registerUsage(MinestomCommand command) {
5860
try {
5961
type = BanType.valueOf(context.get(reasonArg));
6062
} catch (IllegalArgumentException e) {
61-
player.sendMessage("§cInvalid ban reason. Use tab-completion to see valid options.");
63+
player.sendMessage(I18n.string("commands.ban.invalid_reason"));
6264
return;
6365
}
6466

@@ -69,7 +71,7 @@ public void registerUsage(MinestomCommand command) {
6971
long expiryTime = System.currentTimeMillis() + actualTime;
7072
banPlayer(player, targetUuid, type, player.getUuid(), actualTime, expiryTime, playerName, null);
7173
} catch (IOException e) {
72-
player.sendMessage("§cCould not find player: " + playerName);
74+
player.sendMessage(I18n.string("commands.common.player_not_found_short", Map.of("player", playerName)));
7375
}
7476
});
7577
}, playerArg, durationArg, reasonArg);
@@ -82,7 +84,7 @@ public void registerUsage(MinestomCommand command) {
8284
try {
8385
reason = BanType.valueOf(context.get(reasonArg));
8486
} catch (IllegalArgumentException e) {
85-
player.sendMessage("§cInvalid ban reason. Use tab-completion to see valid options.");
87+
player.sendMessage(I18n.string("commands.ban.invalid_reason"));
8688
return;
8789
}
8890

@@ -91,7 +93,7 @@ public void registerUsage(MinestomCommand command) {
9193
banPlayer(player, net.minestom.server.utils.mojang.MojangUtils.getUUID(playerName), reason,
9294
player.getUuid(), 0, -1, playerName, null);
9395
} catch (IOException e) {
94-
player.sendMessage("§cCould not find player: " + playerName);
96+
player.sendMessage(I18n.string("commands.common.player_not_found_short", Map.of("player", playerName)));
9597
}
9698
});
9799
}, playerArg, reasonArg);
@@ -104,7 +106,7 @@ public void registerUsage(MinestomCommand command) {
104106
try {
105107
reason = BanType.valueOf(context.get(reasonArg));
106108
} catch (IllegalArgumentException e) {
107-
player.sendMessage("§cInvalid ban reason. Use tab-completion to see valid options.");
109+
player.sendMessage(I18n.string("commands.ban.invalid_reason"));
108110
return;
109111
}
110112

@@ -115,7 +117,7 @@ public void registerUsage(MinestomCommand command) {
115117
banPlayer(player, net.minestom.server.utils.mojang.MojangUtils.getUUID(playerName), reason,
116118
player.getUuid(), 0, -1, playerName, tags);
117119
} catch (IOException e) {
118-
player.sendMessage("§cCould not find player: " + playerName);
120+
player.sendMessage(I18n.string("commands.common.player_not_found_short", Map.of("player", playerName)));
119121
}
120122
});
121123
}, playerArg, reasonArg, extraArg);
@@ -155,15 +157,15 @@ private void banPlayer(HypixelPlayer sender, UUID targetUuid, BanType type, UUID
155157
if (result instanceof PunishPlayerProtocolObject.PunishPlayerResponse response) {
156158
if (response.success()) {
157159
new ProxyPlayer(targetUuid).transferToLimbo();
158-
sender.sendMessage("§aSuccessfully banned player §e" + playerName + "§a. §8Punishment ID: §7" + response.punishmentId());
160+
sender.sendMessage(I18n.string("commands.ban.success", Map.of("player", playerName, "id", response.punishmentId())));
159161
} else if (response.errorCode() == PunishPlayerProtocolObject.ErrorCode.ALREADY_PUNISHED) {
160-
sender.sendMessage("§cThis player is already banned. Use the tag -O to overwrite. Punishment ID: §7" + response.errorMessage());
162+
sender.sendMessage(I18n.string("commands.ban.already_banned", Map.of("id", response.errorMessage())));
161163
} else {
162-
sender.sendMessage("§cFailed to ban player: " + response.errorMessage());
164+
sender.sendMessage(I18n.string("commands.ban.failed", Map.of("error", response.errorMessage())));
163165
}
164166
}
165167
}).orTimeout(5, TimeUnit.SECONDS).exceptionally(_ -> {
166-
sender.sendMessage("§cCould not ban this player at this time. The punishment service may be offline.");
168+
sender.sendMessage(I18n.string("commands.ban.service_offline"));
167169
return null;
168170
});
169171
}

type.generic/src/main/java/net/swofty/type/generic/command/commands/FriendCommand.java

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77
import net.swofty.type.generic.command.CommandParameters;
88
import net.swofty.type.generic.command.HypixelCommand;
99
import net.swofty.type.generic.friend.FriendManager;
10+
import net.swofty.type.generic.i18n.I18n;
1011
import net.swofty.type.generic.user.HypixelPlayer;
1112
import net.swofty.type.generic.user.categories.Rank;
1213

1314
import java.util.ArrayList;
1415
import java.util.List;
16+
import java.util.Map;
1517
import java.util.UUID;
1618

1719
@CommandParameters(aliases = "f",
@@ -46,7 +48,7 @@ public void registerUsage(MinestomCommand command) {
4648
pendingCommands.add(player.getUuid());
4749

4850
if (!friendService.isOnline().join()) {
49-
sender.sendMessage("§cCould not connect to the friend service! Please try again later.");
51+
sender.sendMessage(I18n.string("commands.common.service_offline_friend"));
5052
pendingCommands.remove(player.getUuid());
5153
return;
5254
}
@@ -78,7 +80,7 @@ public void registerUsage(MinestomCommand command) {
7880
pendingCommands.add(player.getUuid());
7981

8082
if (!friendService.isOnline().join()) {
81-
sender.sendMessage("§cCould not connect to the friend service! Please try again later.");
83+
sender.sendMessage(I18n.string("commands.common.service_offline_friend"));
8284
pendingCommands.remove(player.getUuid());
8385
return;
8486
}
@@ -104,7 +106,7 @@ public void registerUsage(MinestomCommand command) {
104106
int page = parsePageNumber(arg);
105107
FriendManager.listRequests(player, page);
106108
}
107-
default -> player.sendMessage("§cUnknown command. Use /friend for help.");
109+
default -> player.sendMessage(I18n.string("commands.common.unknown_command_use_help", Map.of("command", "friend")));
108110
}
109111

110112
pendingCommands.remove(player.getUuid());
@@ -122,7 +124,7 @@ public void registerUsage(MinestomCommand command) {
122124
pendingCommands.add(player.getUuid());
123125

124126
if (!friendService.isOnline().join()) {
125-
sender.sendMessage("§cCould not connect to the friend service! Please try again later.");
127+
sender.sendMessage(I18n.string("commands.common.service_offline_friend"));
126128
pendingCommands.remove(player.getUuid());
127129
return;
128130
}
@@ -134,28 +136,28 @@ public void registerUsage(MinestomCommand command) {
134136
if (sub.equalsIgnoreCase("nickname")) {
135137
FriendManager.setNickname(player, target, extra);
136138
} else {
137-
player.sendMessage("§cUnknown command. Use /friend for help.");
139+
player.sendMessage(I18n.string("commands.common.unknown_command_use_help", Map.of("command", "friend")));
138140
}
139141

140142
pendingCommands.remove(player.getUuid());
141143
}, subcommand, playerName, extraArg);
142144
}
143145

144146
private void showHelp(HypixelPlayer player) {
145-
player.sendMessage("§9§m-----------------------------------------------------");
146-
player.sendMessage("§6Friend Commands");
147-
player.sendMessage("§e/f add <player> §8- §7Add a player as a friend");
148-
player.sendMessage("§e/f accept <player> §8- §7Accept a friend request");
149-
player.sendMessage("§e/f deny <player> §8- §7Deny a friend request");
150-
player.sendMessage("§e/f remove <player> §8- §7Remove a friend");
151-
player.sendMessage("§e/f removeall §8- §7Remove all friends (keeps best friends)");
152-
player.sendMessage("§e/f best <player> §8- §7Toggle best friend status");
153-
player.sendMessage("§e/f nickname <player> <name> §8- §7Set a nickname for a friend");
154-
player.sendMessage("§e/f list [page/best] §8- §7List your friends");
155-
player.sendMessage("§e/f requests [page] §8- §7View pending friend requests");
156-
player.sendMessage("§e/f toggle §8- §7Toggle accepting friend requests");
157-
player.sendMessage("§e/f notifications §8- §7Toggle join/leave notifications");
158-
player.sendMessage("§9§m-----------------------------------------------------");
147+
player.sendMessage(I18n.string("commands.common.separator"));
148+
player.sendMessage(I18n.string("commands.friend.help_header"));
149+
player.sendMessage(I18n.string("commands.friend.help_add"));
150+
player.sendMessage(I18n.string("commands.friend.help_accept"));
151+
player.sendMessage(I18n.string("commands.friend.help_deny"));
152+
player.sendMessage(I18n.string("commands.friend.help_remove"));
153+
player.sendMessage(I18n.string("commands.friend.help_removeall"));
154+
player.sendMessage(I18n.string("commands.friend.help_best"));
155+
player.sendMessage(I18n.string("commands.friend.help_nickname"));
156+
player.sendMessage(I18n.string("commands.friend.help_list"));
157+
player.sendMessage(I18n.string("commands.friend.help_requests"));
158+
player.sendMessage(I18n.string("commands.friend.help_toggle"));
159+
player.sendMessage(I18n.string("commands.friend.help_notifications"));
160+
player.sendMessage(I18n.string("commands.common.separator"));
159161
}
160162

161163
private int parsePageNumber(String arg) {

type.generic/src/main/java/net/swofty/type/generic/command/commands/MessageCommand.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
import net.swofty.type.generic.data.DataHandler;
1111
import net.swofty.type.generic.data.HypixelDataHandler;
1212
import net.swofty.type.generic.data.HypixelDataHandler;
13+
import net.swofty.type.generic.i18n.I18n;
1314
import net.swofty.type.generic.user.HypixelPlayer;
1415
import net.swofty.type.generic.user.categories.Rank;
1516
import org.jetbrains.annotations.Nullable;
1617

18+
import java.util.Map;
1719
import java.util.UUID;
1820

1921
@CommandParameters(aliases = "msg message whipser",
@@ -36,20 +38,20 @@ public void registerUsage(MinestomCommand command) {
3638

3739
@Nullable UUID targetUUID = HypixelDataHandler.getPotentialUUIDFromName(playerName);
3840
if (targetUUID == null) {
39-
player.sendMessage("§cCan't find a player by the name of '" + playerName + "'");
41+
player.sendMessage(I18n.string("commands.message.player_not_found", Map.of("player", playerName)));
4042
return;
4143
}
4244

4345
ProxyPlayer target = new ProxyPlayer(targetUUID);
4446
if (!target.isOnline().join()) {
45-
player.sendMessage("§cThe player you tried to message, " + playerName + ", is not online.");
47+
player.sendMessage(I18n.string("commands.message.player_not_online", Map.of("player", playerName)));
4648
return;
4749
}
4850
String targetName = HypixelPlayer.getDisplayName(targetUUID);
4951
String ourName = player.getFullDisplayName();
5052

51-
player.sendMessage("§dTo " + targetName + "§7: " + String.join(" ", message));
52-
target.sendMessage("§dFrom " + ourName + "§7: " + String.join(" ", message));
53+
player.sendMessage(I18n.string("commands.message.outgoing", Map.of("target", targetName, "message", String.join(" ", message))));
54+
target.sendMessage(I18n.string("commands.message.incoming", Map.of("sender", ourName, "message", String.join(" ", message))));
5355
}, playerArgument, messageArgument);
5456
}
5557
}

type.generic/src/main/java/net/swofty/type/generic/command/commands/MuteCommand.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@
1414
import net.swofty.proxyapi.ProxyService;
1515
import net.swofty.type.generic.command.CommandParameters;
1616
import net.swofty.type.generic.command.HypixelCommand;
17+
import net.swofty.type.generic.i18n.I18n;
1718
import net.swofty.type.generic.user.HypixelPlayer;
1819
import net.swofty.type.generic.user.categories.Rank;
1920

2021
import java.io.IOException;
2122
import java.util.List;
23+
import java.util.Map;
2224
import java.util.UUID;
2325
import java.util.concurrent.CompletableFuture;
2426
import java.util.concurrent.TimeUnit;
@@ -51,7 +53,7 @@ public void registerUsage(MinestomCommand command) {
5153
try {
5254
type = MuteType.valueOf(context.get(reasonArg));
5355
} catch (IllegalArgumentException e) {
54-
player.sendMessage("§cInvalid mute reason. Use tab-completion to see valid options.");
56+
player.sendMessage(I18n.string("commands.mute.invalid_reason"));
5557
return;
5658
}
5759

@@ -62,7 +64,7 @@ public void registerUsage(MinestomCommand command) {
6264
long expiryTime = System.currentTimeMillis() + actualTime;
6365
mutePlayer(player, targetUuid, type, player.getUuid(), actualTime, expiryTime, playerName);
6466
} catch (IOException e) {
65-
player.sendMessage("§cCould not find player: " + playerName);
67+
player.sendMessage(I18n.string("commands.common.player_not_found_short", Map.of("player", playerName)));
6668
}
6769
});
6870
}, playerArg, durationArg, reasonArg);
@@ -75,7 +77,7 @@ public void registerUsage(MinestomCommand command) {
7577
try {
7678
reason = MuteType.valueOf(context.get(reasonArg));
7779
} catch (IllegalArgumentException e) {
78-
player.sendMessage("§cInvalid mute reason. Use tab-completion to see valid options.");
80+
player.sendMessage(I18n.string("commands.mute.invalid_reason"));
7981
return;
8082
}
8183

@@ -84,7 +86,7 @@ public void registerUsage(MinestomCommand command) {
8486
mutePlayer(player, net.minestom.server.utils.mojang.MojangUtils.getUUID(playerName), reason,
8587
player.getUuid(), 0, -1, playerName);
8688
} catch (IOException e) {
87-
player.sendMessage("§cCould not find player: " + playerName);
89+
player.sendMessage(I18n.string("commands.common.player_not_found_short", Map.of("player", playerName)));
8890
}
8991
});
9092
}, playerArg, reasonArg);
@@ -106,15 +108,15 @@ private void mutePlayer(HypixelPlayer sender, UUID targetUuid, MuteType type, UU
106108
punishmentService.handleRequest(message).thenAccept(result -> {
107109
if (result instanceof PunishPlayerProtocolObject.PunishPlayerResponse response) {
108110
if (response.success()) {
109-
sender.sendMessage("§aSuccessfully muted player §e" + playerName + "§a. §8Punishment ID: §7" + response.punishmentId());
111+
sender.sendMessage(I18n.string("commands.mute.success", Map.of("player", playerName, "id", response.punishmentId())));
110112
} else if (response.errorCode() == PunishPlayerProtocolObject.ErrorCode.ALREADY_PUNISHED) {
111-
sender.sendMessage("§cThis player already has an active mute. Punishment ID: §7" + response.errorMessage());
113+
sender.sendMessage(I18n.string("commands.mute.already_muted", Map.of("id", response.errorMessage())));
112114
} else {
113-
sender.sendMessage("§cFailed to mute player: " + response.errorMessage());
115+
sender.sendMessage(I18n.string("commands.mute.failed", Map.of("error", response.errorMessage())));
114116
}
115117
}
116118
}).orTimeout(5, TimeUnit.SECONDS).exceptionally(_ -> {
117-
sender.sendMessage("§cCould not mute this player at this time. The punishment service may be offline.");
119+
sender.sendMessage(I18n.string("commands.mute.service_offline"));
118120
return null;
119121
});
120122
}

0 commit comments

Comments
 (0)