diff --git a/Spigot-Server-Patches/0766-Use-correct-WorldDimension-registry-when-loading-def.patch b/Spigot-Server-Patches/0766-Use-correct-WorldDimension-registry-when-loading-def.patch new file mode 100644 index 0000000000..d6514c2031 --- /dev/null +++ b/Spigot-Server-Patches/0766-Use-correct-WorldDimension-registry-when-loading-def.patch @@ -0,0 +1,49 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> +Date: Sat, 16 Oct 2021 17:38:35 -0700 +Subject: [PATCH] Use correct WorldDimension registry when loading default + end/nether + + +diff --git a/src/main/java/net/minecraft/core/IRegistry.java b/src/main/java/net/minecraft/core/IRegistry.java +index 4f04d8081912e0fe771f0db9e086c789328f246f..2262c1b30682c445a5c370e267a0fce96244fdb8 100644 +--- a/src/main/java/net/minecraft/core/IRegistry.java ++++ b/src/main/java/net/minecraft/core/IRegistry.java +@@ -391,6 +391,7 @@ public abstract class IRegistry implements Codec, Keyable, Registry { + @Override + public abstract int a(@Nullable T t0); + ++ @Nullable public final T get(@Nullable ResourceKey resourcekey) { return this.a(resourcekey); } // Paper - OBFHELPER + @Nullable + public abstract T a(@Nullable ResourceKey resourcekey); + +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index bf80e870e6a2a6fe1d4ae1bea355bcd7a0735d3b..0737009363635c677246642f371847c9100e49a8 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -523,7 +523,12 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant list = ImmutableList.of(new MobSpawnerPhantom(), new MobSpawnerPatrol(), new MobSpawnerCat(), new VillageSiege(), new MobSpawnerTrader(iworlddataserver)); +- WorldDimension worlddimension = (WorldDimension) registrymaterials.a(dimensionKey); ++ // Paper start - Use correct WorldDimension registry ++ WorldDimension worlddimension = generatorsettings.dimensions().get(dimensionKey); ++ if (worlddimension == null) { ++ worlddimension = registrymaterials.get(dimensionKey); ++ } ++ // Paper end + DimensionManager dimensionmanager; + ChunkGenerator chunkgenerator; + +diff --git a/src/main/java/net/minecraft/world/level/levelgen/GeneratorSettings.java b/src/main/java/net/minecraft/world/level/levelgen/GeneratorSettings.java +index 5d9fd65b91ed7f3d66f36e900b12522876e0e22f..b345a08d47319a038f64c3d5a01292342b266a6e 100644 +--- a/src/main/java/net/minecraft/world/level/levelgen/GeneratorSettings.java ++++ b/src/main/java/net/minecraft/world/level/levelgen/GeneratorSettings.java +@@ -140,6 +140,7 @@ public class GeneratorSettings { + return registrymaterials1; + } + ++ public final RegistryMaterials dimensions() { return this.d(); } // Paper - OBFHELPER + public RegistryMaterials d() { + return this.f; + }