fix config pack fetching on server

This commit is contained in:
dfsek 2022-04-17 21:11:30 -07:00
parent 78503cf1b7
commit b0c6dc612f

View File

@ -17,6 +17,8 @@
package com.dfsek.terra.fabric.mixin.lifecycle.server; package com.dfsek.terra.fabric.mixin.lifecycle.server;
import com.dfsek.terra.api.registry.CheckedRegistry;
import net.minecraft.server.dedicated.ServerPropertiesHandler; import net.minecraft.server.dedicated.ServerPropertiesHandler;
import net.minecraft.structure.StructureSet; import net.minecraft.structure.StructureSet;
import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.util.registry.DynamicRegistryManager;
@ -32,6 +34,7 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.util.Locale;
import java.util.Random; import java.util.Random;
import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.config.ConfigPack;
@ -59,7 +62,7 @@ public abstract class GeneratorOptionsMixin {
String levelType = properties.levelType(); String levelType = properties.levelType();
if(levelType.startsWith("Terra")) { if(levelType.toLowerCase(Locale.ROOT).startsWith("terra")) {
String seedProperty = properties.levelSeed(); String seedProperty = properties.levelSeed();
long seed = new Random().nextLong(); long seed = new Random().nextLong();
if(seedProperty != null) { if(seedProperty != null) {
@ -85,8 +88,11 @@ public abstract class GeneratorOptionsMixin {
String pack = levelType.substring(levelType.indexOf(":") + 1); String pack = levelType.substring(levelType.indexOf(":") + 1);
ConfigPack config = main.getConfigRegistry().getByID(pack).orElseThrow(() -> new IllegalArgumentException( CheckedRegistry<ConfigPack> configRegistry = main.getConfigRegistry();
"No such pack " + pack)); ConfigPack config = configRegistry
.getByID(pack)
.or(() -> configRegistry.getByID(pack.toUpperCase(Locale.ROOT)))
.orElseThrow(() -> new IllegalArgumentException("No such pack " + pack));
cir.setReturnValue( cir.setReturnValue(
new GeneratorOptions(seed, new GeneratorOptions(seed,