diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java index a79a363da..4c670a7d1 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/listeners/CommonListener.java @@ -95,14 +95,15 @@ public class CommonListener implements Listener { NamespacedKey biomeKey = wolf.getWorld().getBiome(wolf.getLocation()).getKey(); pack.getBiomeProvider().stream() - .filter(biome -> ((BukkitPlatformBiome) biome.getPlatformBiome()).getHandle() - .getKey().equals(biomeKey)) + .filter(biome -> { + NamespacedKey key = ((BukkitPlatformBiome) biome.getPlatformBiome()).getContext() + .get(BukkitBiomeInfo.class) + .biomeKey(); + return key.equals(biomeKey); + }) .findFirst() .ifPresent(biome -> { - NamespacedKey vanillaBiomeKey = ((BukkitPlatformBiome) biome.getPlatformBiome()).getContext() - .get(BukkitBiomeInfo.class) - .vanillaBiomeKey(); - + NamespacedKey vanillaBiomeKey = ((BukkitPlatformBiome) biome.getPlatformBiome()).getHandle().getKey(); switch(vanillaBiomeKey.toString()) { case "minecraft:snowy_taiga" -> wolf.setVariant(Variant.ASHEN); case "minecraft:old_growth_pine_taiga" -> wolf.setVariant(Variant.BLACK); diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/BukkitBiomeInfo.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/BukkitBiomeInfo.java index 8db2a2cfb..7e0499c0c 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/BukkitBiomeInfo.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/BukkitBiomeInfo.java @@ -5,4 +5,4 @@ import com.dfsek.terra.api.properties.Properties; import org.bukkit.NamespacedKey; -public record BukkitBiomeInfo(NamespacedKey vanillaBiomeKey) implements Properties {} +public record BukkitBiomeInfo(NamespacedKey biomeKey) implements Properties {} diff --git a/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/AwfulBukkitHacks.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/AwfulBukkitHacks.java index 7e69ebe31..5411fdcac 100644 --- a/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/AwfulBukkitHacks.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/AwfulBukkitHacks.java @@ -56,15 +56,14 @@ public class AwfulBukkitHacks { Biome platform = NMSBiomeInjector.createBiome(biomeRegistry.get(vanillaMinecraftKey).orElseThrow().value(), vanillaBiomeProperties); - ResourceKey delegateKey = ResourceKey.create( - Registries.BIOME, - ResourceLocation.fromNamespaceAndPath("terra", NMSBiomeInjector.createBiomeID(pack, key)) - ); + ResourceLocation delegateMinecraftKey = ResourceLocation.fromNamespaceAndPath("terra", NMSBiomeInjector.createBiomeID(pack, key)); + NamespacedKey delegateBukkitKey = NamespacedKey.fromString(delegateMinecraftKey.toString()); + ResourceKey delegateKey = ResourceKey.create(Registries.BIOME, delegateMinecraftKey); Reference holder = biomeRegistry.register(delegateKey, platform, RegistrationInfo.BUILT_IN); Reflection.REFERENCE.invokeBindValue(holder, platform); // IMPORTANT: bind holder. - platformBiome.getContext().put(new BukkitBiomeInfo(vanillaBukkitKey)); + platformBiome.getContext().put(new BukkitBiomeInfo(delegateBukkitKey)); platformBiome.getContext().put(new NMSBiomeInfo(delegateKey)); terraBiomeMap.computeIfAbsent(vanillaMinecraftKey, i -> new ArrayList<>()).add(delegateKey.location());