mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-01 17:01:56 +01:00
29b207245f
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: 97c59261 PR-1073: Make Biome an interface a38581aa Fix further javadoc errors 8271c490 Fix javadoc error 8a9ecf29 PR-1072: Fix bad naming for Vault State methods 6dd58108 PR-1071: Make Fluid an interface and add missing entry ed2cdfc3 PR-1070: Make Attribute an interface and align names with the new minecraft ones 63472efb PR-1069: Add missing winter drop experimental annotation to pale boats CraftBukkit Changes: 7235ad7b0 PR-1501: Make Biome an interface 602904003 PR-1500: Rename implementation for Vault State methods 75f26f79f PR-1499: Make Fluid an interface and add missing entry 4cfd87adc PR-1498: Make Attribute an interface and align names with the new minecraft ones 6bb0db5cb SPIGOT-7928: ExactChoice acts as MaterialChoice 3eaf3a13c SPIGOT-7929: Error when setting EquippableComponent abbf57bac SPIGOT-7930: Fix spawning entities with SummonEntityEffect 92d6ab6cf PR-1497: Move boat field rename entries to below key renaming, so that keys are also renamed abfe292aa PR-1496: Use correct Fluid class on Tags type check c7aab7fa7 SPIGOT-7923: Fix Dispenser logic to avoid firing empty projectiles
579 lines
24 KiB
Diff
579 lines
24 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 {
|
|
}
|
|
// Paper end
|
|
|
|
+ // Paper start - add Translatable
|
|
+ @Override
|
|
+ public @NotNull String translationKey() {
|
|
+ if (this.isItem()) {
|
|
+ return java.util.Objects.requireNonNull(this.asItemType()).translationKey();
|
|
+ } else {
|
|
+ return java.util.Objects.requireNonNull(this.asBlockType()).translationKey();
|
|
+ }
|
|
+ }
|
|
+ // Paper end - add Translatable
|
|
+
|
|
/**
|
|
* Do not use for any reason.
|
|
*
|
|
@@ -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 asItemType().getTranslationKey();
|
|
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_GOAT_HORN = getInstrument("ponder_goat_horn");
|
|
public static final MusicInstrument SING_GOAT_HORN = getInstrument("sing_goat_horn");
|
|
@@ -0,0 +0,0 @@ public abstract class MusicInstrument implements Keyed {
|
|
private static MusicInstrument getInstrument(@NotNull String key) {
|
|
return Registry.INSTRUMENT.getOrThrow(NamespacedKey.minecraft(key));
|
|
}
|
|
+
|
|
+ // 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 interface Attribute extends OldEnum<Attribute>, Keyed, Translatable {
|
|
+public interface Attribute extends OldEnum<Attribute>, Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations
|
|
|
|
/**
|
|
* Maximum health of an Entity.
|
|
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;
|
|
* There may be additional biomes present in the server, for example from a {@link DataPack}
|
|
* which can be accessed via {@link Registry#BIOME}.
|
|
*/
|
|
-public interface Biome extends OldEnum<Biome>, Keyed {
|
|
+public interface Biome extends OldEnum<Biome>, Keyed, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations
|
|
|
|
Biome OCEAN = getBiome("ocean");
|
|
Biome PLAINS = getBiome("plains");
|
|
@@ -0,0 +0,0 @@ public interface Biome extends OldEnum<Biome>, Keyed {
|
|
static Biome[] values() {
|
|
return Lists.newArrayList(Registry.BIOME).toArray(new Biome[0]);
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ default @NotNull String translationKey() {
|
|
+ return "biome.minecraft." + this.getKey().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/block/BlockType.java b/src/main/java/org/bukkit/block/BlockType.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/block/BlockType.java
|
|
+++ b/src/main/java/org/bukkit/block/BlockType.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
* changes may occur. Do not use this API in plugins.
|
|
*/
|
|
@ApiStatus.Internal
|
|
-public interface BlockType extends Keyed, Translatable {
|
|
+public interface BlockType extends Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - add translatable
|
|
|
|
/**
|
|
* Typed represents a subtype of {@link BlockType}s that have a known block
|
|
@@ -0,0 +0,0 @@ public interface BlockType extends Keyed, Translatable {
|
|
@Nullable
|
|
@Deprecated
|
|
Material asMaterial();
|
|
+
|
|
+ // Paper start - add Translatable
|
|
+ /**
|
|
+ * @deprecated use {@link #translationKey()} and {@link net.kyori.adventure.text.Component#translatable(net.kyori.adventure.translation.Translatable)}
|
|
+ */
|
|
+ @Deprecated(forRemoval = true)
|
|
+ @Override
|
|
+ @NotNull String getTranslationKey();
|
|
+ // Paper end - add Translatable
|
|
}
|
|
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
|
|
*/
|
|
@@ -0,0 +0,0 @@ public abstract class Enchantment implements Keyed, Translatable {
|
|
public abstract net.kyori.adventure.text.@NotNull Component displayName(int level);
|
|
// Paper end
|
|
|
|
+ // Paper start - mark translation key as deprecated
|
|
+ /**
|
|
+ * @deprecated this method assumes that the enchantments description
|
|
+ * always be a translatable component which is not guaranteed.
|
|
+ */
|
|
+ @Override
|
|
+ @Deprecated(forRemoval = true)
|
|
+ public abstract @NotNull String translationKey();
|
|
+ // Paper end - mark translation key as deprecated
|
|
+
|
|
/**
|
|
* Gets the Enchantment at the specified key
|
|
*
|
|
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,
|
|
*/
|
|
- interface Profession extends OldEnum<Profession>, Keyed {
|
|
+ interface Profession extends OldEnum<Profession>, Keyed, net.kyori.adventure.translation.Translatable {
|
|
|
|
Profession NONE = getProfession("none");
|
|
/**
|
|
@@ -0,0 +0,0 @@ public interface Villager extends AbstractVillager {
|
|
static Profession[] values() {
|
|
return Lists.newArrayList(Registry.VILLAGER_PROFESSION).toArray(new Profession[0]);
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ default @NotNull String translationKey() {
|
|
+ return "entity.minecraft.villager." + this.getKey().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
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemType.java b/src/main/java/org/bukkit/inventory/ItemType.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemType.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemType.java
|
|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.Nullable;
|
|
* changes may occur. Do not use this API in plugins.
|
|
*/
|
|
@ApiStatus.Internal
|
|
-public interface ItemType extends Keyed, Translatable {
|
|
+public interface ItemType extends Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - add Translatable
|
|
|
|
/**
|
|
* Typed represents a subtype of {@link ItemType}s that have a known item meta type
|
|
@@ -0,0 +0,0 @@ public interface ItemType extends Keyed, Translatable {
|
|
@Nullable
|
|
@Deprecated
|
|
Material asMaterial();
|
|
+
|
|
+ // Paper start - add Translatable
|
|
+ /**
|
|
+ * @deprecated use {@link #translationKey()} and {@link net.kyori.adventure.text.Component#translatable(net.kyori.adventure.translation.Translatable)}
|
|
+ */
|
|
+ @Deprecated(forRemoval = true)
|
|
+ @Override
|
|
+ @NotNull String getTranslationKey();
|
|
+ // Paper end - add Translatable
|
|
}
|