From 0386027e994100610eb007e47891977e836b20c4 Mon Sep 17 00:00:00 2001 From: fretuks Date: Wed, 1 Apr 2026 11:48:18 +0200 Subject: [PATCH] try to fix server-side crashes again --- gradle.properties | 2 +- .../net/fretux/skillengine/SkillEngine.java | 6 ++++++ .../skillengine/client/AbilityHudOverlay.java | 5 ----- .../client/AbilityKeybindHandler.java | 4 ---- .../skillengine/client/ClientBootstrap.java | 17 +++++++++++++++++ .../client/ClientCooldownTicker.java | 7 ------- .../fretux/skillengine/client/ClientEvents.java | 11 +---------- .../skillengine/client/ClientKeybinds.java | 9 --------- 8 files changed, 25 insertions(+), 36 deletions(-) create mode 100644 src/main/java/net/fretux/skillengine/client/ClientBootstrap.java diff --git a/gradle.properties b/gradle.properties index c85e644..ac348ad 100644 --- a/gradle.properties +++ b/gradle.properties @@ -48,7 +48,7 @@ mod_name=Fretux's Skill Engine # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=All Rights Reserved # The mod version. See https://semver.org/ -mod_version=1.2.8 +mod_version=1.2.9 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/net/fretux/skillengine/SkillEngine.java b/src/main/java/net/fretux/skillengine/SkillEngine.java index cac962a..d3a82f4 100644 --- a/src/main/java/net/fretux/skillengine/SkillEngine.java +++ b/src/main/java/net/fretux/skillengine/SkillEngine.java @@ -1,8 +1,10 @@ package net.fretux.skillengine; import com.mojang.logging.LogUtils; +import net.minecraftforge.api.distmarker.Dist; import net.fretux.skillengine.network.PacketHandler; import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import org.slf4j.Logger; @@ -16,5 +18,9 @@ public class SkillEngine { public SkillEngine() { IEventBus modBus = FMLJavaModLoadingContext.get().getModEventBus(); PacketHandler.register(); + DistExecutor.unsafeRunWhenOn( + Dist.CLIENT, + () -> () -> net.fretux.skillengine.client.ClientBootstrap.register(modBus) + ); } } diff --git a/src/main/java/net/fretux/skillengine/client/AbilityHudOverlay.java b/src/main/java/net/fretux/skillengine/client/AbilityHudOverlay.java index 609d393..265832d 100644 --- a/src/main/java/net/fretux/skillengine/client/AbilityHudOverlay.java +++ b/src/main/java/net/fretux/skillengine/client/AbilityHudOverlay.java @@ -6,13 +6,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.client.event.RenderGuiEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; -@Mod.EventBusSubscriber public class AbilityHudOverlay { - - @SubscribeEvent public static void render(RenderGuiEvent.Post event) { Minecraft mc = Minecraft.getInstance(); if (mc.player == null) return; diff --git a/src/main/java/net/fretux/skillengine/client/AbilityKeybindHandler.java b/src/main/java/net/fretux/skillengine/client/AbilityKeybindHandler.java index ac77b1f..a232fb1 100644 --- a/src/main/java/net/fretux/skillengine/client/AbilityKeybindHandler.java +++ b/src/main/java/net/fretux/skillengine/client/AbilityKeybindHandler.java @@ -7,11 +7,8 @@ import net.minecraft.client.KeyMapping; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.InputEvent; import net.minecraftforge.client.settings.KeyConflictContext; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; import org.lwjgl.glfw.GLFW; -@Mod.EventBusSubscriber(modid = net.fretux.skillengine.SkillEngine.MODID, value = Dist.CLIENT) public class AbilityKeybindHandler { public static final KeyMapping ABILITY_1 = new KeyMapping( @@ -29,7 +26,6 @@ public class AbilityKeybindHandler { InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_C, "key.categories.gameplay" ); - @SubscribeEvent public static void onInput(InputEvent.Key event) { if (ABILITY_1.consumeClick()) { if (SkilltreeClientState.getClientCooldown(1) <= 0) { diff --git a/src/main/java/net/fretux/skillengine/client/ClientBootstrap.java b/src/main/java/net/fretux/skillengine/client/ClientBootstrap.java new file mode 100644 index 0000000..629b3ff --- /dev/null +++ b/src/main/java/net/fretux/skillengine/client/ClientBootstrap.java @@ -0,0 +1,17 @@ +package net.fretux.skillengine.client; + +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.IEventBus; + +public final class ClientBootstrap { + + private ClientBootstrap() {} + + public static void register(IEventBus modBus) { + modBus.addListener(ClientKeybinds::registerKeys); + MinecraftForge.EVENT_BUS.addListener(ClientEvents::onKeyInput); + MinecraftForge.EVENT_BUS.addListener(AbilityKeybindHandler::onInput); + MinecraftForge.EVENT_BUS.addListener(ClientCooldownTicker::onClientTick); + MinecraftForge.EVENT_BUS.addListener(AbilityHudOverlay::render); + } +} diff --git a/src/main/java/net/fretux/skillengine/client/ClientCooldownTicker.java b/src/main/java/net/fretux/skillengine/client/ClientCooldownTicker.java index 62e67a8..7522bbe 100644 --- a/src/main/java/net/fretux/skillengine/client/ClientCooldownTicker.java +++ b/src/main/java/net/fretux/skillengine/client/ClientCooldownTicker.java @@ -1,15 +1,8 @@ package net.fretux.skillengine.client; -import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.event.TickEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; -import net.fretux.skillengine.SkillEngine; -@Mod.EventBusSubscriber(modid = SkillEngine.MODID, value = Dist.CLIENT) public class ClientCooldownTicker { - - @SubscribeEvent public static void onClientTick(TickEvent.ClientTickEvent event) { if (event.phase != TickEvent.Phase.END) return; for (int i = 0; i < 3; i++) { diff --git a/src/main/java/net/fretux/skillengine/client/ClientEvents.java b/src/main/java/net/fretux/skillengine/client/ClientEvents.java index db2d49b..e1c37a5 100644 --- a/src/main/java/net/fretux/skillengine/client/ClientEvents.java +++ b/src/main/java/net/fretux/skillengine/client/ClientEvents.java @@ -2,18 +2,9 @@ package net.fretux.skillengine.client; import net.fretux.skillengine.SkillEngine; import net.minecraft.client.Minecraft; -import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.InputEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; - -@Mod.EventBusSubscriber( - modid = SkillEngine.MODID, - value = Dist.CLIENT -) public class ClientEvents { - @SubscribeEvent public static void onKeyInput(InputEvent.Key event) { if (ClientKeybinds.OPEN_SKILLTREE != null && ClientKeybinds.OPEN_SKILLTREE.consumeClick()) { @@ -25,4 +16,4 @@ public class ClientEvents { Minecraft.getInstance().setScreen(new AbilitySlotsScreen()); } } -} \ No newline at end of file +} diff --git a/src/main/java/net/fretux/skillengine/client/ClientKeybinds.java b/src/main/java/net/fretux/skillengine/client/ClientKeybinds.java index 868a641..91b2f11 100644 --- a/src/main/java/net/fretux/skillengine/client/ClientKeybinds.java +++ b/src/main/java/net/fretux/skillengine/client/ClientKeybinds.java @@ -2,22 +2,13 @@ package net.fretux.skillengine.client; import net.fretux.skillengine.SkillEngine; import net.minecraft.client.KeyMapping; -import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.RegisterKeyMappingsEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; import org.lwjgl.glfw.GLFW; -@Mod.EventBusSubscriber( - modid = SkillEngine.MODID, - bus = Mod.EventBusSubscriber.Bus.MOD, - value = Dist.CLIENT -) public class ClientKeybinds { public static KeyMapping OPEN_SKILLTREE; public static KeyMapping OPEN_ABILITIES; - @SubscribeEvent public static void registerKeys(RegisterKeyMappingsEvent event) { OPEN_SKILLTREE = new KeyMapping( "key.skillengine.openskilltree",