From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MeFisto94 Date: Tue, 11 Aug 2020 19:16:09 +0200 Subject: [PATCH] Add a way to get translation keys for blocks, entities and materials diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java @@ -0,0 +0,0 @@ public class EntityType { return Registry.ENTITY_TYPE.getKey(type); } + public static Optional> getByName(String name) { return byString(name); } // Paper - OBFHELPER public static Optional> byString(String id) { return Registry.ENTITY_TYPE.getOptional(ResourceLocation.tryParse(id)); } @@ -0,0 +0,0 @@ public class EntityType { return this.category; } + public String getDescriptionId() { return getDescriptionId(); } // Paper - OBFHELPER public String getDescriptionId() { if (this.descriptionId == null) { this.descriptionId = Util.makeDescriptionId("entity", Registry.ENTITY_TYPE.getKey(this)); diff --git a/src/main/java/net/minecraft/world/item/Item.java b/src/main/java/net/minecraft/world/item/Item.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/item/Item.java +++ b/src/main/java/net/minecraft/world/item/Item.java @@ -0,0 +0,0 @@ public class Item implements ItemLike { private final FoodProperties foodProperties; public static int getId(Item item) { - return item == null ? 0 : Registry.ITEM.getId((Object) item); + return item == null ? 0 : Registry.ITEM.getId(item); // Paper - Fix Decompiler Issue } public static Item byId(int id) { @@ -0,0 +0,0 @@ public class Item implements ItemLike { return Registry.ITEM.getKey(this).getPath(); } + public String getOrCreateDescriptionId() { return getOrCreateDescriptionId(); } // Paper - OBFHELPER protected String getOrCreateDescriptionId() { if (this.descriptionId == null) { this.descriptionId = Util.makeDescriptionId("item", Registry.ITEM.getKey(this)); @@ -0,0 +0,0 @@ public class Item implements ItemLike { return this.getOrCreateDescriptionId(); } + public String getDescriptionId(ItemStack itemStack) { return getDescriptionId(itemStack); } // Paper - OBFHELPER public String getDescriptionId(ItemStack stack) { return this.getDescriptionId(); } diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -0,0 +0,0 @@ public class Block extends BlockBehaviour implements ItemLike { return !this.material.isBuildable() && !this.material.isLiquid(); } + public String getOrCreateDescriptionId() { return getDescriptionId(); } // Paper - OBFHELPER public String getDescriptionId() { if (this.descriptionId == null) { this.descriptionId = Util.makeDescriptionId("block", Registry.BLOCK.getKey(this)); diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -0,0 +0,0 @@ public class CraftBlock implements Block { public com.destroystokyo.paper.block.BlockSoundGroup getSoundGroup() { return new com.destroystokyo.paper.block.CraftBlockSoundGroup(getNMSBlock().defaultBlockState().getSoundType()); } + + @Override + public String getTranslationKey() { + return org.bukkit.Bukkit.getUnsafe().getTranslationKey(this); + } // Paper end } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -0,0 +0,0 @@ import org.bukkit.Registry; import org.bukkit.UnsafeValues; import org.bukkit.advancement.Advancement; import org.bukkit.block.data.BlockData; +import org.bukkit.craftbukkit.block.CraftBlock; import org.bukkit.craftbukkit.block.data.CraftBlockData; import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.craftbukkit.legacy.CraftLegacy; @@ -0,0 +0,0 @@ public final class CraftMagicNumbers implements UnsafeValues { throw new RuntimeException(); } } + + @Override + public String getTranslationKey(Material mat) { + if (mat.isBlock()) { + return getBlock(mat).getOrCreateDescriptionId(); + } + return getItem(mat).getDescriptionId(); + } + + @Override + public String getTranslationKey(org.bukkit.block.Block block) { + return ((org.bukkit.craftbukkit.block.CraftBlock)block).getNMS().getBlock().getOrCreateDescriptionId(); + } + + @Override + public String getTranslationKey(org.bukkit.entity.EntityType type) { + return net.minecraft.world.entity.EntityType.getByName(type.getName()).map(net.minecraft.world.entity.EntityType::getDescriptionId).orElse(null); + } + + @Override + public String getTranslationKey(org.bukkit.inventory.ItemStack itemStack) { + net.minecraft.world.item.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(itemStack); + return nmsItemStack.getItem().getDescriptionId(nmsItemStack); + } // Paper end /**