From 7af71a460f748c841d986282e342864dbe5aff62 Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Sun, 4 Apr 2021 14:02:32 +1000 Subject: [PATCH] SPIGOT-6237: WorldCreator#generatorSettings not working By: Martoph --- .../level/levelgen/GeneratorSettings.patch | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 paper-server/nms-patches/net/minecraft/world/level/levelgen/GeneratorSettings.patch diff --git a/paper-server/nms-patches/net/minecraft/world/level/levelgen/GeneratorSettings.patch b/paper-server/nms-patches/net/minecraft/world/level/levelgen/GeneratorSettings.patch new file mode 100644 index 0000000000..72b8da69c5 --- /dev/null +++ b/paper-server/nms-patches/net/minecraft/world/level/levelgen/GeneratorSettings.patch @@ -0,0 +1,36 @@ +--- a/net/minecraft/world/level/levelgen/GeneratorSettings.java ++++ b/net/minecraft/world/level/levelgen/GeneratorSettings.java +@@ -34,9 +34,14 @@ + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; + ++// CraftBukkit start ++import net.minecraft.resources.RegistryReadOps; ++import net.minecraft.server.packs.resources.IResourceManager; ++// CraftBukkit end ++ + public class GeneratorSettings { + +- public static final Codec a = RecordCodecBuilder.create((instance) -> { ++ public static final Codec a = RecordCodecBuilder.create((instance) -> { // CraftBukkit - decompile error + return instance.group(Codec.LONG.fieldOf("seed").stable().forGetter(GeneratorSettings::getSeed), Codec.BOOL.fieldOf("generate_features").orElse(true).stable().forGetter(GeneratorSettings::shouldGenerateMapFeatures), Codec.BOOL.fieldOf("bonus_chest").orElse(false).stable().forGetter(GeneratorSettings::c), RegistryMaterials.b(IRegistry.M, Lifecycle.stable(), WorldDimension.a).xmap(WorldDimension::a, Function.identity()).fieldOf("dimensions").forGetter(GeneratorSettings::d), Codec.STRING.optionalFieldOf("legacy_custom_options").stable().forGetter((generatorsettings) -> { + return generatorsettings.g; + })).apply(instance, instance.stable(GeneratorSettings::new)); +@@ -120,7 +125,7 @@ + public static RegistryMaterials a(RegistryMaterials registrymaterials, Supplier supplier, ChunkGenerator chunkgenerator) { + RegistryMaterials registrymaterials1 = new RegistryMaterials<>(IRegistry.M, Lifecycle.experimental()); + +- registrymaterials1.a(WorldDimension.OVERWORLD, (Object) (new WorldDimension(supplier, chunkgenerator)), Lifecycle.stable()); ++ registrymaterials1.a(WorldDimension.OVERWORLD, (new WorldDimension(supplier, chunkgenerator)), Lifecycle.stable()); // CraftBukkit - decompile error + Iterator iterator = registrymaterials.d().iterator(); + + while (iterator.hasNext()) { +@@ -229,7 +234,7 @@ + switch (b0) { + case 0: + JsonObject jsonobject = !s.isEmpty() ? ChatDeserializer.a(s) : new JsonObject(); +- Dynamic dynamic = new Dynamic(JsonOps.INSTANCE, jsonobject); ++ Dynamic dynamic = new Dynamic(RegistryReadOps.a(JsonOps.INSTANCE, IResourceManager.Empty.INSTANCE, (IRegistryCustom.Dimension) iregistrycustom), jsonobject); // CraftBukkit - SPIGOT-6237 + DataResult dataresult = GeneratorSettingsFlat.a.parse(dynamic); + Logger logger = GeneratorSettings.LOGGER; +