From ac3aaa248b756c0c2d3dc91d80325bb931f914ba Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 11 Jan 2025 11:02:28 -0800 Subject: [PATCH] Don't use delayed registries in impl anywhere (#11918) --- paper-api/src/main/java/org/bukkit/Art.java | 13 ++++--- paper-api/src/main/java/org/bukkit/Fluid.java | 3 +- .../src/main/java/org/bukkit/JukeboxSong.java | 4 +- .../main/java/org/bukkit/MusicInstrument.java | 4 +- paper-api/src/main/java/org/bukkit/Sound.java | 3 +- .../main/java/org/bukkit/UnsafeValues.java | 3 +- .../java/org/bukkit/attribute/Attribute.java | 3 +- .../src/main/java/org/bukkit/block/Biome.java | 11 +++--- .../java/org/bukkit/block/banner/Pattern.java | 3 +- .../org/bukkit/block/banner/PatternType.java | 7 ++-- .../java/org/bukkit/damage/DamageType.java | 6 ++- .../org/bukkit/enchantments/Enchantment.java | 4 +- .../src/main/java/org/bukkit/entity/Wolf.java | 4 +- .../bukkit/generator/structure/Structure.java | 6 ++- .../java/org/bukkit/inventory/ItemStack.java | 3 +- .../inventory/meta/trim/TrimMaterial.java | 4 +- .../inventory/meta/trim/TrimPattern.java | 4 +- .../java/org/bukkit/potion/PotionEffect.java | 3 +- .../datacomponent/PaperDataComponentType.java | 3 +- .../item/PaperBannerPatternLayers.java | 3 +- .../io/papermc/paper/util/Holderable.java | 5 ++- .../java/org/bukkit/craftbukkit/CraftArt.java | 5 +-- .../org/bukkit/craftbukkit/CraftFluid.java | 3 +- .../bukkit/craftbukkit/CraftGameEvent.java | 3 +- .../bukkit/craftbukkit/CraftJukeboxSong.java | 3 +- .../craftbukkit/CraftMusicInstrument.java | 8 ++-- .../org/bukkit/craftbukkit/CraftRegistry.java | 39 +++++++++---------- .../org/bukkit/craftbukkit/CraftSound.java | 3 +- .../org/bukkit/craftbukkit/CraftWorld.java | 4 +- .../craftbukkit/attribute/CraftAttribute.java | 5 ++- .../bukkit/craftbukkit/block/CraftBanner.java | 3 +- .../bukkit/craftbukkit/block/CraftBiome.java | 3 +- .../craftbukkit/block/CraftBlockType.java | 2 +- .../block/banner/CraftPatternType.java | 5 +-- .../craftbukkit/damage/CraftDamageType.java | 3 +- .../enchantments/CraftEnchantment.java | 5 ++- .../bukkit/craftbukkit/entity/CraftCat.java | 3 +- .../craftbukkit/entity/CraftEntityType.java | 3 +- .../bukkit/craftbukkit/entity/CraftFrog.java | 3 +- .../craftbukkit/entity/CraftVillager.java | 6 +-- .../bukkit/craftbukkit/entity/CraftWolf.java | 3 +- .../generator/structure/CraftStructure.java | 3 +- .../structure/CraftStructureType.java | 3 +- .../craftbukkit/inventory/CraftItemType.java | 2 +- .../craftbukkit/inventory/CraftMenuType.java | 4 +- .../inventory/CraftMetaBanner.java | 3 +- .../inventory/trim/CraftTrimMaterial.java | 8 ++-- .../inventory/trim/CraftTrimPattern.java | 8 ++-- .../craftbukkit/legacy/enums/EnumEvil.java | 1 + .../craftbukkit/map/CraftMapCursor.java | 3 +- .../potion/CraftPotionEffectType.java | 3 +- .../craftbukkit/potion/CraftPotionType.java | 3 +- .../craftbukkit/util/CraftMagicNumbers.java | 9 +---- .../org/bukkit/registry/PerRegistryTest.java | 4 +- .../registry/RegistryConversionTest.java | 13 ++++--- 55 files changed, 145 insertions(+), 133 deletions(-) diff --git a/paper-api/src/main/java/org/bukkit/Art.java b/paper-api/src/main/java/org/bukkit/Art.java index c06204489..82daa6941 100644 --- a/paper-api/src/main/java/org/bukkit/Art.java +++ b/paper-api/src/main/java/org/bukkit/Art.java @@ -2,12 +2,13 @@ package org.bukkit; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; +import io.papermc.paper.registry.RegistryAccess; import io.papermc.paper.registry.RegistryBuilderFactory; +import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.data.InlinedRegistryBuilderProvider; import io.papermc.paper.registry.data.PaintingVariantRegistryEntry; import java.util.Locale; import java.util.function.Consumer; -import org.bukkit.packs.DataPack; import org.bukkit.util.OldEnum; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; @@ -18,8 +19,8 @@ import org.jetbrains.annotations.Nullable; *

