diff --git a/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/ArchaeologyLootRecipe.java b/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/ArchaeologyLootRecipe.java index ea35fc25..f0f4203b 100644 --- a/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/ArchaeologyLootRecipe.java +++ b/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/ArchaeologyLootRecipe.java @@ -62,18 +62,21 @@ public ArchaeologyLootRecipe(ClientArchaeologyLootTable loot) { StringBuilder archName = new StringBuilder(); String[] chestPathTokens = loot.id.getPath().split("[/_]"); for (String str : chestPathTokens) { + if (!archName.isEmpty()) { + archName.append(" "); + } if (str.length() <= 1) { - archName.append(" ").append(str); + archName.append(str); } else { - archName.append(" ").append(str.substring(0, 1).toUpperCase()).append(str.substring(1)); + archName.append(str.substring(0, 1).toUpperCase()).append(str.substring(1)); } } if(EMILootAgnos.isModLoaded(loot.id.getNamespace())) { String modName = EMILootAgnos.getModName(loot.id.getNamespace()); - rawTitle = LText.translatable("emi_loot.archaeology.unknown_archaeology", archName.toString() + modName); + rawTitle = LText.translatable("emi_loot.archaeology.unknown_archaeology", archName.toString() + " " + modName); } else { Text unknown = LText.translatable("emi_loot.archaeology.unknown"); - rawTitle = LText.translatable("emi_loot.archaeology.unknown_archaeology", archName.toString() + unknown.getString()); + rawTitle = LText.translatable("emi_loot.archaeology.unknown_archaeology", archName.toString() + " " + unknown.getString()); } if (EMILoot.config.isLogI18n(EMILoot.Type.ARCHAEOLOGY)) { EMILoot.LOGGER.warn("Untranslated archaeology loot table \"" + loot.id + "\" (key: \"" + key + "\")"); diff --git a/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/ChestLootRecipe.java b/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/ChestLootRecipe.java index 73d271eb..098d7ab8 100644 --- a/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/ChestLootRecipe.java +++ b/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/ChestLootRecipe.java @@ -60,18 +60,22 @@ public ChestLootRecipe(ClientChestLootTable loot) { StringBuilder chestName = new StringBuilder(); String[] chestPathTokens = loot.id.getPath().split("[/_]"); for (String str : chestPathTokens) { + if (LText.tablePrefixes.contains(str)) continue; + if (!chestName.isEmpty()) { + chestName.append(" "); + } if (str.length() <= 1) { - chestName.append(" ").append(str); + chestName.append(str); } else { - chestName.append(" ").append(str.substring(0, 1).toUpperCase()).append(str.substring(1)); + chestName.append(str.substring(0, 1).toUpperCase()).append(str.substring(1)); } } if(EMILootAgnos.isModLoaded(loot.id.getNamespace())) { String modName = EMILootAgnos.getModName(loot.id.getNamespace()); - rawTitle = LText.translatable("emi_loot.chest.unknown_chest", chestName.toString() + modName); + rawTitle = LText.translatable("emi_loot.chest.unknown_chest", chestName.toString() + " " + modName); } else { Text unknown = LText.translatable("emi_loot.chest.unknown"); - rawTitle = LText.translatable("emi_loot.chest.unknown_chest", chestName.toString() + unknown.getString()); + rawTitle = LText.translatable("emi_loot.chest.unknown_chest", chestName.toString() + " " + unknown.getString()); } if (EMILoot.config.isLogI18n(EMILoot.Type.CHEST)) { EMILoot.LOGGER.warn("Untranslated chest loot table \"" + loot.id + "\" (key: \"" + key + "\")"); diff --git a/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/GameplayLootRecipe.java b/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/GameplayLootRecipe.java index 3021d73a..0e3ae2cb 100644 --- a/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/GameplayLootRecipe.java +++ b/xplat/src/main/java/fzzyhmstrs/emi_loot/emi/GameplayLootRecipe.java @@ -53,18 +53,21 @@ public GameplayLootRecipe(ClientGameplayLootTable loot) { StringBuilder gameplayName = new StringBuilder(); String[] chestPathTokens = loot.id.getPath().split("[/_]"); for (String str : chestPathTokens) { + if (!gameplayName.isEmpty()) { + gameplayName.append(" "); + } if (str.length() <= 1) { - gameplayName.append(" ").append(str); + gameplayName.append(str); } else { - gameplayName.append(" ").append(str.substring(0, 1).toUpperCase()).append(str.substring(1)); + gameplayName.append(str.substring(0, 1).toUpperCase()).append(str.substring(1)); } } if(EMILootAgnos.isModLoaded(loot.id.getNamespace())) { String modName = EMILootAgnos.getModName(loot.id.getNamespace()); - rawTitle = LText.translatable("emi_loot.gameplay.unknown_gameplay", gameplayName.toString() + modName); + rawTitle = LText.translatable("emi_loot.gameplay.unknown_gameplay", gameplayName.toString() + " " + modName); } else { Text unknown = LText.translatable("emi_loot.gameplay.unknown"); - rawTitle = LText.translatable("emi_loot.gameplay.unknown_gameplay", gameplayName.toString() + unknown.getString()); + rawTitle = LText.translatable("emi_loot.gameplay.unknown_gameplay", gameplayName.toString() + " " + unknown.getString()); } if (EMILoot.config.isLogI18n(EMILoot.Type.GAMEPLAY)) { EMILoot.LOGGER.warn("Untranslated gameplay loot table \"" + loot.id + "\" (key: \"" + key + "\")"); diff --git a/xplat/src/main/java/fzzyhmstrs/emi_loot/util/LText.java b/xplat/src/main/java/fzzyhmstrs/emi_loot/util/LText.java index ccc25ca7..e4152d34 100644 --- a/xplat/src/main/java/fzzyhmstrs/emi_loot/util/LText.java +++ b/xplat/src/main/java/fzzyhmstrs/emi_loot/util/LText.java @@ -9,9 +9,32 @@ import net.minecraft.text.Text; import net.minecraft.util.Language; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + public class LText { + public static HashSet tablePrefixes = new HashSet<>(List.of( + "spawners", + "spawner", + "shearing", + "pots", + "pot", + "gameplay", + "equipment", + "entities", + "entity", + "dispensers", + "dispenser", + "chests", + "chest", + "blocks", + "block", + "archaeology" + )); + public static MutableText translatable(String key) { return Text.translatable(key); }