diff --git a/patches/server/MC-Dev-fixes.patch b/patches/server/MC-Dev-fixes.patch index 7853585ce..e91450d1d 100644 --- a/patches/server/MC-Dev-fixes.patch +++ b/patches/server/MC-Dev-fixes.patch @@ -182,6 +182,30 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @Override public void write(FriendlyByteBuf buf) { buf.writeInt(this.playerId); +diff --git a/src/main/java/net/minecraft/resources/RegistryLoader.java b/src/main/java/net/minecraft/resources/RegistryLoader.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/resources/RegistryLoader.java ++++ b/src/main/java/net/minecraft/resources/RegistryLoader.java +@@ -0,0 +0,0 @@ public class RegistryLoader { + } + + private RegistryLoader.ReadCache readCache(ResourceKey> registryRef) { +- return this.readCache.computeIfAbsent(registryRef, (ref) -> { ++ return (RegistryLoader.ReadCache) this.readCache.computeIfAbsent(registryRef, (ref) -> { // Paper - decompile fix + return new RegistryLoader.ReadCache(); + }); + } +@@ -0,0 +0,0 @@ public class RegistryLoader { + } + + public static record Bound(RegistryAccess.Writable access, RegistryLoader loader) { +- public Bound(RegistryAccess.Writable writable, RegistryLoader registryLoader) { +- this.access = writable; +- this.loader = registryLoader; +- } + + public DataResult> overrideRegistryFromResources(ResourceKey> registryRef, Codec codec, DynamicOps ops) { + WritableRegistry writableRegistry = this.access.ownedWritableRegistryOrThrow(registryRef); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/patches/server/Use-correct-LevelStem-registry-when-loading-default-.patch b/patches/server/Use-correct-LevelStem-registry-when-loading-default-.patch index 72ef87c49..b67386232 100644 --- a/patches/server/Use-correct-LevelStem-registry-when-loading-default-.patch +++ b/patches/server/Use-correct-LevelStem-registry-when-loading-default-.patch @@ -4,7 +4,25 @@ Date: Sat, 16 Oct 2021 17:38:35 -0700 Subject: [PATCH] Use correct LevelStem registry when loading default end/nether +Co-authored-by: Jake Potrebic +diff --git a/src/main/java/net/minecraft/resources/RegistryLoader.java b/src/main/java/net/minecraft/resources/RegistryLoader.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/resources/RegistryLoader.java ++++ b/src/main/java/net/minecraft/resources/RegistryLoader.java +@@ -0,0 +0,0 @@ public class RegistryLoader { + RegistryLoader.ReadCache readCache = this.readCache(registryRef); + DataResult> dataResult = readCache.values.get(entryKey); + if (dataResult != null) { ++ // Paper start - register in registry due to craftbukkit running this 3 times instead of once ++ if (registryRef == (ResourceKey) Registry.LEVEL_STEM_REGISTRY && dataResult.result().isPresent()) { ++ // OptionalInt.empty() because the LevelStem registry is only loaded from the resource manager, not the InMemory resource access ++ registry.registerOrOverride(java.util.OptionalInt.empty(), entryKey, dataResult.result().get().value(), dataResult.lifecycle()); ++ } ++ // Paper end + return dataResult; + } else { + Holder holder = registry.getOrCreateHolder(entryKey); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java