From 2611a291077869d0b0bff95e887c23aa6bfab96d Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Thu, 11 Dec 2025 17:55:32 +0100 Subject: [PATCH] fix: crash when ModMenu is not installed --- src/main/java/net/puzzlemc/core/PuzzleClient.java | 13 ++----------- src/main/java/net/puzzlemc/core/PuzzleModMenu.java | 14 ++++++++++++++ src/main/resources/fabric.mod.json | 2 +- 3 files changed, 17 insertions(+), 12 deletions(-) create mode 100644 src/main/java/net/puzzlemc/core/PuzzleModMenu.java diff --git a/src/main/java/net/puzzlemc/core/PuzzleClient.java b/src/main/java/net/puzzlemc/core/PuzzleClient.java index a9ceea2..9ce9e06 100644 --- a/src/main/java/net/puzzlemc/core/PuzzleClient.java +++ b/src/main/java/net/puzzlemc/core/PuzzleClient.java @@ -2,14 +2,11 @@ package net.puzzlemc.core; import net.minecraft.resources.Identifier; -import net.puzzlemc.gui.screen.PuzzleOptionsScreen; import net.puzzlemc.splashscreen.PuzzleSplashScreen; import static net.puzzlemc.core.PuzzleCore.MOD_ID; //? fabric { -import com.terraformersmc.modmenu.api.ConfigScreenFactory; -import com.terraformersmc.modmenu.api.ModMenuApi; import net.fabricmc.api.ClientModInitializer; import net.minecraft.server.packs.PackType; //? if >= 1.21.9 { @@ -20,13 +17,7 @@ import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener; import net.minecraft.server.packs.resources.ResourceManager; *///?} -public class PuzzleClient implements ClientModInitializer, ModMenuApi { - - @Override - public ConfigScreenFactory getModConfigScreenFactory() { - return PuzzleOptionsScreen::new; - } - +public class PuzzleClient implements ClientModInitializer { @Override public void onInitializeClient() { PuzzleCore.initModules(); @@ -56,7 +47,7 @@ import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModList; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.common.Mod; - +import net.puzzlemc.gui.screen.PuzzleOptionsScreen; import net.neoforged.neoforge.client.gui.IConfigScreenFactory; //? if >= 1.21.5 { import net.neoforged.neoforge.client.event.AddClientReloadListenersEvent; diff --git a/src/main/java/net/puzzlemc/core/PuzzleModMenu.java b/src/main/java/net/puzzlemc/core/PuzzleModMenu.java new file mode 100644 index 0000000..cf14313 --- /dev/null +++ b/src/main/java/net/puzzlemc/core/PuzzleModMenu.java @@ -0,0 +1,14 @@ +package net.puzzlemc.core; + +//? fabric { +import com.terraformersmc.modmenu.api.ConfigScreenFactory; +import com.terraformersmc.modmenu.api.ModMenuApi; +import net.puzzlemc.gui.screen.PuzzleOptionsScreen; + +public class PuzzleModMenu implements ModMenuApi { + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return PuzzleOptionsScreen::new; + } +} +//?} \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 69110ff..bfe6c16 100755 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -25,7 +25,7 @@ "net.puzzlemc.core.PuzzleClient" ], "modmenu": [ - "net.puzzlemc.core.PuzzleClient" + "net.puzzlemc.core.PuzzleModMenu" ] },