diff --git a/src/main/java/org/betterx/bclib/mixin/common/DedicatedServerPropertiesMixin.java b/src/main/java/org/betterx/bclib/mixin/common/DedicatedServerPropertiesMixin.java index 2efe93a3..8642a0c0 100644 --- a/src/main/java/org/betterx/bclib/mixin/common/DedicatedServerPropertiesMixin.java +++ b/src/main/java/org/betterx/bclib/mixin/common/DedicatedServerPropertiesMixin.java @@ -13,6 +13,6 @@ public class DedicatedServerPropertiesMixin { //Make sure the default server properties use our Default World Preset @ModifyArg(method = "", index = 3, at = @At(value = "INVOKE", target = "Lnet/minecraft/server/dedicated/DedicatedServerProperties$WorldGenProperties;(Ljava/lang/String;Lcom/google/gson/JsonObject;ZLjava/lang/String;)V")) private String bcl_init(String levelType) { - return WorldPresets.DEFAULT.location().toString(); + return WorldPresets.getDEFAULT().location().toString(); } } diff --git a/src/main/java/org/betterx/bclib/registry/PresetsRegistry.java b/src/main/java/org/betterx/bclib/registry/PresetsRegistry.java index b0210814..5fb40084 100644 --- a/src/main/java/org/betterx/bclib/registry/PresetsRegistry.java +++ b/src/main/java/org/betterx/bclib/registry/PresetsRegistry.java @@ -44,7 +44,7 @@ public class PresetsRegistry { false ); - WorldPresets.DEFAULT = BCL_WORLD; + WorldPresets.setDEFAULT(BCL_WORLD); } public static TogetherWorldPreset buildPreset( diff --git a/src/main/java/org/betterx/worlds/together/levelgen/WorldGenUtil.java b/src/main/java/org/betterx/worlds/together/levelgen/WorldGenUtil.java index a0dba0dc..f4f2c514 100644 --- a/src/main/java/org/betterx/worlds/together/levelgen/WorldGenUtil.java +++ b/src/main/java/org/betterx/worlds/together/levelgen/WorldGenUtil.java @@ -58,7 +58,7 @@ public class WorldGenUtil { boolean generateBonusChest ) { return createWorldFromPreset( - WorldPresets.DEFAULT, + WorldPresets.getDEFAULT(), registryAccess, seed, generateStructures, diff --git a/src/main/java/org/betterx/worlds/together/mixin/client/CreateWorldScreenMixin.java b/src/main/java/org/betterx/worlds/together/mixin/client/CreateWorldScreenMixin.java index 015ef50d..1d3f9c22 100644 --- a/src/main/java/org/betterx/worlds/together/mixin/client/CreateWorldScreenMixin.java +++ b/src/main/java/org/betterx/worlds/together/mixin/client/CreateWorldScreenMixin.java @@ -46,7 +46,7 @@ public class CreateWorldScreenMixin { //Change the WorldPreset that is selected by default on the Create World Screen @ModifyArg(method = "openFresh", index = 1, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/worldselection/WorldGenSettingsComponent;(Lnet/minecraft/client/gui/screens/worldselection/WorldCreationContext;Ljava/util/Optional;Ljava/util/OptionalLong;)V")) private static Optional> bcl_NewDefault(Optional> preset) { - return Optional.of(WorldPresets.DEFAULT); + return Optional.of(WorldPresets.getDEFAULT()); } //Make sure the WorldGenSettings used to populate the create screen match the default WorldPreset diff --git a/src/main/java/org/betterx/worlds/together/mixin/common/WorldGenPropertiesMixin.java b/src/main/java/org/betterx/worlds/together/mixin/common/WorldGenPropertiesMixin.java index 3b7e4773..dfd9a13f 100644 --- a/src/main/java/org/betterx/worlds/together/mixin/common/WorldGenPropertiesMixin.java +++ b/src/main/java/org/betterx/worlds/together/mixin/common/WorldGenPropertiesMixin.java @@ -20,6 +20,6 @@ public class WorldGenPropertiesMixin { //Make sure Servers use our Default World Preset @ModifyArg(method = "create", at = @At(value = "INVOKE", ordinal = 0, target = "Lnet/minecraft/core/Registry;getHolder(Lnet/minecraft/resources/ResourceKey;)Ljava/util/Optional;")) private ResourceKey bcl_foo(ResourceKey resourceKey) { - return WorldPresets.DEFAULT; + return WorldPresets.getDEFAULT(); } } \ No newline at end of file diff --git a/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java b/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java index ad069cdb..5069aece 100644 --- a/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java +++ b/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java @@ -72,7 +72,7 @@ public class WorldBootstrap { private static Holder defaultServerPreset() { return WorldPresets.get( LAST_REGISTRY_ACCESS, - WorldPresets.DEFAULT + WorldPresets.getDEFAULT() ); } diff --git a/src/main/java/org/betterx/worlds/together/worldPreset/TogetherWorldPreset.java b/src/main/java/org/betterx/worlds/together/worldPreset/TogetherWorldPreset.java index 0d8b232a..4cc2d82c 100644 --- a/src/main/java/org/betterx/worlds/together/worldPreset/TogetherWorldPreset.java +++ b/src/main/java/org/betterx/worlds/together/worldPreset/TogetherWorldPreset.java @@ -105,7 +105,7 @@ public class TogetherWorldPreset extends WorldPreset { final RegistryAccess registryAccess = WorldBootstrap.getLastRegistryAccessOrElseBuiltin(); final RegistryOps registryOps = RegistryOps.create(NbtOps.INSTANCE, registryAccess); if (DEFAULT_DIMENSIONS_WRAPPER == null) { - DEFAULT_DIMENSIONS_WRAPPER = new DimensionsWrapper(TogetherWorldPreset.getDimensionsMap(WorldPresets.DEFAULT)); + DEFAULT_DIMENSIONS_WRAPPER = new DimensionsWrapper(TogetherWorldPreset.getDimensionsMap(WorldPresets.getDEFAULT())); } CompoundTag presetNBT = WorldGenUtil.getPresetsNbt(); diff --git a/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresets.java b/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresets.java index 3be479ed..32fd264e 100644 --- a/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresets.java +++ b/src/main/java/org/betterx/worlds/together/worldPreset/WorldPresets.java @@ -20,13 +20,14 @@ import net.minecraft.world.level.levelgen.presets.WorldPreset; import com.google.common.collect.Maps; import java.util.Map; +import org.jetbrains.annotations.ApiStatus; public class WorldPresets { public static final TagRegistry.Simple WORLD_PRESETS = TagManager.registerType(BuiltinRegistries.WORLD_PRESET, "tags/worldgen/world_preset"); private static Map, PresetBuilder> BUILDERS = Maps.newHashMap(); - public static ResourceKey DEFAULT = net.minecraft.world.level.levelgen.presets.WorldPresets.NORMAL; + private static ResourceKey DEFAULT = net.minecraft.world.level.levelgen.presets.WorldPresets.NORMAL; public static Holder get(RegistryAccess access, ResourceKey key) { return ((access != null) ? access : BuiltinRegistries.ACCESS) @@ -47,6 +48,9 @@ public class WorldPresets { private static ResourceKey register(ResourceLocation loc, boolean visibleInUI) { ResourceKey key = ResourceKey.create(Registry.WORLD_PRESET_REGISTRY, loc); if (visibleInUI) { + if (!didExplicitlySetDefault && DEFAULT == net.minecraft.world.level.levelgen.presets.WorldPresets.NORMAL) { + DEFAULT = key; + } WORLD_PRESETS.addUntyped(WorldPresetTags.NORMAL, key.location()); } @@ -88,6 +92,18 @@ public class WorldPresets { BUILDERS = null; } + public static ResourceKey getDEFAULT() { + return DEFAULT; + } + + private static boolean didExplicitlySetDefault = false; + + @ApiStatus.Internal + public static void setDEFAULT(ResourceKey DEFAULT) { + didExplicitlySetDefault = true; + WorldPresets.DEFAULT = DEFAULT; + } + @FunctionalInterface public interface PresetBuilder {