feat(C-01): i18n SystemMessageManager — 83 translatable keys

Phase 1: Core system message migration to Component.translatable().
- Replace getMessageTemplate() hardcoded strings with getTranslationKey() key derivation
- All send methods now use Component.translatable() with positional args
- Add 83 keys to en_us.json (msg.tiedup.system.*)
- Add sendTranslatable() convenience for external callers with string args
- Migrate 3 external getTemplate() callers (PlayerShockCollar, CellRegistryV2)
- Add resistance_suffix key for sendWithResistance()
This commit is contained in:
NotEvil
2026-04-15 13:24:05 +02:00
parent ac72f6aae7
commit 0662739fe0
4 changed files with 173 additions and 160 deletions

View File

@@ -15,6 +15,8 @@ import com.tiedup.remake.v2.bondage.datadriven.DataDrivenBondageItem;
import java.util.List;
import java.util.UUID;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
@@ -99,12 +101,11 @@ public class PlayerShockCollar {
// HUD Message via SystemMessageManager
if (messageAddon != null) {
// Custom message with addon (e.g., GPS violation)
SystemMessageManager.sendToPlayer(
player,
MessageCategory.SLAVE_SHOCK,
SystemMessageManager.getTemplate(MessageCategory.SLAVE_SHOCK) +
messageAddon
);
MutableComponent msg = Component.translatable(
SystemMessageManager.getTranslationKey(MessageCategory.SLAVE_SHOCK)
).append(Component.literal(messageAddon));
msg.withStyle(style -> style.withColor(ChatFormatting.RED));
player.displayClientMessage(msg, true);
} else {
SystemMessageManager.sendToPlayer(
player,
@@ -239,11 +240,8 @@ public class PlayerShockCollar {
if (!CollarHelper.shouldWarnMasters(stack)) return;
// Format: "ALERT: <player name> is outside the safe zone!"
String alertMessage = String.format(
SystemMessageManager.getTemplate(MessageCategory.GPS_OWNER_ALERT),
player.getName().getString()
);
// Translatable: "ALERT: <player name> is outside the safe zone!"
String playerName = player.getName().getString();
for (UUID ownerId : CollarHelper.getOwners(stack)) {
ServerPlayer owner = player
@@ -253,8 +251,8 @@ public class PlayerShockCollar {
if (owner != null) {
SystemMessageManager.sendChatToPlayer(
owner,
alertMessage,
ChatFormatting.RED
MessageCategory.GPS_OWNER_ALERT,
player
);
}
}