* The arts listed in this interface are present in the default server * or can be enabled via a {@link FeatureFlag}. - * There may be additional arts present in the server, for example from a {@link DataPack} - * which can be accessed via {@link Registry#ART}. + * There may be additional arts present in the server, for example from a {@link io.papermc.paper.datapack.Datapack} + * which can be accessed via {@link RegistryAccess#registryAccess()} and {@link RegistryKey#PAINTING_VARIANT}. */ public interface Art extends OldEnum, Keyed { @@ -87,7 +88,7 @@ public interface Art extends OldEnum, Keyed { @NotNull private static Art getArt(@NotNull String key) { - return Registry.ART.getOrThrow(NamespacedKey.minecraft(key)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.PAINTING_VARIANT).getOrThrow(NamespacedKey.minecraft(key)); } /** @@ -189,7 +190,7 @@ public interface Art extends OldEnum, Keyed { static Art getByName(@NotNull String name) { Preconditions.checkArgument(name != null, "Name cannot be null"); - return Bukkit.getUnsafe().get(Registry.ART, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); + return Bukkit.getUnsafe().get(RegistryKey.PAINTING_VARIANT, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); } /** @@ -200,7 +201,7 @@ public interface Art extends OldEnum, Keyed { @NotNull @Deprecated(since = "1.21.3", forRemoval = true) @org.jetbrains.annotations.ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils static Art valueOf(@NotNull String name) { - Art art = Bukkit.getUnsafe().get(Registry.ART, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); + Art art = Bukkit.getUnsafe().get(RegistryKey.PAINTING_VARIANT, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); Preconditions.checkArgument(art != null, "No art found with the name %s", name); return art; } diff --git a/paper-api/src/main/java/org/bukkit/Fluid.java b/paper-api/src/main/java/org/bukkit/Fluid.java index a3ff4fefa..45a095f16 100644 --- a/paper-api/src/main/java/org/bukkit/Fluid.java +++ b/paper-api/src/main/java/org/bukkit/Fluid.java @@ -2,6 +2,7 @@ package org.bukkit; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; +import io.papermc.paper.registry.RegistryKey; import java.util.Locale; import org.bukkit.util.OldEnum; import org.jetbrains.annotations.NotNull; @@ -45,7 +46,7 @@ public interface Fluid extends OldEnum, Keyed { @NotNull @Deprecated(since = "1.21.3", forRemoval = true) @org.jetbrains.annotations.ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils static Fluid valueOf(@NotNull String name) { - Fluid fluid = Bukkit.getUnsafe().get(Registry.FLUID, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); + Fluid fluid = Bukkit.getUnsafe().get(RegistryKey.FLUID, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); Preconditions.checkArgument(fluid != null, "No fluid found with the name %s", name); return fluid; } diff --git a/paper-api/src/main/java/org/bukkit/JukeboxSong.java b/paper-api/src/main/java/org/bukkit/JukeboxSong.java index c6feb13c7..7e3dca502 100644 --- a/paper-api/src/main/java/org/bukkit/JukeboxSong.java +++ b/paper-api/src/main/java/org/bukkit/JukeboxSong.java @@ -1,5 +1,7 @@ package org.bukkit; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; @@ -31,7 +33,7 @@ public interface JukeboxSong extends Keyed, Translatable { @NotNull private static JukeboxSong get(@NotNull String key) { - return Registry.JUKEBOX_SONG.getOrThrow(NamespacedKey.minecraft(key)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.JUKEBOX_SONG).getOrThrow(NamespacedKey.minecraft(key)); } // Paper start - adventure diff --git a/paper-api/src/main/java/org/bukkit/MusicInstrument.java b/paper-api/src/main/java/org/bukkit/MusicInstrument.java index d41892af5..bfe64b367 100644 --- a/paper-api/src/main/java/org/bukkit/MusicInstrument.java +++ b/paper-api/src/main/java/org/bukkit/MusicInstrument.java @@ -1,6 +1,8 @@ package org.bukkit; import com.google.common.collect.Lists; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import java.util.Collection; import java.util.Collections; import org.jetbrains.annotations.NotNull; @@ -44,7 +46,7 @@ public abstract class MusicInstrument implements Keyed, net.kyori.adventure.tran @NotNull private static MusicInstrument getInstrument(@NotNull String key) { - return Registry.INSTRUMENT.getOrThrow(NamespacedKey.minecraft(key)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.INSTRUMENT).getOrThrow(NamespacedKey.minecraft(key)); } // Paper start - deprecate getKey diff --git a/paper-api/src/main/java/org/bukkit/Sound.java b/paper-api/src/main/java/org/bukkit/Sound.java index 70d6dedca..e2fb7cfba 100644 --- a/paper-api/src/main/java/org/bukkit/Sound.java +++ b/paper-api/src/main/java/org/bukkit/Sound.java @@ -2,6 +2,7 @@ package org.bukkit; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; +import io.papermc.paper.registry.RegistryKey; import java.util.Locale; import org.bukkit.packs.DataPack; import org.bukkit.util.OldEnum; @@ -1687,7 +1688,7 @@ public interface Sound extends OldEnum, Keyed, net.kyori.adventure.sound. @NotNull @Deprecated(since = "1.21.3") static Sound valueOf(@NotNull String name) { - Sound sound = Bukkit.getUnsafe().get(Registry.SOUNDS, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); + Sound sound = Bukkit.getUnsafe().get(RegistryKey.SOUND_EVENT, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); if (sound != null) { return sound; } diff --git a/paper-api/src/main/java/org/bukkit/UnsafeValues.java b/paper-api/src/main/java/org/bukkit/UnsafeValues.java index 29838175a..de34d0684 100644 --- a/paper-api/src/main/java/org/bukkit/UnsafeValues.java +++ b/paper-api/src/main/java/org/bukkit/UnsafeValues.java @@ -2,6 +2,7 @@ package org.bukkit; import com.google.common.collect.Multimap; import io.papermc.paper.entity.EntitySerializationFlag; +import io.papermc.paper.registry.RegistryKey; import org.bukkit.advancement.Advancement; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeModifier; @@ -140,7 +141,7 @@ public interface UnsafeValues { String get(Class aClass, String value); @ApiStatus.Internal - B get(Registry registry, NamespacedKey key); + B get(RegistryKey registry, NamespacedKey key); @ApiStatus.Internal Biome getCustomBiome(); diff --git a/paper-api/src/main/java/org/bukkit/attribute/Attribute.java b/paper-api/src/main/java/org/bukkit/attribute/Attribute.java index 273ef25fe..978b0e779 100644 --- a/paper-api/src/main/java/org/bukkit/attribute/Attribute.java +++ b/paper-api/src/main/java/org/bukkit/attribute/Attribute.java @@ -2,6 +2,7 @@ package org.bukkit.attribute; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; +import io.papermc.paper.registry.RegistryKey; import java.util.Locale; import org.bukkit.Bukkit; import org.bukkit.Keyed; @@ -158,7 +159,7 @@ public interface Attribute extends OldEnum, Keyed, Translatable, net. @NotNull @Deprecated(since = "1.21.3", forRemoval = true) @org.jetbrains.annotations.ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils static Attribute valueOf(@NotNull String name) { - Attribute attribute = Bukkit.getUnsafe().get(Registry.ATTRIBUTE, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); + Attribute attribute = Bukkit.getUnsafe().get(RegistryKey.ATTRIBUTE, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); Preconditions.checkArgument(attribute != null, "No attribute found with the name %s", name); return attribute; } diff --git a/paper-api/src/main/java/org/bukkit/block/Biome.java b/paper-api/src/main/java/org/bukkit/block/Biome.java index 20fc2b30f..1387559c3 100644 --- a/paper-api/src/main/java/org/bukkit/block/Biome.java +++ b/paper-api/src/main/java/org/bukkit/block/Biome.java @@ -2,13 +2,14 @@ package org.bukkit.block; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import java.util.Locale; import org.bukkit.Bukkit; import org.bukkit.FeatureFlag; import org.bukkit.Keyed; import org.bukkit.NamespacedKey; import org.bukkit.Registry; -import org.bukkit.packs.DataPack; import org.bukkit.util.OldEnum; import org.jetbrains.annotations.NotNull; @@ -17,8 +18,8 @@ import org.jetbrains.annotations.NotNull; *

* The Biomes listed in this interface are present in the default server * or can be enabled via a {@link FeatureFlag}. - * There may be additional biomes present in the server, for example from a {@link DataPack} - * which can be accessed via {@link Registry#BIOME}. + * There may be additional biomes present in the server, for example from a {@link io.papermc.paper.datapack.Datapack} + * which can be accessed via {@link io.papermc.paper.registry.RegistryAccess#getRegistry(RegistryKey)} and {@link RegistryKey#BIOME}. */ public interface Biome extends OldEnum, Keyed, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations @@ -98,7 +99,7 @@ public interface Biome extends OldEnum, Keyed, net.kyori.adventure.transl @NotNull private static Biome getBiome(@NotNull String key) { - return Registry.BIOME.getOrThrow(NamespacedKey.minecraft(key)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.BIOME).getOrThrow(NamespacedKey.minecraft(key)); } /** @@ -113,7 +114,7 @@ public interface Biome extends OldEnum, Keyed, net.kyori.adventure.transl return Biome.CUSTOM; } - Biome biome = Bukkit.getUnsafe().get(Registry.BIOME, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); + Biome biome = Bukkit.getUnsafe().get(RegistryKey.BIOME, NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); Preconditions.checkArgument(biome != null, "No biome found with the name %s", name); return biome; } diff --git a/paper-api/src/main/java/org/bukkit/block/banner/Pattern.java b/paper-api/src/main/java/org/bukkit/block/banner/Pattern.java index de815683b..d760d500f 100644 --- a/paper-api/src/main/java/org/bukkit/block/banner/Pattern.java +++ b/paper-api/src/main/java/org/bukkit/block/banner/Pattern.java @@ -2,6 +2,7 @@ package org.bukkit.block.banner; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; +import io.papermc.paper.registry.RegistryKey; import java.util.Map; import java.util.NoSuchElementException; import org.bukkit.Bukkit; @@ -45,7 +46,7 @@ public class Pattern implements ConfigurationSerializable { PatternType patternType = PatternType.getByIdentifier(value); if (patternType == null) { - patternType = Bukkit.getUnsafe().get(Registry.BANNER_PATTERN, NamespacedKey.fromString(value)); + patternType = Bukkit.getUnsafe().get(RegistryKey.BANNER_PATTERN, NamespacedKey.fromString(value)); } Preconditions.checkNotNull(patternType, "Pattern type for key %s cannot be null", value); diff --git a/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java b/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java index 24b58ed80..444f128e8 100644 --- a/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java +++ b/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java @@ -2,6 +2,8 @@ package org.bukkit.block.banner; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import java.util.Locale; import org.bukkit.Keyed; import org.bukkit.NamespacedKey; @@ -95,8 +97,7 @@ public interface PatternType extends OldEnum, Keyed { * * @param identifier the identifier * @return the matched pattern type or null - * @see Registry#BANNER_PATTERN - * @deprecated magic value, use {@link Registry#get(NamespacedKey)} instead + * @deprecated magic value, use {@link Registry#get(NamespacedKey)} instead with {@link io.papermc.paper.registry.RegistryAccess#getRegistry(io.papermc.paper.registry.RegistryKey)} and {@link io.papermc.paper.registry.RegistryKey#BANNER_PATTERN} */ @Contract("null -> null") @Nullable @@ -117,7 +118,7 @@ public interface PatternType extends OldEnum, Keyed { @NotNull private static PatternType getType(@NotNull String key) { - return Registry.BANNER_PATTERN.getOrThrow(NamespacedKey.minecraft(key)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.BANNER_PATTERN).getOrThrow(NamespacedKey.minecraft(key)); } /** diff --git a/paper-api/src/main/java/org/bukkit/damage/DamageType.java b/paper-api/src/main/java/org/bukkit/damage/DamageType.java index 14f90d8d4..b74846c77 100644 --- a/paper-api/src/main/java/org/bukkit/damage/DamageType.java +++ b/paper-api/src/main/java/org/bukkit/damage/DamageType.java @@ -1,5 +1,7 @@ package org.bukkit.damage; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import org.bukkit.Keyed; import org.bukkit.NamespacedKey; import org.bukkit.Registry; @@ -12,7 +14,7 @@ import org.jetbrains.annotations.NotNull; *

* Constants in this class include the base types provided by the vanilla * server. Data packs are capable of registering more types of damage which may - * be obtained through the {@link Registry#DAMAGE_TYPE}. + * be obtained through {@link io.papermc.paper.registry.RegistryAccess#getRegistry(RegistryKey)} and {@link RegistryKey#DAMAGE_TYPE}. * * @see Minecraft Wiki */ @@ -71,7 +73,7 @@ public interface DamageType extends Keyed, Translatable { @NotNull private static DamageType getDamageType(@NotNull String key) { - return Registry.DAMAGE_TYPE.getOrThrow(NamespacedKey.minecraft(key)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.DAMAGE_TYPE).getOrThrow(NamespacedKey.minecraft(key)); } /** diff --git a/paper-api/src/main/java/org/bukkit/enchantments/Enchantment.java b/paper-api/src/main/java/org/bukkit/enchantments/Enchantment.java index a824ac90e..288123c31 100644 --- a/paper-api/src/main/java/org/bukkit/enchantments/Enchantment.java +++ b/paper-api/src/main/java/org/bukkit/enchantments/Enchantment.java @@ -1,6 +1,8 @@ package org.bukkit.enchantments; import com.google.common.collect.Lists; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import java.util.Locale; import org.bukkit.Keyed; import org.bukkit.NamespacedKey; @@ -229,7 +231,7 @@ public abstract class Enchantment implements Keyed, Translatable, net.kyori.adve @NotNull private static Enchantment getEnchantment(@NotNull String key) { - return Registry.ENCHANTMENT.getOrThrow(NamespacedKey.minecraft(key)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.ENCHANTMENT).getOrThrow(NamespacedKey.minecraft(key)); } /** diff --git a/paper-api/src/main/java/org/bukkit/entity/Wolf.java b/paper-api/src/main/java/org/bukkit/entity/Wolf.java index c73489f4b..346fdddd2 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Wolf.java +++ b/paper-api/src/main/java/org/bukkit/entity/Wolf.java @@ -1,5 +1,7 @@ package org.bukkit.entity; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import org.bukkit.DyeColor; import org.bukkit.Keyed; import org.bukkit.NamespacedKey; @@ -105,7 +107,7 @@ public interface Wolf extends Tameable, Sittable, io.papermc.paper.entity.Collar @NotNull private static Variant getVariant(@NotNull String key) { - return Registry.WOLF_VARIANT.getOrThrow(NamespacedKey.minecraft(key)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.WOLF_VARIANT).getOrThrow(NamespacedKey.minecraft(key)); } } } diff --git a/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java b/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java index b6920f834..228df69a6 100644 --- a/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java +++ b/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java @@ -1,5 +1,7 @@ package org.bukkit.generator.structure; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import org.bukkit.Keyed; import org.bukkit.NamespacedKey; import org.bukkit.Registry; @@ -10,7 +12,7 @@ import org.jetbrains.annotations.NotNull; * * Listed structures are present in the default server. Depending on the server * there might be additional structures present (for example structures added by - * data packs), which can be received via {@link Registry#STRUCTURE}. + * data packs), which can be received via {@link io.papermc.paper.registry.RegistryAccess#getRegistry(io.papermc.paper.registry.RegistryKey)} and {@link io.papermc.paper.registry.RegistryKey#STRUCTURE}. */ public abstract class Structure implements Keyed { @@ -51,7 +53,7 @@ public abstract class Structure implements Keyed { @NotNull private static Structure getStructure(@NotNull String name) { - return Registry.STRUCTURE.getOrThrow(NamespacedKey.minecraft(name)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.STRUCTURE).getOrThrow(NamespacedKey.minecraft(name)); } /** diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java b/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java index d95d0d6a8..55457c753 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java @@ -2,6 +2,7 @@ package org.bukkit.inventory; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; +import io.papermc.paper.registry.RegistryKey; import java.util.LinkedHashMap; import java.util.Locale; import java.util.Map; @@ -543,7 +544,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat stringKey = Bukkit.getUnsafe().get(Enchantment.class, stringKey); NamespacedKey key = NamespacedKey.fromString(stringKey.toLowerCase(Locale.ROOT)); - Enchantment enchantment = Bukkit.getUnsafe().get(Registry.ENCHANTMENT, key); + Enchantment enchantment = Bukkit.getUnsafe().get(RegistryKey.ENCHANTMENT, key); if ((enchantment != null) && (entry.getValue() instanceof Integer)) { result.addUnsafeEnchantment(enchantment, (Integer) entry.getValue()); diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java index 7e8a4b4ec..0910dd287 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java @@ -1,5 +1,7 @@ package org.bukkit.inventory.meta.trim; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import org.bukkit.Keyed; import org.bukkit.Material; import org.bukkit.NamespacedKey; @@ -59,7 +61,7 @@ public interface TrimMaterial extends Keyed, Translatable { @NotNull private static TrimMaterial getTrimMaterial(@NotNull String key) { - return Registry.TRIM_MATERIAL.getOrThrow(NamespacedKey.minecraft(key)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.TRIM_MATERIAL).getOrThrow(NamespacedKey.minecraft(key)); } // Paper start - adventure diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java index b2fa0d565..9360e27b0 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java @@ -1,5 +1,7 @@ package org.bukkit.inventory.meta.trim; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import org.bukkit.Keyed; import org.bukkit.Material; import org.bukkit.NamespacedKey; @@ -87,7 +89,7 @@ public interface TrimPattern extends Keyed, Translatable { @NotNull private static TrimPattern getTrimPattern(@NotNull String key) { - return Registry.TRIM_PATTERN.getOrThrow(NamespacedKey.minecraft(key)); + return RegistryAccess.registryAccess().getRegistry(RegistryKey.TRIM_PATTERN).getOrThrow(NamespacedKey.minecraft(key)); } // Paper start - adventure diff --git a/paper-api/src/main/java/org/bukkit/potion/PotionEffect.java b/paper-api/src/main/java/org/bukkit/potion/PotionEffect.java index ab8f3c089..7cac918e0 100644 --- a/paper-api/src/main/java/org/bukkit/potion/PotionEffect.java +++ b/paper-api/src/main/java/org/bukkit/potion/PotionEffect.java @@ -2,6 +2,7 @@ package org.bukkit.potion; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; +import io.papermc.paper.registry.RegistryKey; import java.util.Map; import java.util.NoSuchElementException; import org.bukkit.Bukkit; @@ -175,7 +176,7 @@ public class PotionEffect implements ConfigurationSerializable { private static PotionEffectType getEffectType(@NotNull Map map) { PotionEffectType effect; if (map.get(TYPE) instanceof String value) { - effect = Bukkit.getUnsafe().get(Registry.EFFECT, NamespacedKey.fromString(value)); + effect = Bukkit.getUnsafe().get(RegistryKey.MOB_EFFECT, NamespacedKey.fromString(value)); } else { int type = getInt(map, TYPE); effect = PotionEffectType.getById(type); diff --git a/paper-server/src/main/java/io/papermc/paper/datacomponent/PaperDataComponentType.java b/paper-server/src/main/java/io/papermc/paper/datacomponent/PaperDataComponentType.java index e2fcf870b..7ec9b765f 100644 --- a/paper-server/src/main/java/io/papermc/paper/datacomponent/PaperDataComponentType.java +++ b/paper-server/src/main/java/io/papermc/paper/datacomponent/PaperDataComponentType.java @@ -7,7 +7,6 @@ import net.minecraft.core.component.DataComponentMap; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.util.Handleable; import org.jspecify.annotations.Nullable; @@ -23,7 +22,7 @@ public abstract class PaperDataComponentType implements DataComponentTyp } public static DataComponentType minecraftToBukkit(final net.minecraft.core.component.DataComponentType type) { - return CraftRegistry.minecraftToBukkit(type, Registries.DATA_COMPONENT_TYPE, Registry.DATA_COMPONENT_TYPE); + return CraftRegistry.minecraftToBukkit(type, Registries.DATA_COMPONENT_TYPE); } public static Set minecraftToBukkit(final Set> nmsTypes) { diff --git a/paper-server/src/main/java/io/papermc/paper/datacomponent/item/PaperBannerPatternLayers.java b/paper-server/src/main/java/io/papermc/paper/datacomponent/item/PaperBannerPatternLayers.java index ca49c2d2e..9963cbf9f 100644 --- a/paper-server/src/main/java/io/papermc/paper/datacomponent/item/PaperBannerPatternLayers.java +++ b/paper-server/src/main/java/io/papermc/paper/datacomponent/item/PaperBannerPatternLayers.java @@ -1,6 +1,5 @@ package io.papermc.paper.datacomponent.item; -import io.papermc.paper.registry.RegistryAccess; import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.util.MCUtil; import java.util.List; @@ -20,7 +19,7 @@ public record PaperBannerPatternLayers( private static List convert(final net.minecraft.world.level.block.entity.BannerPatternLayers nmsPatterns) { return MCUtil.transformUnmodifiable(nmsPatterns.layers(), input -> { - final Optional type = CraftRegistry.unwrapAndConvertHolder(RegistryAccess.registryAccess().getRegistry(RegistryKey.BANNER_PATTERN), input.pattern()); + final Optional type = CraftRegistry.unwrapAndConvertHolder(RegistryKey.BANNER_PATTERN, input.pattern()); return new Pattern(Objects.requireNonNull(DyeColor.getByWoolData((byte) input.color().getId())), type.orElseThrow(() -> new IllegalStateException("Inlined banner patterns are not supported yet in the API!"))); }); } diff --git a/paper-server/src/main/java/io/papermc/paper/util/Holderable.java b/paper-server/src/main/java/io/papermc/paper/util/Holderable.java index c0115e0a3..5958c6fd4 100644 --- a/paper-server/src/main/java/io/papermc/paper/util/Holderable.java +++ b/paper-server/src/main/java/io/papermc/paper/util/Holderable.java @@ -4,6 +4,8 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.mojang.serialization.Codec; import com.mojang.serialization.JsonOps; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import net.kyori.adventure.key.Key; import net.minecraft.core.Holder; import net.minecraft.resources.RegistryOps; @@ -25,7 +27,8 @@ public interface Holderable extends Handleable { return this.getHolder().value(); } - static @Nullable T fromBukkitSerializationObject(final Object deserialized, final Codec> codec, final Registry registry) { // TODO remove Keyed + static @Nullable T fromBukkitSerializationObject(final Object deserialized, final Codec> codec, final RegistryKey registryKey) { // TODO remove Keyed + final Registry registry = RegistryAccess.registryAccess().getRegistry(registryKey); return switch (deserialized) { case @Subst("key:value") final String string -> { if (!(Key.parseable(string))) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftArt.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftArt.java index d4edaea71..b784da2a5 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftArt.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftArt.java @@ -7,18 +7,17 @@ import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.decoration.PaintingVariant; import org.bukkit.Art; -import org.bukkit.Registry; public class CraftArt extends OldEnumHolderable implements Art { private static int count = 0; public static Art minecraftToBukkit(PaintingVariant minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.PAINTING_VARIANT, Registry.ART); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.PAINTING_VARIANT); } public static Art minecraftHolderToBukkit(Holder minecraft) { - return CraftRegistry.minecraftHolderToBukkit(minecraft, Registry.ART); + return CraftRegistry.minecraftHolderToBukkit(minecraft, Registries.PAINTING_VARIANT); } public static PaintingVariant bukkitToMinecraft(Art bukkit) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftFluid.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftFluid.java index 6cbd9d313..f01fadad7 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftFluid.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftFluid.java @@ -4,7 +4,6 @@ import java.util.Locale; import net.minecraft.core.registries.Registries; import org.bukkit.Fluid; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.util.Handleable; import org.jetbrains.annotations.NotNull; @@ -13,7 +12,7 @@ public class CraftFluid implements Fluid, Handleable { public static GameEvent minecraftToBukkit(net.minecraft.world.level.gameevent.GameEvent minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.GAME_EVENT, Registry.GAME_EVENT); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.GAME_EVENT); } public static net.minecraft.world.level.gameevent.GameEvent bukkitToMinecraft(GameEvent bukkit) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftJukeboxSong.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftJukeboxSong.java index 2772c19f5..e75c045e3 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftJukeboxSong.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftJukeboxSong.java @@ -6,14 +6,13 @@ import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.contents.TranslatableContents; import org.bukkit.JukeboxSong; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.util.Handleable; import org.jetbrains.annotations.NotNull; public class CraftJukeboxSong implements JukeboxSong, Handleable { public static JukeboxSong minecraftToBukkit(net.minecraft.world.item.JukeboxSong minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.JUKEBOX_SONG, Registry.JUKEBOX_SONG); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.JUKEBOX_SONG); } public static JukeboxSong minecraftHolderToBukkit(Holder minecraft) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftMusicInstrument.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftMusicInstrument.java index 7ad11769a..b72a07064 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftMusicInstrument.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftMusicInstrument.java @@ -1,6 +1,7 @@ package org.bukkit.craftbukkit; import com.google.common.base.Preconditions; +import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.util.Holderable; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; @@ -8,17 +9,16 @@ import net.minecraft.world.item.Instrument; import org.bukkit.MusicInstrument; import org.bukkit.NamespacedKey; import org.bukkit.Registry; -import org.bukkit.craftbukkit.util.Handleable; import org.jetbrains.annotations.NotNull; public class CraftMusicInstrument extends MusicInstrument implements io.papermc.paper.util.Holderable { public static MusicInstrument minecraftToBukkit(Instrument minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.INSTRUMENT, Registry.INSTRUMENT); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.INSTRUMENT); } public static MusicInstrument minecraftHolderToBukkit(Holder minecraft) { - return CraftRegistry.minecraftHolderToBukkit(minecraft, Registry.INSTRUMENT); // Paper - switch to Holder + return CraftRegistry.minecraftHolderToBukkit(minecraft, Registries.INSTRUMENT); // Paper - switch to Holder } public static Instrument bukkitToMinecraft(MusicInstrument bukkit) { @@ -38,7 +38,7 @@ public class CraftMusicInstrument extends MusicInstrument implements io.papermc. public static MusicInstrument stringToBukkit(Object string) { // Paper - switch to Holder Preconditions.checkArgument(string != null); - return io.papermc.paper.util.Holderable.fromBukkitSerializationObject(string, Instrument.CODEC, Registry.INSTRUMENT); // Paper - switch to Holder + return io.papermc.paper.util.Holderable.fromBukkitSerializationObject(string, Instrument.CODEC, RegistryKey.INSTRUMENT); // Paper - switch to Holder } // Paper start - switch to Holder diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java index b3f781c0c..fcf177b3c 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java @@ -1,12 +1,15 @@ package org.bukkit.craftbukkit; import com.google.common.base.Preconditions; +import io.papermc.paper.registry.PaperRegistries; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.registry.entry.RegistryEntryMeta; import io.papermc.paper.registry.set.NamedRegistryKeySetImpl; import io.papermc.paper.registry.tag.Tag; import io.papermc.paper.util.Holderable; -import java.util.Collection; import io.papermc.paper.util.MCUtil; +import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -15,7 +18,6 @@ import java.util.function.BiFunction; import java.util.stream.Stream; import net.minecraft.core.Holder; import net.minecraft.core.HolderOwner; -import net.minecraft.core.RegistryAccess; import net.minecraft.resources.ResourceKey; import org.bukkit.Keyed; import org.bukkit.NamespacedKey; @@ -30,14 +32,14 @@ import org.jetbrains.annotations.NotNull; public class CraftRegistry implements Registry { - private static RegistryAccess registry; + private static net.minecraft.core.RegistryAccess registry; - public static void setMinecraftRegistry(RegistryAccess registry) { + public static void setMinecraftRegistry(final net.minecraft.core.RegistryAccess registry) { Preconditions.checkState(CraftRegistry.registry == null, "Registry already set"); CraftRegistry.registry = registry; } - public static RegistryAccess getMinecraftRegistry() { + public static net.minecraft.core.RegistryAccess getMinecraftRegistry() { return CraftRegistry.registry; } @@ -49,16 +51,15 @@ public class CraftRegistry implements Registry { * Usage note: Only use this method to delegate the conversion methods from the individual Craft classes to here. * Do not use it in other parts of CraftBukkit, use the methods in the respective Craft classes instead. * - * @param minecraft the minecraft representation + * @param minecraft the minecraft representation * @param registryKey the registry key of the minecraft registry to use - * @param bukkitRegistry the bukkit registry to use * @return the bukkit representation of the minecraft value */ - public static B minecraftToBukkit(M minecraft, ResourceKey> registryKey, Registry bukkitRegistry) { + public static B minecraftToBukkit(M minecraft, ResourceKey> registryKey) { Preconditions.checkArgument(minecraft != null); net.minecraft.core.Registry registry = CraftRegistry.getMinecraftRegistry(registryKey); - // Paper start - support direct Holders + final Registry bukkitRegistry = RegistryAccess.registryAccess().getRegistry(PaperRegistries.registryFromNms(registryKey)); final java.util.Optional> resourceKey = registry.getResourceKey(minecraft); if (resourceKey.isEmpty() && bukkitRegistry instanceof final CraftRegistry craftRegistry && craftRegistry.supportsDirectHolders()) { return ((CraftRegistry) bukkitRegistry).convertDirectHolder(Holder.direct(minecraft)); @@ -66,17 +67,16 @@ public class CraftRegistry implements Registry { throw new IllegalStateException(String.format("Cannot convert '%s' to bukkit representation, since it is not registered.", minecraft)); } final B bukkit = bukkitRegistry.get(CraftNamespacedKey.fromMinecraft(resourceKey.get().location())); - // Paper end - support direct Holders Preconditions.checkArgument(bukkit != null); return bukkit; } - // Paper start - support direct Holders - public static B minecraftHolderToBukkit(final Holder minecraft, final Registry bukkitRegistry) { + public static B minecraftHolderToBukkit(final Holder minecraft, final ResourceKey> registryKey) { Preconditions.checkArgument(minecraft != null); + final Registry bukkitRegistry = RegistryAccess.registryAccess().getRegistry(PaperRegistries.registryFromNms(registryKey)); final B bukkit = switch (minecraft) { case final Holder.Direct direct -> { if (!(bukkitRegistry instanceof final CraftRegistry craftRegistry) || !craftRegistry.supportsDirectHolders()) { @@ -84,14 +84,13 @@ public class CraftRegistry implements Registry { } yield ((CraftRegistry) bukkitRegistry).convertDirectHolder(direct); } - case final Holder.Reference reference -> bukkitRegistry.get(io.papermc.paper.util.MCUtil.fromResourceKey(reference.key())); + case final Holder.Reference reference -> bukkitRegistry.get(MCUtil.fromResourceKey(reference.key())); default -> throw new IllegalArgumentException("Unknown holder: " + minecraft); }; Preconditions.checkArgument(bukkit != null); return bukkit; } - // Paper end - support direct Holders /** * Usage note: Only use this method to delegate the conversion methods from the individual Craft classes to here. @@ -125,13 +124,10 @@ public class CraftRegistry implements Registry { } // Paper start - fixup upstream being dum - public static java.util.Optional unwrapAndConvertHolder(final io.papermc.paper.registry.RegistryKey registryKey, final Holder value) { - return unwrapAndConvertHolder(io.papermc.paper.registry.RegistryAccess.registryAccess().getRegistry(registryKey), value); - } - - public static java.util.Optional unwrapAndConvertHolder(final Registry registry, final Holder value) { + public static Optional unwrapAndConvertHolder(final RegistryKey registryKey, final Holder value) { + final Registry registry = RegistryAccess.registryAccess().getRegistry(registryKey); if (registry instanceof CraftRegistry craftRegistry && craftRegistry.supportsDirectHolders() && value.kind() == Holder.Kind.DIRECT) { - return java.util.Optional.of(((CraftRegistry) registry).convertDirectHolder(value)); + return Optional.of(((CraftRegistry) registry).convertDirectHolder(value)); } return value.unwrapKey().map(key -> registry.get(CraftNamespacedKey.fromMinecraft(key.location()))); } @@ -140,7 +136,8 @@ public class CraftRegistry implements Registry { // Paper - move to PaperRegistries // Paper - NOTE: As long as all uses of the method below relate to *serialization* via ConfigurationSerializable, it's fine - public static B get(Registry bukkit, NamespacedKey namespacedKey, ApiVersion apiVersion) { + public static B get(RegistryKey bukkitKey, NamespacedKey namespacedKey, ApiVersion apiVersion) { + final Registry bukkit = RegistryAccess.registryAccess().getRegistry(bukkitKey); if (bukkit instanceof CraftRegistry craft) { return craft.get(craft.serializationUpdater.apply(namespacedKey, apiVersion)); // Paper } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftSound.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftSound.java index 451fe79b1..9cfbe2390 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftSound.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftSound.java @@ -4,7 +4,6 @@ import io.papermc.paper.util.OldEnumHolderable; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import net.minecraft.sounds.SoundEvent; -import org.bukkit.Registry; import org.bukkit.Sound; public class CraftSound extends OldEnumHolderable implements Sound { @@ -12,7 +11,7 @@ public class CraftSound extends OldEnumHolderable implements private static int count = 0; public static Sound minecraftToBukkit(SoundEvent minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.SOUND_EVENT, Registry.SOUNDS); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.SOUND_EVENT); } public static SoundEvent bukkitToMinecraft(Sound bukkit) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 281969314..ba32db69c 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -6,6 +6,8 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.mojang.datafixers.util.Pair; import io.papermc.paper.FeatureHooks; +import io.papermc.paper.registry.RegistryAccess; +import io.papermc.paper.registry.RegistryKey; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import java.io.File; @@ -2242,7 +2244,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public StructureSearchResult locateNearestStructure(Location origin, StructureType structureType, int radius, boolean findUnexplored) { List structures = new ArrayList<>(); - for (Structure structure : Registry.STRUCTURE) { + for (Structure structure : RegistryAccess.registryAccess().getRegistry(RegistryKey.STRUCTURE)) { if (structure.getStructureType() == structureType) { structures.add(structure); } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttribute.java b/paper-server/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttribute.java index 0d04f0a34..1e7ea738f 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttribute.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttribute.java @@ -1,6 +1,7 @@ package org.bukkit.craftbukkit.attribute; import com.google.common.base.Preconditions; +import io.papermc.paper.registry.RegistryKey; import java.util.Locale; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; @@ -18,7 +19,7 @@ public class CraftAttribute implements Attribute, Handleable minecraft) { @@ -36,7 +37,7 @@ public class CraftAttribute implements Attribute, Handleable implem for (int i = 0; i < banner.getPatterns().layers().size(); i++) { BannerPatternLayers.Layer p = banner.getPatterns().layers().get(i); // Paper start - fix upstream not handling inlined banner pattern - java.util.Optional type = org.bukkit.craftbukkit.CraftRegistry.unwrapAndConvertHolder(org.bukkit.Registry.BANNER_PATTERN, p.pattern()); + java.util.Optional type = org.bukkit.craftbukkit.CraftRegistry.unwrapAndConvertHolder(RegistryKey.BANNER_PATTERN, p.pattern()); if (type.isEmpty()) continue; this.patterns.add(new Pattern(DyeColor.getByWoolData((byte) p.color().getId()), type.get())); // Paper end - fix upstream not handling inlined banner pattern diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBiome.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBiome.java index 4e535481c..55c99297a 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBiome.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBiome.java @@ -4,7 +4,6 @@ import java.util.Locale; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.block.Biome; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.util.Handleable; @@ -15,7 +14,7 @@ public class CraftBiome implements Biome, Handleable minecraft) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockType.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockType.java index 978e602c3..90fe14f10 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockType.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockType.java @@ -49,7 +49,7 @@ public class CraftBlockType implements BlockType.Typed, } public static BlockType minecraftToBukkitNew(Block minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.BLOCK, Registry.BLOCK); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.BLOCK); } public static Block bukkitToMinecraftNew(BlockType bukkit) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/banner/CraftPatternType.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/banner/CraftPatternType.java index 749024b25..5865892ad 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/banner/CraftPatternType.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/block/banner/CraftPatternType.java @@ -4,7 +4,6 @@ import io.papermc.paper.util.OldEnumHolderable; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import net.minecraft.world.level.block.entity.BannerPattern; -import org.bukkit.Registry; import org.bukkit.block.banner.PatternType; import org.bukkit.craftbukkit.CraftRegistry; @@ -13,11 +12,11 @@ public class CraftPatternType extends OldEnumHolderable minecraft) { - return CraftRegistry.minecraftHolderToBukkit(minecraft, Registry.BANNER_PATTERN); + return CraftRegistry.minecraftHolderToBukkit(minecraft, Registries.BANNER_PATTERN); } public static BannerPattern bukkitToMinecraft(PatternType bukkit) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageType.java b/paper-server/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageType.java index d48641242..335077585 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageType.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/damage/CraftDamageType.java @@ -4,7 +4,6 @@ import com.google.common.base.Preconditions; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.util.Handleable; import org.bukkit.damage.DamageEffect; @@ -120,6 +119,6 @@ public class CraftDamageType implements DamageType, Handleable { public static Enchantment minecraftToBukkit(net.minecraft.world.item.enchantment.Enchantment minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.ENCHANTMENT, Registry.ENCHANTMENT); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.ENCHANTMENT); } public static Enchantment minecraftHolderToBukkit(Holder minecraft) { @@ -52,7 +53,7 @@ public class CraftEnchantment extends Enchantment implements Holderable handle; diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java index 88e876da7..1a09082fc 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java @@ -7,7 +7,6 @@ import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.animal.CatVariant; import org.bukkit.DyeColor; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.util.Handleable; @@ -55,7 +54,7 @@ public class CraftCat extends CraftTameableAnimal implements Cat { private static int count = 0; public static Type minecraftToBukkit(CatVariant minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.CAT_VARIANT, Registry.CAT_VARIANT); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.CAT_VARIANT); } public static Type minecraftHolderToBukkit(Holder minecraft) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityType.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityType.java index d230cbc26..47db45462 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityType.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityType.java @@ -1,6 +1,7 @@ package org.bukkit.craftbukkit.entity; import com.google.common.base.Preconditions; +import io.papermc.paper.registry.RegistryKey; import java.util.Locale; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; @@ -61,6 +62,6 @@ public class CraftEntityType { NamespacedKey key = NamespacedKey.fromString(string); // Now also convert from when keys where saved - return CraftRegistry.get(Registry.ENTITY_TYPE, key, ApiVersion.CURRENT); + return CraftRegistry.get(RegistryKey.ENTITY_TYPE, key, ApiVersion.CURRENT); } } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java index ebf09c27e..58cacdc8f 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java @@ -7,7 +7,6 @@ import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.animal.FrogVariant; import net.minecraft.world.entity.animal.frog.Frog; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.util.Handleable; @@ -59,7 +58,7 @@ public class CraftFrog extends CraftAnimals implements org.bukkit.entity.Frog { private static int count = 0; public static Variant minecraftToBukkit(FrogVariant minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.FROG_VARIANT, Registry.FROG_VARIANT); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.FROG_VARIANT); } public static Variant minecraftHolderToBukkit(Holder minecraft) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java index 8e895d6f8..aaddce10e 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java @@ -11,7 +11,6 @@ import net.minecraft.world.level.block.BedBlock; import net.minecraft.world.level.block.state.BlockState; import org.bukkit.Location; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.util.CraftLocation; @@ -23,7 +22,6 @@ import org.bukkit.event.entity.EntityTransformEvent; // Paper start import com.destroystokyo.paper.entity.villager.Reputation; -import com.google.common.collect.Maps; import java.util.Map; import java.util.UUID; // Paper end @@ -177,7 +175,7 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { private static int count = 0; public static Type minecraftToBukkit(VillagerType minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.VILLAGER_TYPE, Registry.VILLAGER_TYPE); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.VILLAGER_TYPE); } public static VillagerType bukkitToMinecraft(Type bukkit) { @@ -258,7 +256,7 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { private static int count = 0; public static Profession minecraftToBukkit(VillagerProfession minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.VILLAGER_PROFESSION, Registry.VILLAGER_PROFESSION); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.VILLAGER_PROFESSION); } public static VillagerProfession bukkitToMinecraft(Profession bukkit) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java index ecd33b4ad..c1b7f1281 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java @@ -6,7 +6,6 @@ import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.animal.WolfVariant; import org.bukkit.DyeColor; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.util.Handleable; @@ -81,7 +80,7 @@ public class CraftWolf extends CraftTameableAnimal implements Wolf { public static class CraftVariant implements Variant, Handleable { public static Variant minecraftToBukkit(WolfVariant minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.WOLF_VARIANT, Registry.WOLF_VARIANT); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.WOLF_VARIANT); } public static Variant minecraftHolderToBukkit(Holder minecraft) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/generator/structure/CraftStructure.java b/paper-server/src/main/java/org/bukkit/craftbukkit/generator/structure/CraftStructure.java index 09fd00624..75f589e83 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/generator/structure/CraftStructure.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/generator/structure/CraftStructure.java @@ -4,7 +4,6 @@ import com.google.common.base.Suppliers; import java.util.function.Supplier; import net.minecraft.core.registries.Registries; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.util.Handleable; import org.bukkit.generator.structure.Structure; @@ -13,7 +12,7 @@ import org.bukkit.generator.structure.StructureType; public class CraftStructure extends Structure implements Handleable { public static Structure minecraftToBukkit(net.minecraft.world.level.levelgen.structure.Structure minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.STRUCTURE, Registry.STRUCTURE); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.STRUCTURE); } public static net.minecraft.world.level.levelgen.structure.Structure bukkitToMinecraft(Structure bukkit) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/generator/structure/CraftStructureType.java b/paper-server/src/main/java/org/bukkit/craftbukkit/generator/structure/CraftStructureType.java index 7199847c7..cd2d04c1b 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/generator/structure/CraftStructureType.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/generator/structure/CraftStructureType.java @@ -2,7 +2,6 @@ package org.bukkit.craftbukkit.generator.structure; import net.minecraft.core.registries.Registries; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.util.Handleable; import org.bukkit.generator.structure.StructureType; @@ -10,7 +9,7 @@ import org.bukkit.generator.structure.StructureType; public class CraftStructureType extends StructureType implements Handleable> { public static StructureType minecraftToBukkit(net.minecraft.world.level.levelgen.structure.StructureType minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.STRUCTURE_TYPE, Registry.STRUCTURE_TYPE); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.STRUCTURE_TYPE); } public static net.minecraft.world.level.levelgen.structure.StructureType bukkitToMinecraft(StructureType bukkit) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java index b0da057ce..24ff46293 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemType.java @@ -51,7 +51,7 @@ public class CraftItemType implements ItemType.Typed, Han } public static ItemType minecraftToBukkitNew(Item minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.ITEM, Registry.ITEM); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.ITEM); } public static Item bukkitToMinecraftNew(ItemType bukkit) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMenuType.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMenuType.java index fbde94b72..e4d81ef26 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMenuType.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMenuType.java @@ -8,11 +8,9 @@ import net.minecraft.core.registries.Registries; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.inventory.AbstractContainerMenu; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.entity.CraftHumanEntity; import org.bukkit.craftbukkit.inventory.util.CraftMenus; -import org.bukkit.craftbukkit.util.CraftChatMessage; import org.bukkit.craftbukkit.util.Handleable; import org.bukkit.entity.HumanEntity; import org.bukkit.inventory.InventoryView; @@ -85,7 +83,7 @@ public class CraftMenuType implements MenuType.Typed } public static MenuType minecraftToBukkit(net.minecraft.world.inventory.MenuType minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.MENU, Registry.MENU); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.MENU); } public static MenuType minecraftHolderToBukkit(Holder> minecraft) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java index fdc0c1d73..30cc01cf1 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBanner.java @@ -3,6 +3,7 @@ package org.bukkit.craftbukkit.inventory; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import io.papermc.paper.registry.RegistryKey; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -42,7 +43,7 @@ public class CraftMetaBanner extends CraftMetaItem implements BannerMeta { for (int i = 0; i < Math.min(patterns.size(), 20); i++) { BannerPatternLayers.Layer p = patterns.get(i); DyeColor color = DyeColor.getByWoolData((byte) p.color().getId()); - PatternType pattern = org.bukkit.craftbukkit.CraftRegistry.unwrapAndConvertHolder(org.bukkit.Registry.BANNER_PATTERN, p.pattern()).orElse(null); // Paper - fix upstream not handling inlined banner pattern + PatternType pattern = org.bukkit.craftbukkit.CraftRegistry.unwrapAndConvertHolder(RegistryKey.BANNER_PATTERN, p.pattern()).orElse(null); // Paper - fix upstream not handling inlined banner pattern if (color != null && pattern != null) { this.patterns.add(new Pattern(color, pattern)); diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java index 77378a90f..d4905c329 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimMaterial.java @@ -1,6 +1,7 @@ package org.bukkit.craftbukkit.inventory.trim; import com.google.common.base.Preconditions; +import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.util.Holderable; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; @@ -8,18 +9,17 @@ import net.minecraft.network.chat.contents.TranslatableContents; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; -import org.bukkit.craftbukkit.util.Handleable; import org.bukkit.inventory.meta.trim.TrimMaterial; import org.jetbrains.annotations.NotNull; public class CraftTrimMaterial implements TrimMaterial, io.papermc.paper.util.Holderable { // Paper - switch to Holder public static TrimMaterial minecraftToBukkit(net.minecraft.world.item.equipment.trim.TrimMaterial minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.TRIM_MATERIAL, Registry.TRIM_MATERIAL); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.TRIM_MATERIAL); } public static TrimMaterial minecraftHolderToBukkit(Holder minecraft) { - return CraftRegistry.minecraftHolderToBukkit(minecraft, Registry.TRIM_MATERIAL); // Paper - switch to Holder + return CraftRegistry.minecraftHolderToBukkit(minecraft, Registries.TRIM_MATERIAL); // Paper - switch to Holder } public static net.minecraft.world.item.equipment.trim.TrimMaterial bukkitToMinecraft(TrimMaterial bukkit) { @@ -42,7 +42,7 @@ public class CraftTrimMaterial implements TrimMaterial, io.papermc.paper.util.Ho public static TrimMaterial objectToBukkit(Object object) { Preconditions.checkArgument(object != null); - return io.papermc.paper.util.Holderable.fromBukkitSerializationObject(object, net.minecraft.world.item.equipment.trim.TrimMaterial.CODEC, Registry.TRIM_MATERIAL); // Paper - switch to Holder + return io.papermc.paper.util.Holderable.fromBukkitSerializationObject(object, net.minecraft.world.item.equipment.trim.TrimMaterial.CODEC, RegistryKey.TRIM_MATERIAL); // Paper - switch to Holder } @Override diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java index 0d92f7746..3e3c0d3ba 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/trim/CraftTrimPattern.java @@ -1,6 +1,7 @@ package org.bukkit.craftbukkit.inventory.trim; import com.google.common.base.Preconditions; +import io.papermc.paper.registry.RegistryKey; import io.papermc.paper.util.Holderable; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; @@ -8,18 +9,17 @@ import net.minecraft.network.chat.contents.TranslatableContents; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; -import org.bukkit.craftbukkit.util.Handleable; import org.bukkit.inventory.meta.trim.TrimPattern; import org.jetbrains.annotations.NotNull; public class CraftTrimPattern implements TrimPattern, io.papermc.paper.util.Holderable { // Paper - switch to Holder public static TrimPattern minecraftToBukkit(net.minecraft.world.item.equipment.trim.TrimPattern minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.TRIM_PATTERN, Registry.TRIM_PATTERN); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.TRIM_PATTERN); } public static TrimPattern minecraftHolderToBukkit(Holder minecraft) { - return CraftRegistry.minecraftHolderToBukkit(minecraft, Registry.TRIM_PATTERN); // Paper - switch to Holder + return CraftRegistry.minecraftHolderToBukkit(minecraft, Registries.TRIM_PATTERN); // Paper - switch to Holder } public static net.minecraft.world.item.equipment.trim.TrimPattern bukkitToMinecraft(TrimPattern bukkit) { @@ -42,7 +42,7 @@ public class CraftTrimPattern implements TrimPattern, io.papermc.paper.util.Hold public static TrimPattern objectToBukkit(Object object) { Preconditions.checkArgument(object != null); - return io.papermc.paper.util.Holderable.fromBukkitSerializationObject(object, net.minecraft.world.item.equipment.trim.TrimPattern.CODEC, Registry.TRIM_PATTERN); // Paper - switch to Holder + return io.papermc.paper.util.Holderable.fromBukkitSerializationObject(object, net.minecraft.world.item.equipment.trim.TrimPattern.CODEC, RegistryKey.TRIM_PATTERN); // Paper - switch to Holder } @Override diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/legacy/enums/EnumEvil.java b/paper-server/src/main/java/org/bukkit/craftbukkit/legacy/enums/EnumEvil.java index faba7efbd..1376703cd 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/legacy/enums/EnumEvil.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/legacy/enums/EnumEvil.java @@ -40,6 +40,7 @@ import org.bukkit.entity.Villager; import org.bukkit.map.MapCursor; import org.bukkit.util.OldEnum; +@Deprecated @NotInBukkit @RequireCompatibility("enum-compatibility-mode") @RequirePluginVersion(maxInclusive = "1.20.6") diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapCursor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapCursor.java index 9c02115aa..a24cd5850 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapCursor.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapCursor.java @@ -5,7 +5,6 @@ import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import net.minecraft.world.level.saveddata.maps.MapDecorationType; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.util.Handleable; import org.bukkit.map.MapCursor; @@ -17,7 +16,7 @@ public final class CraftMapCursor { private static int count = 0; public static MapCursor.Type minecraftToBukkit(MapDecorationType minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.MAP_DECORATION_TYPE, Registry.MAP_DECORATION_TYPE); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.MAP_DECORATION_TYPE); } public static MapCursor.Type minecraftHolderToBukkit(Holder minecraft) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java b/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java index 0bcb9df11..8d9c141ff 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java @@ -5,7 +5,6 @@ import net.minecraft.core.registries.Registries; import net.minecraft.world.effect.MobEffect; import org.bukkit.Color; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.craftbukkit.util.Handleable; import org.bukkit.potion.PotionEffect; @@ -20,7 +19,7 @@ public class CraftPotionEffectType extends PotionEffectType implements Handleabl } public static PotionEffectType minecraftToBukkit(MobEffect minecraft) { - return CraftRegistry.minecraftToBukkit(minecraft, Registries.MOB_EFFECT, Registry.EFFECT); + return CraftRegistry.minecraftToBukkit(minecraft, Registries.MOB_EFFECT); } public static MobEffect bukkitToMinecraft(PotionEffectType bukkit) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionType.java b/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionType.java index f1d8ed4a2..24010b74a 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionType.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionType.java @@ -2,6 +2,7 @@ package org.bukkit.craftbukkit.potion; import com.google.common.base.Preconditions; import com.google.common.base.Suppliers; +import io.papermc.paper.registry.RegistryKey; import java.util.List; import java.util.Locale; import java.util.function.Supplier; @@ -72,7 +73,7 @@ public class CraftPotionType implements PotionType.InternalPotionData { if (key == null) return null; // Paper - Fixup NamespacedKey handling // Now also convert from when keys where saved - return CraftRegistry.get(Registry.POTION, key, ApiVersion.CURRENT); + return CraftRegistry.get(RegistryKey.POTION, key, ApiVersion.CURRENT); } private final NamespacedKey key; diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java index 327504514..bd8005cd3 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -12,17 +12,16 @@ import com.mojang.brigadier.StringReader; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.serialization.Dynamic; import com.mojang.serialization.JsonOps; +import io.papermc.paper.registry.RegistryKey; import java.io.File; import java.io.IOException; import java.util.ArrayList; -import java.util.EnumSet; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.logging.Level; -import java.util.logging.Logger; import java.util.stream.Stream; import io.papermc.paper.entity.EntitySerializationFlag; import net.minecraft.SharedConstants; @@ -48,11 +47,9 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.LevelResource; import org.bukkit.Bukkit; -import org.bukkit.FeatureFlag; import org.bukkit.Keyed; import org.bukkit.Material; import org.bukkit.NamespacedKey; -import org.bukkit.Registry; import org.bukkit.UnsafeValues; import org.bukkit.World; import org.bukkit.advancement.Advancement; @@ -66,14 +63,12 @@ import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.craftbukkit.block.CraftBiome; import org.bukkit.craftbukkit.block.data.CraftBlockData; -import org.bukkit.craftbukkit.damage.CraftDamageEffect; import org.bukkit.craftbukkit.damage.CraftDamageSourceBuilder; import org.bukkit.craftbukkit.entity.CraftEntity; import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.craftbukkit.legacy.CraftLegacy; import org.bukkit.craftbukkit.legacy.FieldRename; import org.bukkit.craftbukkit.potion.CraftPotionType; -import org.bukkit.damage.DamageEffect; import org.bukkit.damage.DamageSource; import org.bukkit.damage.DamageType; import org.bukkit.enchantments.Enchantment; @@ -495,7 +490,7 @@ public final class CraftMagicNumbers implements UnsafeValues { } @Override - public B get(Registry registry, NamespacedKey namespacedKey) { + public B get(RegistryKey registry, NamespacedKey namespacedKey) { // We currently do not have any version-dependent remapping, so we can use current version return CraftRegistry.get(registry, namespacedKey, ApiVersion.CURRENT); } diff --git a/paper-server/src/test/java/org/bukkit/registry/PerRegistryTest.java b/paper-server/src/test/java/org/bukkit/registry/PerRegistryTest.java index 319e00051..0ce400166 100644 --- a/paper-server/src/test/java/org/bukkit/registry/PerRegistryTest.java +++ b/paper-server/src/test/java/org/bukkit/registry/PerRegistryTest.java @@ -34,11 +34,11 @@ public class PerRegistryTest { try { Object object = registryField.get(null); // Ignore Bukkit's default SimpleRegistry. It cannot be tested correctly - if (!(object instanceof CraftRegistry registry)) { + if (object instanceof Registry.NotARegistry) { continue; } - data.add(Arguments.of(registry)); + data.add(Arguments.of(object)); } catch (ReflectiveOperationException e) { e.printStackTrace(); } diff --git a/paper-server/src/test/java/org/bukkit/registry/RegistryConversionTest.java b/paper-server/src/test/java/org/bukkit/registry/RegistryConversionTest.java index 293af3511..49b8fdb1a 100644 --- a/paper-server/src/test/java/org/bukkit/registry/RegistryConversionTest.java +++ b/paper-server/src/test/java/org/bukkit/registry/RegistryConversionTest.java @@ -1,8 +1,5 @@ package org.bukkit.registry; -import static org.junit.jupiter.api.Assertions.*; -import static org.junit.jupiter.api.Assumptions.*; -import static org.mockito.Mockito.*; import com.google.common.base.Joiner; import io.papermc.paper.registry.RegistryKey; import java.lang.reflect.InvocationTargetException; @@ -13,7 +10,6 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; import net.minecraft.resources.ResourceKey; -import org.bukkit.Bukkit; import org.bukkit.Keyed; import org.bukkit.Registry; import org.bukkit.craftbukkit.util.Handleable; @@ -25,6 +21,13 @@ import org.junit.jupiter.api.Order; import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.params.provider.Arguments; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; +import static org.junit.jupiter.api.Assumptions.assumeFalse; +import static org.junit.jupiter.api.Assumptions.assumeTrue; +import static org.mockito.Mockito.mock; + @AllFeatures @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class RegistryConversionTest { @@ -260,7 +263,7 @@ public class RegistryConversionTest { Joiner.on('\n').withKeyValueSeparator(" got: ").join(notMatching))); } - static final Set> IGNORE_FOR_DIRECT_HOLDER = Set.of(RegistryKey.TRIM_MATERIAL, RegistryKey.TRIM_PATTERN, RegistryKey.INSTRUMENT, RegistryKey.PAINTING_VARIANT, RegistryKey.BANNER_PATTERN, RegistryKey.SOUND_EVENT); // Paper + static final Set> IGNORE_FOR_DIRECT_HOLDER = Set.of(RegistryKey.TRIM_MATERIAL, RegistryKey.TRIM_PATTERN, RegistryKey.INSTRUMENT, RegistryKey.PAINTING_VARIANT, RegistryKey.BANNER_PATTERN, RegistryKey.SOUND_EVENT, RegistryKey.ENCHANTMENT); // Paper /** * Minecraft registry can return a default key / value