Expose server build information (#10729)
* Expose server build information * squash patches * final tweaks --------- Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com> Co-authored-by: masmc05 <masmc05@gmail.com>
This commit is contained in:
parent
3fc93581bb
commit
f17519338b
1360 changed files with 1817 additions and 1446 deletions
519
patches/api/0207-Add-methods-to-get-translation-keys.patch
Normal file
519
patches/api/0207-Add-methods-to-get-translation-keys.patch
Normal file
|
@ -0,0 +1,519 @@
|
|||
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 f35801783538d3377b04131b8bf6effd7eb8e1a5..427ce8cfd6f63e5c7ec7b264b15ab4111b947729 100644
|
||||
--- a/src/main/java/org/bukkit/Difficulty.java
|
||||
+++ b/src/main/java/org/bukkit/Difficulty.java
|
||||
@@ -7,7 +7,7 @@ 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.
|
||||
@@ -51,6 +51,12 @@ 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 bf7db5b3e7c2ac15016a48e520fba674726718ee..637fa73d4366c2d88e2716e5c8d3465706d788a7 100644
|
||||
--- a/src/main/java/org/bukkit/FireworkEffect.java
|
||||
+++ b/src/main/java/org/bukkit/FireworkEffect.java
|
||||
@@ -18,28 +18,44 @@ 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 81e45984a88fc84acd0f76d825abf4ddaed0ac3b..fdc42a79c5af30fdade41ee99245e6641f353571 100644
|
||||
--- a/src/main/java/org/bukkit/GameMode.java
|
||||
+++ b/src/main/java/org/bukkit/GameMode.java
|
||||
@@ -9,7 +9,7 @@ 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.
|
||||
@@ -35,9 +35,18 @@ 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 dc66bd69646ac949d1386ce8f6ff913e9475439d..4482e8f2c617c2f51b2b53762e775d118002363a 100644
|
||||
--- a/src/main/java/org/bukkit/GameRule.java
|
||||
+++ b/src/main/java/org/bukkit/GameRule.java
|
||||
@@ -15,7 +15,7 @@ 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
|
||||
@@ -355,4 +355,11 @@ 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 feebabf946913263461e1d0f13a478cf4bfd0f68..d6e2ec415eab4f55fd925a3b0982e869befbd088 100644
|
||||
--- a/src/main/java/org/bukkit/Material.java
|
||||
+++ b/src/main/java/org/bukkit/Material.java
|
||||
@@ -129,7 +129,7 @@ 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),
|
||||
@@ -4743,6 +4743,15 @@ 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
|
||||
|
||||
/**
|
||||
@@ -5494,9 +5503,11 @@ 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 asItemType().getTranslationKey();
|
||||
diff --git a/src/main/java/org/bukkit/MusicInstrument.java b/src/main/java/org/bukkit/MusicInstrument.java
|
||||
index eae90e72b1dff5ab3b1a4fdcfe57187e85fe4d49..62d2b3f950860dee0898d77b0a29635c3f9a7e23 100644
|
||||
--- a/src/main/java/org/bukkit/MusicInstrument.java
|
||||
+++ b/src/main/java/org/bukkit/MusicInstrument.java
|
||||
@@ -7,7 +7,7 @@ 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_GOAT_HORN = getInstrument("ponder_goat_horn");
|
||||
public static final MusicInstrument SING_GOAT_HORN = getInstrument("sing_goat_horn");
|
||||
@@ -52,4 +52,11 @@ 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 e3faa2c675c85a9cbdbbb1debec0ff81c58a1bbd..fd1629c2d2028a88fb3d56b0aeb833d17235080a 100644
|
||||
--- a/src/main/java/org/bukkit/Translatable.java
|
||||
+++ b/src/main/java/org/bukkit/Translatable.java
|
||||
@@ -5,14 +5,18 @@ 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 3a7f6fd862dc2dd72366089ce99a0e96d07c0fdc..063cb21e33d039933e9ef295564db595cfd9f8c9 100644
|
||||
--- a/src/main/java/org/bukkit/attribute/Attribute.java
|
||||
+++ b/src/main/java/org/bukkit/attribute/Attribute.java
|
||||
@@ -9,7 +9,7 @@ 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.
|
||||
@@ -117,4 +117,12 @@ 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 d3087d60378822cdd7cea25fd63d3f496e3cd2fb..5d8fa5b39a5d50cca48ba63af3a84b80f279b649 100644
|
||||
--- a/src/main/java/org/bukkit/block/Biome.java
|
||||
+++ b/src/main/java/org/bukkit/block/Biome.java
|
||||
@@ -8,7 +8,7 @@ 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,
|
||||
@@ -89,4 +89,11 @@ 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 bf29d9b733afc7c62725d259f4920c4f211cc6d0..1d3812db989a55b6f31bb30dffe70323eb592a15 100644
|
||||
--- a/src/main/java/org/bukkit/block/Block.java
|
||||
+++ b/src/main/java/org/bukkit/block/Block.java
|
||||
@@ -32,7 +32,7 @@ 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
|
||||
@@ -682,5 +682,12 @@ 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 f4ec7891bdcedc73bff6938e3eddb7ee43d23ec1..4e41980dfbb256356231bc9565f6a90ea66aab76 100644
|
||||
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
|
||||
+++ b/src/main/java/org/bukkit/enchantments/Enchantment.java
|
||||
@@ -16,7 +16,7 @@ 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 c4f86ba1037f3f0e5d697a0962d71d6f8c7c1fbe..ac0371285370594d4de1554871b19bbcd2311730 100644
|
||||
--- a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
|
||||
+++ b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
|
||||
@@ -26,5 +26,10 @@ 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 dd410ff2cad3dc34ef9d2a37d72417c7b213de63..b7a454ca11d484209d08d0003d4c19a431456687 100644
|
||||
--- a/src/main/java/org/bukkit/entity/EntityType.java
|
||||
+++ b/src/main/java/org/bukkit/entity/EntityType.java
|
||||
@@ -25,7 +25,7 @@ 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.
|
||||
/**
|
||||
@@ -439,10 +439,22 @@ 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 d841d94d46462e0ceb7c6b04cc8fc36792bd9201..8c8176121cafed0ed09239b6a7b392dc846438e2 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Villager.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Villager.java
|
||||
@@ -160,7 +160,7 @@ 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
|
||||
@@ -243,6 +243,13 @@ 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 5bd252c0ae3b09fe141d131360c67bb9bfbf5422..78587d9fabe6371a23a7963917b054dbe7603694 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 end
|
||||
+
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
index 066f99a1f4cc42cf0e87d495f97a0685817dfa18..23686519b8c1338dd6e9f1c5a0e73467c0b59a4f 100644
|
||||
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
@@ -27,7 +27,7 @@ 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;
|
||||
@@ -626,6 +626,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
+ @Deprecated(forRemoval = true) // Paper
|
||||
public String getTranslationKey() {
|
||||
return Bukkit.getUnsafe().getTranslationKey(this);
|
||||
}
|
||||
@@ -885,5 +886,16 @@ 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
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue