From 2075ed101b5d222f725f660c09d06fa975daec60 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 23 Mar 2022 21:51:42 -0700 Subject: [PATCH] fix GeneratorOptionsMixin --- .../server/GeneratorOptionsMixin.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java index 3d2c56d82..dd5536386 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java @@ -17,10 +17,16 @@ package com.dfsek.terra.fabric.mixin.lifecycle.server; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.fabric.FabricEntryPoint; +import com.dfsek.terra.fabric.PlatformImpl; +import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; +import com.dfsek.terra.fabric.generation.TerraBiomeSource; + +import net.minecraft.server.dedicated.ServerPropertiesHandler; import net.minecraft.structure.StructureSet; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.util.registry.Registry; -import net.minecraft.util.registry.SimpleRegistry; import net.minecraft.world.biome.Biome; import net.minecraft.world.dimension.DimensionOptions; import net.minecraft.world.dimension.DimensionType; @@ -31,34 +37,30 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import java.util.Properties; import java.util.Random; import java.util.function.Supplier; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.fabric.FabricEntryPoint; -import com.dfsek.terra.fabric.PlatformImpl; -import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper; -import com.dfsek.terra.fabric.generation.TerraBiomeSource; - @Mixin(GeneratorOptions.class) public abstract class GeneratorOptionsMixin { - @Inject(method = "fromProperties(Lnet/minecraft/util/registry/DynamicRegistryManager;Ljava/util/Properties;)" + + @Inject(method = "fromProperties(Lnet/minecraft/util/registry/DynamicRegistryManager;" + + "Lnet/minecraft/server/dedicated/ServerPropertiesHandler$WorldGenProperties;)" + "Lnet/minecraft/world/gen/GeneratorOptions;", at = @At("HEAD"), cancellable = true) - private static void fromProperties(DynamicRegistryManager manager, Properties properties, + private static void fromProperties(DynamicRegistryManager manager, + ServerPropertiesHandler.WorldGenProperties properties, CallbackInfoReturnable cir) { - if(properties.get("level-type") == null) { + if(properties.levelType() == null) { return; } PlatformImpl main = FabricEntryPoint.getPlatform(); - String prop = properties.get("level-type").toString().trim(); - if(prop.startsWith("Terra")) { - String seedProperty = (String) properties.get("level-seed"); + String levelType = properties.levelType(); + + if(levelType.startsWith("Terra")) { + String seedProperty = properties.levelSeed(); long seed = new Random().nextLong(); if(seedProperty != null) { try { @@ -71,8 +73,7 @@ public abstract class GeneratorOptionsMixin { } } - String generate_structures = (String) properties.get("generate-structures"); - boolean generateStructures = generate_structures == null || Boolean.parseBoolean(generate_structures); + boolean generateStructures = properties.generateStructures(); Registry dimensionTypes = manager.get(Registry.DIMENSION_TYPE_KEY); Registry biomeRegistry = manager.get(Registry.BIOME_KEY); Registry dimensionOptions = DimensionType.createDefaultDimensionOptions(manager, seed, false); @@ -82,11 +83,10 @@ public abstract class GeneratorOptionsMixin { settingsSupplier = () -> chunkGeneratorSettingsRegistry.getOrThrow(ChunkGeneratorSettings.OVERWORLD); Registry noiseRegistry = manager.get(Registry.STRUCTURE_SET_KEY); - prop = prop.substring(prop.indexOf(":") + 1); + String pack = levelType.substring(levelType.indexOf(":") + 1); - String finalProp = prop; - ConfigPack config = main.getConfigRegistry().getByID(prop).orElseThrow(() -> new IllegalArgumentException( - "No such pack " + finalProp)); + ConfigPack config = main.getConfigRegistry().getByID(pack).orElseThrow(() -> new IllegalArgumentException( + "No such pack " + pack)); cir.setReturnValue( new GeneratorOptions(seed,