diff --git a/src/main/java/io/github/ennuil/boringdefaultgamerules/BoringDefaultGameRulesServerMod.java b/src/main/java/io/github/ennuil/boringdefaultgamerules/BoringDefaultGameRulesServerMod.java deleted file mode 100644 index 72f0174..0000000 --- a/src/main/java/io/github/ennuil/boringdefaultgamerules/BoringDefaultGameRulesServerMod.java +++ /dev/null @@ -1,15 +0,0 @@ -package io.github.ennuil.boringdefaultgamerules; - -import io.github.ennuil.boringdefaultgamerules.config.BoringDefaultGameRulesConfig; -import net.fabricmc.api.DedicatedServerModInitializer; -import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; - -public class BoringDefaultGameRulesServerMod implements DedicatedServerModInitializer { - @Override - public void onInitializeServer() { - ServerLifecycleEvents.SERVER_STARTING.register(server -> { - BoringDefaultGameRulesConfig.generateGameRulesHash(); - BoringDefaultGameRulesConfig.loadOrCreateConfig(); - }); - } -} diff --git a/src/main/java/io/github/ennuil/boringdefaultgamerules/config/BoringDefaultGameRulesConfig.java b/src/main/java/io/github/ennuil/boringdefaultgamerules/config/BoringDefaultGameRulesConfig.java index 27b2f0d..8120ff5 100644 --- a/src/main/java/io/github/ennuil/boringdefaultgamerules/config/BoringDefaultGameRulesConfig.java +++ b/src/main/java/io/github/ennuil/boringdefaultgamerules/config/BoringDefaultGameRulesConfig.java @@ -15,7 +15,6 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import io.github.ennuil.boringdefaultgamerules.BoringDefaultGameRulesServerMod; import io.github.ennuil.boringdefaultgamerules.mixin.BoundedIntRuleAccessor; import io.github.ennuil.boringdefaultgamerules.mixin.DoubleRuleAccessor; import io.github.ennuil.boringdefaultgamerules.mixin.EnumRuleAccessor; diff --git a/src/main/java/io/github/ennuil/boringdefaultgamerules/mixin/MainMixin.java b/src/main/java/io/github/ennuil/boringdefaultgamerules/mixin/MainMixin.java new file mode 100644 index 0000000..277b7f0 --- /dev/null +++ b/src/main/java/io/github/ennuil/boringdefaultgamerules/mixin/MainMixin.java @@ -0,0 +1,31 @@ +package io.github.ennuil.boringdefaultgamerules.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import io.github.ennuil.boringdefaultgamerules.config.BoringDefaultGameRulesConfig; +import net.minecraft.server.Main; + +@Mixin(Main.class) +public class MainMixin { + @Unique + private static boolean hasLoadedOnce = false; + + @Inject( + at = @At( + value = "INVOKE_ASSIGN", + target = "Lnet/minecraft/world/level/storage/LevelStorage$Session;readLevelProperties(Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/resource/DataPackSettings;)Lnet/minecraft/world/SaveProperties;" + ), + method = "main" + ) + private static void mainMixin(String[] args, CallbackInfo ci) { + if (!hasLoadedOnce) { + BoringDefaultGameRulesConfig.generateGameRulesHash(); + BoringDefaultGameRulesConfig.loadOrCreateConfig(); + hasLoadedOnce = true; + } + } +} diff --git a/src/main/resources/boringdefaultgamerules.mixins.json b/src/main/resources/boringdefaultgamerules.mixins.json index 81431dc..e6ea2e3 100644 --- a/src/main/resources/boringdefaultgamerules.mixins.json +++ b/src/main/resources/boringdefaultgamerules.mixins.json @@ -8,6 +8,9 @@ "EnumRuleAccessor", "GameRulesMixin" ], + "server": [ + "MainMixin" + ], "injectors": { "defaultRequire": 1 } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 85892d5..13e83e1 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -17,7 +17,6 @@ "environment": "*", "entrypoints": { "client": ["io.github.ennuil.boringdefaultgamerules.BoringDefaultGameRulesClientMod"], - "server": ["io.github.ennuil.boringdefaultgamerules.BoringDefaultGameRulesServerMod"], "modmenu": ["io.github.ennuil.boringdefaultgamerules.modmenu.BoringDefaultGameRulesModMenuEntry"] }, "mixins": [