mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-02 17:32:03 +01:00
68e86d7297
Updated Upstream (Bukkit/CraftBukkit) Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: f02baa38 PR-988: Add World#getIntersectingChunks(BoundingBox) 9321d665 Move getItemInUse up to LivingEntity 819eef73 PR-959: Add access to current item's remaining ticks c4fdadb0 SPIGOT-7601: Add AbstractArrow#getItem be8261ca Add support for Java 22 26119676 PR-979: Add more translation keys 66753362 PR-985: Correct book maximum pages and characters per page documentation c8be92fa PR-980: Improve getArmorContents() documentation f1120ee2 PR-983: Expose riptide velocity to PlayerRiptideEvent CraftBukkit Changes: dfaa89bbe PR-1369: Add World#getIntersectingChunks(BoundingBox) 51bbab2b9 Move getItemInUse up to LivingEntity 668e09602 PR-1331: Add access to current item's remaining ticks a639406d1 SPIGOT-7601: Add AbstractArrow#getItem 0398930fc SPIGOT-7602: Allow opening in-world horse and related inventories ffd15611c SPIGOT-7608: Allow empty lists to morph to any PDT list 2188dcfa9 Add support for Java 22 45d6a609f SPIGOT-7604: Revert "SPIGOT-7365: DamageCause blocked by shield should trigger invulnerableTime" 06d915943 SPIGOT-7365: DamageCause blocked by shield should trigger invulnerableTime ca3bc3707 PR-1361: Add more translation keys 366c3ca80 SPIGOT-7600: EntityChangeBlockEvent is not fired for frog eggs 06d0f9ba8 SPIGOT-7593: Fix sapling growth physics / client-side updates 45c2608e4 PR-1366: Expose riptide velocity to PlayerRiptideEvent 29b6bb79b SPIGOT-7587: Remove fixes for now-resolved MC-142590 and MC-109346
519 lines
20 KiB
Diff
519 lines
20 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Tue, 11 Aug 2020 19:17:46 +0200
|
|
Subject: [PATCH] Add methods to get translation keys
|
|
|
|
Co-authored-by: MeFisto94 <MeFisto94@users.noreply.github.com>
|
|
|
|
diff --git a/src/main/java/org/bukkit/Difficulty.java b/src/main/java/org/bukkit/Difficulty.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/Difficulty.java
|
|
+++ b/src/main/java/org/bukkit/Difficulty.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
/**
|
|
* Represents the various difficulty levels that are available.
|
|
*/
|
|
-public enum Difficulty {
|
|
+public enum Difficulty implements net.kyori.adventure.translation.Translatable { // Paper - Adventure translations
|
|
/**
|
|
* Players regain health over time, hostile mobs don't spawn, the hunger
|
|
* bar does not deplete.
|
|
@@ -0,0 +0,0 @@ public enum Difficulty {
|
|
return value;
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public @org.jetbrains.annotations.NotNull String translationKey() {
|
|
+ return "options.difficulty." + this.name().toLowerCase(java.util.Locale.ENGLISH);
|
|
+ }
|
|
+ // Paper end
|
|
/**
|
|
* Gets the Difficulty represented by the specified value
|
|
*
|
|
diff --git a/src/main/java/org/bukkit/FireworkEffect.java b/src/main/java/org/bukkit/FireworkEffect.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/FireworkEffect.java
|
|
+++ b/src/main/java/org/bukkit/FireworkEffect.java
|
|
@@ -0,0 +0,0 @@ public final class FireworkEffect implements ConfigurationSerializable {
|
|
/**
|
|
* The type or shape of the effect.
|
|
*/
|
|
- public enum Type {
|
|
+ public enum Type implements net.kyori.adventure.translation.Translatable { // Paper - Adventure translations
|
|
/**
|
|
* A small ball effect.
|
|
*/
|
|
- BALL,
|
|
+ BALL("small_ball"), // Paper - add name
|
|
/**
|
|
* A large ball effect.
|
|
*/
|
|
- BALL_LARGE,
|
|
+ BALL_LARGE("large_ball"), // Paper - add name
|
|
/**
|
|
* A star-shaped effect.
|
|
*/
|
|
- STAR,
|
|
+ STAR("star"), // Paper - add name
|
|
/**
|
|
* A burst effect.
|
|
*/
|
|
- BURST,
|
|
+ BURST("burst"), // Paper - add name
|
|
/**
|
|
* A creeper-face effect.
|
|
*/
|
|
- CREEPER,
|
|
+ CREEPER("creeper"), // Paper - add name
|
|
;
|
|
+ // Paper start
|
|
+ /**
|
|
+ * The name map.
|
|
+ */
|
|
+ public static final net.kyori.adventure.util.Index<String, org.bukkit.FireworkEffect.Type> NAMES = net.kyori.adventure.util.Index.create(Type.class, type -> type.name);
|
|
+ private final String name;
|
|
+
|
|
+ Type(final String name) {
|
|
+ this.name = name;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ return "item.minecraft.firework_star.shape." + this.name;
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/GameMode.java b/src/main/java/org/bukkit/GameMode.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/GameMode.java
|
|
+++ b/src/main/java/org/bukkit/GameMode.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
* Represents the various type of game modes that {@link HumanEntity}s may
|
|
* have
|
|
*/
|
|
-public enum GameMode {
|
|
+public enum GameMode implements net.kyori.adventure.translation.Translatable { // Paper - implement Translatable
|
|
/**
|
|
* Creative mode may fly, build instantly, become invulnerable and create
|
|
* free items.
|
|
@@ -0,0 +0,0 @@ public enum GameMode {
|
|
|
|
private final int value;
|
|
private static final Map<Integer, GameMode> BY_ID = Maps.newHashMap();
|
|
+ // Paper start - translation keys
|
|
+ private final String translationKey;
|
|
+
|
|
+ @Override
|
|
+ public @org.jetbrains.annotations.NotNull String translationKey() {
|
|
+ return this.translationKey;
|
|
+ }
|
|
+ // Paper end
|
|
|
|
private GameMode(final int value) {
|
|
this.value = value;
|
|
+ this.translationKey = "gameMode." + this.name().toLowerCase(java.util.Locale.ENGLISH); // Paper
|
|
}
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/GameRule.java b/src/main/java/org/bukkit/GameRule.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/GameRule.java
|
|
+++ b/src/main/java/org/bukkit/GameRule.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
*
|
|
* @param <T> type of rule (Boolean or Integer)
|
|
*/
|
|
-public final class GameRule<T> {
|
|
+public final class GameRule<T> implements net.kyori.adventure.translation.Translatable { // Paper - Adventure translations
|
|
|
|
private static Map<String, GameRule<?>> gameRules = new HashMap<>();
|
|
// Boolean rules
|
|
@@ -0,0 +0,0 @@ public final class GameRule<T> {
|
|
public static GameRule<?>[] values() {
|
|
return gameRules.values().toArray(new GameRule<?>[gameRules.size()]);
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ return "gamerule." + this.name;
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/Material.java
|
|
+++ b/src/main/java/org/bukkit/Material.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
* An enum of all material IDs accepted by the official server and client
|
|
*/
|
|
@SuppressWarnings({"DeprecatedIsStillUsed", "deprecation"}) // Paper
|
|
-public enum Material implements Keyed, Translatable {
|
|
+public enum Material implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper
|
|
//<editor-fold desc="Materials" defaultstate="collapsed">
|
|
AIR(9648, 0),
|
|
STONE(22948),
|
|
@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable {
|
|
}
|
|
return false;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ if (this.isItem()) {
|
|
+ return Bukkit.getUnsafe().getItemTranslationKey(this);
|
|
+ } else {
|
|
+ return Bukkit.getUnsafe().getBlockTranslationKey(this);
|
|
+ }
|
|
+ }
|
|
// Paper end
|
|
|
|
/**
|
|
@@ -0,0 +0,0 @@ public enum Material implements Keyed, Translatable {
|
|
* material
|
|
* @see #getBlockTranslationKey()
|
|
* @see #getItemTranslationKey()
|
|
+ * @deprecated use {@link #translationKey()}
|
|
*/
|
|
@Override
|
|
@NotNull
|
|
+ @Deprecated(forRemoval = true) // Paper
|
|
public String getTranslationKey() {
|
|
if (this.isItem()) {
|
|
return Bukkit.getUnsafe().getItemTranslationKey(this);
|
|
diff --git a/src/main/java/org/bukkit/MusicInstrument.java b/src/main/java/org/bukkit/MusicInstrument.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/MusicInstrument.java
|
|
+++ b/src/main/java/org/bukkit/MusicInstrument.java
|
|
@@ -0,0 +0,0 @@ import java.util.Collections;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
-public abstract class MusicInstrument implements Keyed {
|
|
+public abstract class MusicInstrument implements Keyed, net.kyori.adventure.translation.Translatable { // Paper - translation keys
|
|
|
|
public static final MusicInstrument PONDER = getInstrument("ponder_goat_horn");
|
|
public static final MusicInstrument SING = getInstrument("sing_goat_horn");
|
|
@@ -0,0 +0,0 @@ public abstract class MusicInstrument implements Keyed {
|
|
|
|
return instrument;
|
|
}
|
|
+
|
|
+ // Paper start - translation key
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ return "instrument.minecraft." + this.getKey().value();
|
|
+ }
|
|
+ // Paper end - translation key
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/Translatable.java b/src/main/java/org/bukkit/Translatable.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/Translatable.java
|
|
+++ b/src/main/java/org/bukkit/Translatable.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
/**
|
|
* Represents an object with a text representation that can be translated by the
|
|
* Minecraft client.
|
|
+ * @deprecated use {@link net.kyori.adventure.translation.Translatable}
|
|
*/
|
|
+@Deprecated(forRemoval = true) // Paper
|
|
public interface Translatable {
|
|
|
|
/**
|
|
* Get the translation key, suitable for use in a translation component.
|
|
*
|
|
* @return the translation key
|
|
+ * @deprecated look for a {@code translationKey()} method instead
|
|
*/
|
|
@NotNull
|
|
+ @Deprecated(forRemoval = true) // Paper
|
|
String getTranslationKey();
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/attribute/Attribute.java b/src/main/java/org/bukkit/attribute/Attribute.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/attribute/Attribute.java
|
|
+++ b/src/main/java/org/bukkit/attribute/Attribute.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
/**
|
|
* Types of attributes which may be present on an {@link Attributable}.
|
|
*/
|
|
-public enum Attribute implements Keyed, Translatable {
|
|
+public enum Attribute implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations
|
|
|
|
/**
|
|
* Maximum health of an Entity.
|
|
@@ -0,0 +0,0 @@ public enum Attribute implements Keyed, Translatable {
|
|
public String getTranslationKey() {
|
|
return Bukkit.getUnsafe().getTranslationKey(this);
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @SuppressWarnings("deprecation")
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ return Bukkit.getUnsafe().getTranslationKey(this);
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/block/Biome.java b/src/main/java/org/bukkit/block/Biome.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/block/Biome.java
|
|
+++ b/src/main/java/org/bukkit/block/Biome.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
|
|
/**
|
|
* Holds all accepted Biomes in the default server
|
|
*/
|
|
-public enum Biome implements Keyed {
|
|
+public enum Biome implements Keyed, net.kyori.adventure.translation.Translatable { // Paper
|
|
OCEAN,
|
|
PLAINS,
|
|
DESERT,
|
|
@@ -0,0 +0,0 @@ public enum Biome implements Keyed {
|
|
public NamespacedKey getKey() {
|
|
return key;
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ return "biome.minecraft." + this.key.getKey();
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/block/Block.java
|
|
+++ b/src/main/java/org/bukkit/block/Block.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
* (i.e. lighting and power) may not be able to be safely accessed during world
|
|
* generation when used in cases like BlockPhysicsEvent!!!!
|
|
*/
|
|
-public interface Block extends Metadatable, Translatable {
|
|
+public interface Block extends Metadatable, Translatable, net.kyori.adventure.translation.Translatable { // Paper - translatable
|
|
|
|
/**
|
|
* Gets the metadata for this block
|
|
@@ -0,0 +0,0 @@ public interface Block extends Metadatable, Translatable {
|
|
* @return the sound group for this block
|
|
*/
|
|
@NotNull org.bukkit.SoundGroup getBlockSoundGroup();
|
|
+
|
|
+ /**
|
|
+ * @deprecated use {@link #translationKey()}
|
|
+ */
|
|
+ @NotNull
|
|
+ @Deprecated(forRemoval = true)
|
|
+ String getTranslationKey();
|
|
// Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
|
|
+++ b/src/main/java/org/bukkit/enchantments/Enchantment.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
/**
|
|
* The various type of enchantments that may be added to armour or weapons
|
|
*/
|
|
-public abstract class Enchantment implements Keyed, Translatable {
|
|
+public abstract class Enchantment implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations
|
|
/**
|
|
* Provides protection against environmental damage
|
|
*/
|
|
diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
|
|
+++ b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
|
|
@@ -0,0 +0,0 @@ public abstract class EnchantmentWrapper extends Enchantment {
|
|
public net.kyori.adventure.text.Component displayName(int level) {
|
|
return getEnchantment().displayName(level);
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ return getEnchantment().translationKey();
|
|
+ }
|
|
// Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/entity/EntityType.java b/src/main/java/org/bukkit/entity/EntityType.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/EntityType.java
|
|
+++ b/src/main/java/org/bukkit/entity/EntityType.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Contract;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
-public enum EntityType implements Keyed, Translatable {
|
|
+public enum EntityType implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - translatable
|
|
|
|
// These strings MUST match the strings in nms.EntityTypes and are case sensitive.
|
|
/**
|
|
@@ -0,0 +0,0 @@ public enum EntityType implements Keyed, Translatable {
|
|
|
|
@Override
|
|
@NotNull
|
|
+ @Deprecated(forRemoval = true) // Paper
|
|
public String getTranslationKey() {
|
|
return Bukkit.getUnsafe().getTranslationKey(this);
|
|
}
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * @throws IllegalArgumentException if the entity does not have a translation key (is probably a custom entity)
|
|
+ */
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ Preconditions.checkArgument(this != UNKNOWN, "UNKNOWN entities do not have translation keys");
|
|
+ return org.bukkit.Bukkit.getUnsafe().getTranslationKey(this);
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Gets if this EntityType is enabled by feature in a world.
|
|
*
|
|
diff --git a/src/main/java/org/bukkit/entity/Villager.java b/src/main/java/org/bukkit/entity/Villager.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/entity/Villager.java
|
|
+++ b/src/main/java/org/bukkit/entity/Villager.java
|
|
@@ -0,0 +0,0 @@ public interface Villager extends AbstractVillager {
|
|
* Represents the various different Villager professions there may be.
|
|
* Villagers have different trading options depending on their profession,
|
|
*/
|
|
- public enum Profession implements Keyed {
|
|
+ public enum Profession implements Keyed, net.kyori.adventure.translation.Translatable { // Paper
|
|
NONE,
|
|
/**
|
|
* Armorer profession. Wears a black apron. Armorers primarily trade for
|
|
@@ -0,0 +0,0 @@ public interface Villager extends AbstractVillager {
|
|
public NamespacedKey getKey() {
|
|
return key;
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ return "entity.minecraft.villager." + this.key.getKey();
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
|
|
// 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/inventory/CreativeCategory.java
|
|
+++ b/src/main/java/org/bukkit/inventory/CreativeCategory.java
|
|
@@ -0,0 +0,0 @@ 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 end
|
|
+
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
* use this class to encapsulate Materials for which {@link Material#isItem()}
|
|
* returns false.</b>
|
|
*/
|
|
-public class ItemStack implements Cloneable, ConfigurationSerializable, Translatable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem> { // Paper
|
|
+public class ItemStack implements Cloneable, ConfigurationSerializable, Translatable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem>, net.kyori.adventure.translation.Translatable { // Paper
|
|
private Material type = Material.AIR;
|
|
private int amount = 0;
|
|
private MaterialData data = null;
|
|
@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
|
|
|
@Override
|
|
@NotNull
|
|
+ @Deprecated(forRemoval = true) // Paper
|
|
public String getTranslationKey() {
|
|
return Bukkit.getUnsafe().getTranslationKey(this);
|
|
}
|
|
@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
|
ItemMeta itemMeta = getItemMeta();
|
|
return itemMeta != null && itemMeta.hasItemFlag(flag);
|
|
}
|
|
+
|
|
+ /**
|
|
+ * {@inheritDoc}
|
|
+ * <p>
|
|
+ * This is not the same as getting the translation key
|
|
+ * for the material of this itemstack.
|
|
+ */
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ return Bukkit.getUnsafe().getTranslationKey(this);
|
|
+ }
|
|
// Paper end
|
|
}
|