diff --git a/patches/server/0775-Rewrite-dataconverter-system.patch b/patches/server/0775-Rewrite-dataconverter-system.patch index 00223c15a..99efaf889 100644 --- a/patches/server/0775-Rewrite-dataconverter-system.patch +++ b/patches/server/0775-Rewrite-dataconverter-system.patch @@ -21672,6 +21672,19 @@ index d73b99d7fde724da4503b5176c3ad7b013197c6a..ec7aa86514f89042c885c0515f074431 OptionalDynamic optionalDynamic = dynamic2.get("Sections"); for(int l = this.levelHeightAccessor.getMinSection(); l < this.levelHeightAccessor.getMaxSection(); ++l) { +diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java +index fa75190ef5fe322a4c78e62b2159bdf18fd014bb..22d3fd0b1951e72ac0315bfc6ab39531f0b2d075 100644 +--- a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java ++++ b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java +@@ -128,7 +128,7 @@ public class StructureCheck { + + CompoundTag compoundTag2; + try { +- compoundTag2 = NbtUtils.update(this.fixerUpper, DataFixTypes.CHUNK, compoundTag, i); ++ compoundTag2 = ca.spottedleaf.dataconverter.minecraft.MCDataConverter.convertTag(ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.CHUNK, compoundTag, i, net.minecraft.SharedConstants.getCurrentVersion().getWorldVersion()); // Paper - replace chunk converter + } catch (Exception var12) { + LOGGER.warn("Failed to partially datafix chunk {}", pos, var12); + return StructureCheckResult.CHUNK_LOAD_NEEDED; diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java index 6727468946ea5f60bd80549f827a7c2b9a42b98b..35c39aed9583275ef25d32c783715798b52bdb63 100644 --- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java diff --git a/patches/server/0878-Fix-missing-Level-LevelStem-in-StructureCheck-from-C.patch b/patches/server/0878-Fix-missing-Level-LevelStem-in-StructureCheck-from-C.patch new file mode 100644 index 000000000..35c353cd5 --- /dev/null +++ b/patches/server/0878-Fix-missing-Level-LevelStem-in-StructureCheck-from-C.patch @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Spottedleaf +Date: Fri, 25 Feb 2022 07:14:48 -0800 +Subject: [PATCH] Fix missing Level -> LevelStem in StructureCheck from CB + +Need to use the right for injectDatafixingContext + +diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java +index 835a17cd4ec487271ba28232280dd0fbf2687c4b..768017ba650f1bd96e3db0aad8fda939e2ea7add 100644 +--- a/src/main/java/net/minecraft/server/level/ServerLevel.java ++++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +@@ -532,7 +532,7 @@ public class ServerLevel extends Level implements WorldGenLevel { + + long l = minecraftserver.getWorldData().worldGenSettings().seed(); + +- this.structureCheck = new StructureCheck(this.chunkSource.chunkScanner(), this.registryAccess(), minecraftserver.getStructureManager(), resourcekey, chunkgenerator, this, chunkgenerator.getBiomeSource(), l, datafixer); ++ this.structureCheck = new StructureCheck(this.chunkSource.chunkScanner(), this.registryAccess(), minecraftserver.getStructureManager(), this.getTypeKey(), chunkgenerator, this, chunkgenerator.getBiomeSource(), l, datafixer); // Paper - Fix missing CB diff + this.structureFeatureManager = new StructureFeatureManager(this, this.serverLevelData.worldGenSettings(), this.structureCheck); // CraftBukkit + if (this.dimensionType().createDragonFight()) { + this.dragonFight = new EndDragonFight(this, this.serverLevelData.worldGenSettings().seed(), this.serverLevelData.endDragonFightData()); // CraftBukkit +diff --git a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java +index 22d3fd0b1951e72ac0315bfc6ab39531f0b2d075..07379c20433a990a74df2c752f69457c76527cf4 100644 +--- a/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java ++++ b/src/main/java/net/minecraft/world/level/levelgen/structure/StructureCheck.java +@@ -47,7 +47,7 @@ public class StructureCheck { + private final RegistryAccess registryAccess; + private final Registry biomes; + private final StructureManager structureManager; +- private final ResourceKey dimension; ++ private final ResourceKey dimension; // Paper - fix missing CB diff + private final ChunkGenerator chunkGenerator; + private final LevelHeightAccessor heightAccessor; + private final BiomeSource biomeSource; +@@ -56,7 +56,7 @@ public class StructureCheck { + private final Long2ObjectMap>> loadedChunks = new Long2ObjectOpenHashMap<>(); + private final Map, Long2BooleanMap> featureChecks = new HashMap<>(); + +- public StructureCheck(ChunkScanAccess chunkIoWorker, RegistryAccess registryManager, StructureManager structureManager, ResourceKey worldKey, ChunkGenerator chunkGenerator, LevelHeightAccessor world, BiomeSource biomeSource, long seed, DataFixer dataFixer) { ++ public StructureCheck(ChunkScanAccess chunkIoWorker, RegistryAccess registryManager, StructureManager structureManager, ResourceKey worldKey, ChunkGenerator chunkGenerator, LevelHeightAccessor world, BiomeSource biomeSource, long seed, DataFixer dataFixer) { // Paper - fix missing CB diff + this.storageAccess = chunkIoWorker; + this.registryAccess = registryManager; + this.structureManager = structureManager;