From 2cac3f6a43ecb384fdca0812987daa43579bd4fd Mon Sep 17 00:00:00 2001 From: Cryptite Date: Mon, 1 May 2023 09:56:47 -0500 Subject: [PATCH] Fix MappedRegistry work with regards to how to register custom biomes --- gradle.properties | 2 +- .../0021-Equipment-Packet-Caching.patch | 26 ++++++++---- .../0027-Do-not-freeze-MappedRegistry.patch | 42 +++++++++++++++++++ patches/server/0027-Ignore-freeze-check.patch | 23 ---------- 4 files changed, 60 insertions(+), 33 deletions(-) create mode 100644 patches/server/0027-Do-not-freeze-MappedRegistry.patch delete mode 100644 patches/server/0027-Ignore-freeze-check.patch diff --git a/gradle.properties b/gradle.properties index be92efd9d..d48b8401e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=com.lokamc.slice version=1.19.4-R0.1-SNAPSHOT mcVersion=1.19.4 -paperRef=2cccbbe1f42b9893fae9e72ad77ca15dc59a6d9b +paperRef=bcec5b11e6728f3eb3078aa4fcc8e87f3d545ec2 org.gradle.caching=true org.gradle.parallel=true diff --git a/patches/server/0021-Equipment-Packet-Caching.patch b/patches/server/0021-Equipment-Packet-Caching.patch index 2eee099cc..9ccdac55f 100644 --- a/patches/server/0021-Equipment-Packet-Caching.patch +++ b/patches/server/0021-Equipment-Packet-Caching.patch @@ -5,14 +5,14 @@ Subject: [PATCH] Equipment Packet Caching diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 8d442c5a498ecf288a0cc0c54889c6e2fda849ce..8fc13d7b004da228fc58554ea5058ef8e58833a4 100644 +index 8d442c5a498ecf288a0cc0c54889c6e2fda849ce..1530d48a67ae548fd088edd3d575a1b8f694eb48 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -286,5 +286,6 @@ public class GlobalConfiguration extends ConfigurationPart { public boolean lagCompensateBlockBreaking = true; public boolean useDimensionTypeForCustomSpawners = false; public boolean strictAdvancementDimensionCheck = false; -+ public String sharedDataFolder; // Slice ++ public String sharedDataFolder = ""; } } diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java @@ -36,10 +36,18 @@ index 5a8f850b447fc3a4bd0eb0c505bbdfc8be7115e8..34d74735b7a7d258c6bd14bb7e540693 this.entity = buf.readVarInt(); EquipmentSlot[] equipmentSlots = EquipmentSlot.values(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fa14ab3d8117e9d357380d21d3c6a2cd1df7c04c..bf79373dd6a0cf1e8252555d43012371390a51c7 100644 +index fa14ab3d8117e9d357380d21d3c6a2cd1df7c04c..e5462d8d3f89c93c7c691a4759860be1ff8117fc 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -313,6 +313,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); -@@ -413,6 +414,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop +Date: Tue, 25 Apr 2023 09:05:16 -0500 +Subject: [PATCH] Do not freeze MappedRegistry + + +diff --git a/src/main/java/net/minecraft/core/MappedRegistry.java b/src/main/java/net/minecraft/core/MappedRegistry.java +index 1e33434f9f361542e03da3e4812bc6d76768a202..828d9472bf90fe098825c15bc55949497a40ae39 100644 +--- a/src/main/java/net/minecraft/core/MappedRegistry.java ++++ b/src/main/java/net/minecraft/core/MappedRegistry.java +@@ -338,7 +338,7 @@ public class MappedRegistry implements WritableRegistry { + if (this.frozen) { + return this; + } else { +- this.frozen = true; ++// this.frozen = true; // Slice + this.byValue.forEach((value, entry) -> { + entry.bindValue(value); + }); +@@ -365,14 +365,16 @@ public class MappedRegistry implements WritableRegistry { + + @Override + public Holder.Reference createIntrusiveHolder(T value) { ++ // Slice start + if (this.unregisteredIntrusiveHolders == null) { +- throw new IllegalStateException("This registry can't create intrusive holders"); +- } else { +- this.validateWrite(); +- return this.unregisteredIntrusiveHolders.computeIfAbsent(value, (valuex) -> { +- return Holder.Reference.createIntrusive(this.asLookup(), valuex); +- }); ++ this.unregisteredIntrusiveHolders = new HashMap<>(); + } ++ // Slice end ++ ++ this.validateWrite(); ++ return this.unregisteredIntrusiveHolders.computeIfAbsent(value, (valuex) -> { ++ return Holder.Reference.createIntrusive(this.asLookup(), valuex); ++ }); + } + + @Override diff --git a/patches/server/0027-Ignore-freeze-check.patch b/patches/server/0027-Ignore-freeze-check.patch deleted file mode 100644 index a72653b95..000000000 --- a/patches/server/0027-Ignore-freeze-check.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Cryptite -Date: Tue, 25 Apr 2023 09:05:16 -0500 -Subject: [PATCH] Ignore freeze check - - -diff --git a/src/main/java/net/minecraft/core/MappedRegistry.java b/src/main/java/net/minecraft/core/MappedRegistry.java -index 1e33434f9f361542e03da3e4812bc6d76768a202..4f0632ce9b47196e4181408aff84acaa1ddd9aff 100644 ---- a/src/main/java/net/minecraft/core/MappedRegistry.java -+++ b/src/main/java/net/minecraft/core/MappedRegistry.java -@@ -123,9 +123,9 @@ public class MappedRegistry implements WritableRegistry { - } - - private void validateWrite(ResourceKey key) { -- if (this.frozen) { -- throw new IllegalStateException("Registry is already frozen (trying to add key " + key + ")"); -- } -+// if (this.frozen) { -+// throw new IllegalStateException("Registry is already frozen (trying to add key " + key + ")"); -+// } - } - - @Override