aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2022-06-01 17:07:10 -0700
committerGitHub <[email protected]>2022-06-01 17:07:10 -0700
commit00c6ae8419560bec77216f4db7bd710a16a8239e (patch)
tree788d6471f9243712f7760b1f82f802e0132bdd00
parent04e1b070ef27c6f575e780635b834d2f6f4b15c7 (diff)
downloadPaper-00c6ae8419560bec77216f4db7bd710a16a8239e.tar.gz
Paper-00c6ae8419560bec77216f4db7bd710a16a8239e.zip
Implement Translatable on CreativeCategory (#7587)
-rw-r--r--patches/api/0220-Add-methods-to-get-translation-keys.patch79
-rw-r--r--patches/server/0495-Add-methods-to-get-translation-keys.patch38
2 files changed, 110 insertions, 7 deletions
diff --git a/patches/api/0220-Add-methods-to-get-translation-keys.patch b/patches/api/0220-Add-methods-to-get-translation-keys.patch
index 763a002603..deb0d87a7d 100644
--- a/patches/api/0220-Add-methods-to-get-translation-keys.patch
+++ b/patches/api/0220-Add-methods-to-get-translation-keys.patch
@@ -336,6 +336,85 @@ index c799ac46dbe257d470d3b236cf55b41240f5fda8..d61855b83da0776fe910dee8cde184c7
}
// Paper start - Add villager reputation API
+diff --git a/src/main/java/org/bukkit/inventory/CreativeCategory.java b/src/main/java/org/bukkit/inventory/CreativeCategory.java
+index 5bd252c0ae3b09fe141d131360c67bb9bfbf5422..0ac1f47d1bea37630d1bb011e52eff90d7a31b41 100644
+--- a/src/main/java/org/bukkit/inventory/CreativeCategory.java
++++ b/src/main/java/org/bukkit/inventory/CreativeCategory.java
+@@ -3,51 +3,64 @@ package org.bukkit.inventory;
+ /**
+ * Represents a category in the creative inventory.
+ */
+-public enum CreativeCategory {
++public enum CreativeCategory implements net.kyori.adventure.translation.Translatable { // Paper
+
+ /**
+ * An assortment of building blocks including dirt, bricks, planks, ores
+ * slabs, etc.
+ */
+- BUILDING_BLOCKS,
++ BUILDING_BLOCKS("buildingBlocks"), // Paper
+ /**
+ * Blocks and items typically used for decorative purposes including
+ * candles, saplings, flora, fauna, fences, walls, carpets, etc.
+ */
+- DECORATIONS,
++ DECORATIONS("decorations"), // Paper
+ /**
+ * Blocks used and associated with redstone contraptions including buttons,
+ * levers, pressure plates, redstone components, pistons, etc.
+ */
+- REDSTONE,
++ REDSTONE("redstone"), // Paper
+ /**
+ * Items pertaining to transportation including minecarts, rails, boats,
+ * elytra, etc.
+ */
+- TRANSPORTATION,
++ TRANSPORTATION("transportation"), // Paper
+ /**
+ * Miscellaneous items and blocks that do not fit into other categories
+ * including gems, dyes, spawn eggs, discs, banner patterns, etc.
+ */
+- MISC,
++ MISC("misc"), // Paper
+ /**
+ * Food items consumable by the player including meats, berries, edible
+ * drops from creatures, etc.
+ */
+- FOOD,
++ FOOD("food"), // Paper
+ /**
+ * Equipment items meant for general utility including pickaxes, axes, hoes,
+ * flint and steel, and useful enchantment books for said tools.
+ */
+- TOOLS,
++ TOOLS("tools"), // Paper
+ /**
+ * Equipment items meant for combat including armor, swords, bows, tipped
+ * arrows, and useful enchantment books for said equipment.
+ */
+- COMBAT,
++ COMBAT("combat"), // Paper
+ /**
+ * All items related to brewing and potions including all types of potions,
+ * their variants, and ingredients to brew them.
+ */
+- BREWING;
++ BREWING("brewing"); // Paper
++ // Paper start
++ private final String translationKey;
++
++ CreativeCategory(String translationKey) {
++ this.translationKey = "itemGroup." + translationKey;
++ }
++
++ @Override
++ public @org.jetbrains.annotations.NotNull String translationKey() {
++ return this.translationKey;
++ }
++ // Paper start
++
+ }
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index f0ba7ba369aad67f6af0f946dc52b3e1c8958b15..d13cedfab28a4de469bbc3f6b141922979628333 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
diff --git a/patches/server/0495-Add-methods-to-get-translation-keys.patch b/patches/server/0495-Add-methods-to-get-translation-keys.patch
index 3b81ec19c1..8463983f53 100644
--- a/patches/server/0495-Add-methods-to-get-translation-keys.patch
+++ b/patches/server/0495-Add-methods-to-get-translation-keys.patch
@@ -77,19 +77,32 @@ index 3b4764986302194882e009fe20a9d6406cf2be8e..008c15164a7affb785964f604f8fea93
/**
diff --git a/src/test/java/io/papermc/paper/world/TranslationKeyTest.java b/src/test/java/io/papermc/paper/world/TranslationKeyTest.java
-index 6cd015dc5a2e012ac827c2b2d9aa5542b0591afb..b2e73df86683b88c83349b6d13456f5b051ac5d5 100644
+index 6cd015dc5a2e012ac827c2b2d9aa5542b0591afb..a5a4026a09b45d7af70a56ce65b8382ac4b22efc 100644
--- a/src/test/java/io/papermc/paper/world/TranslationKeyTest.java
+++ b/src/test/java/io/papermc/paper/world/TranslationKeyTest.java
-@@ -7,7 +7,7 @@ import org.bukkit.Difficulty;
+@@ -3,11 +3,20 @@ package io.papermc.paper.world;
+ import com.destroystokyo.paper.ClientOption;
+ import net.minecraft.network.chat.TranslatableComponent;
+ import net.minecraft.world.entity.player.ChatVisiblity;
++import net.minecraft.world.item.CreativeModeTab;
+ import org.bukkit.Difficulty;
++import org.bukkit.FireworkEffect;
++import org.bukkit.GameRule;
++import org.bukkit.attribute.Attribute;
++import org.bukkit.craftbukkit.inventory.CraftCreativeCategory;
++import org.bukkit.inventory.CreativeCategory;
++import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
-public class TranslationKeyTest {
-+public class TranslationKeyTest extends org.bukkit.support.AbstractTestingBase {
++import java.util.Objects;
++
++public class TranslationKeyTest extends AbstractTestingBase {
@Test
public void testChatVisibilityKeys() {
-@@ -16,4 +16,32 @@ public class TranslationKeyTest {
+@@ -16,4 +25,43 @@ public class TranslationKeyTest {
Assert.assertEquals(chatVisibility + "'s translation key doesn't match", ChatVisiblity.valueOf(chatVisibility.name()).getKey(), chatVisibility.translationKey());
}
}
@@ -103,22 +116,33 @@ index 6cd015dc5a2e012ac827c2b2d9aa5542b0591afb..b2e73df86683b88c83349b6d13456f5b
+
+ @Test
+ public void testGameruleKeys() {
-+ for (org.bukkit.GameRule<?> rule : org.bukkit.GameRule.values()) {
++ for (GameRule<?> rule : GameRule.values()) {
+ Assert.assertEquals(rule.getName() + "'s translation doesn't match", org.bukkit.craftbukkit.CraftWorld.getGameRulesNMS().get(rule.getName()).getDescriptionId(), rule.translationKey());
+ }
+ }
+
+ @Test
+ public void testAttributeKeys() {
-+ for (org.bukkit.attribute.Attribute attribute : org.bukkit.attribute.Attribute.values()) {
++ for (Attribute attribute : Attribute.values()) {
+ Assert.assertEquals("translation key mismatch for " + attribute, org.bukkit.craftbukkit.attribute.CraftAttributeMap.toMinecraft(attribute).getDescriptionId(), attribute.translationKey());
+ }
+ }
+
+ @Test
+ public void testFireworkEffectType() {
-+ for (org.bukkit.FireworkEffect.Type type : org.bukkit.FireworkEffect.Type.values()) {
++ for (FireworkEffect.Type type : FireworkEffect.Type.values()) {
+ Assert.assertEquals("translation key mismatch for " + type, net.minecraft.world.item.FireworkRocketItem.Shape.byId(org.bukkit.craftbukkit.inventory.CraftMetaFirework.getNBT(type)).getName(), org.bukkit.FireworkEffect.Type.NAMES.key(type));
+ }
+ }
++
++ @Test
++ public void testCreativeCategory() {
++ for (CreativeModeTab tab : CreativeModeTab.TABS) {
++ if (tab == CreativeModeTab.TAB_SEARCH || tab == CreativeModeTab.TAB_HOTBAR || tab == CreativeModeTab.TAB_INVENTORY) { // not implemented in the api
++ continue;
++ }
++ CreativeCategory category = Objects.requireNonNull(CraftCreativeCategory.fromNMS(tab));
++ Assert.assertEquals("translation key mismatch for " + category, ((TranslatableComponent) tab.getDisplayName()).getKey(), category.translationKey());
++ }
++ }
}