From a6fe95557f6135d8548f8c81c6b54b4286eb9735 Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Sun, 18 Jan 2026 11:08:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E7=AB=AF=E5=8A=A0=E8=BD=BD=E6=A8=A1=E7=BB=84=E4=BC=9A=E5=B4=A9?= =?UTF-8?q?=E6=BA=83=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../lib39/core/event/ServerEventHandler.java | 12 +++++++----- .../lib39/example/content/item/ForgeItem.java | 9 ++++++++- .../top/r3944realms/lib39/util/ILevelHelper.java | 4 +++- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/gradle.properties b/gradle.properties index f40d7e0..3ed167f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -33,7 +33,7 @@ mod_name=3944Realms 's Lib Mod # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=MIT # The mod version. See https://semver.org/ -mod_version=0.1.7 +mod_version=0.1.8 # 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/top/r3944realms/lib39/core/event/ServerEventHandler.java b/src/main/java/top/r3944realms/lib39/core/event/ServerEventHandler.java index f68738f..e75ba20 100644 --- a/src/main/java/top/r3944realms/lib39/core/event/ServerEventHandler.java +++ b/src/main/java/top/r3944realms/lib39/core/event/ServerEventHandler.java @@ -1,9 +1,11 @@ package top.r3944realms.lib39.core.event; import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.server.level.ServerLevel; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.event.level.LevelEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; import top.r3944realms.lib39.Lib39; import top.r3944realms.lib39.util.ILevelHelper; @@ -19,7 +21,7 @@ public class ServerEventHandler { /** * The type Game. */ - @net.minecraftforge.fml.common.Mod.EventBusSubscriber(value = Dist.DEDICATED_SERVER, bus = net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.MOD, modid = Lib39.MOD_ID) + @net.minecraftforge.fml.common.Mod.EventBusSubscriber(value = Dist.DEDICATED_SERVER, bus = net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.FORGE, modid = Lib39.MOD_ID) public static class Game extends ServerEventHandler { /** * Register layer definitions. @@ -28,8 +30,8 @@ public class ServerEventHandler { */ @SubscribeEvent public static void registerLayerDefinitions(LevelEvent.Load event) { - if (event.getLevel() != null && event.getLevel() instanceof ClientLevel level) { - ILevelHelper.LevelHelper.CLIENT.setLevel(level); + if (event.getLevel() != null && event.getLevel() instanceof ServerLevel level) { + ILevelHelper.LevelHelper.SERVER.setLevel(level); } } @@ -40,8 +42,8 @@ public class ServerEventHandler { */ @SubscribeEvent public static void registerLayerDefinitions(LevelEvent.Unload event) { - if (event.getLevel() != null && event.getLevel() instanceof ClientLevel level) { - ILevelHelper.LevelHelper.CLIENT.setLevel(null); + if (event.getLevel() != null && event.getLevel() instanceof ServerLevel) { + ILevelHelper.LevelHelper.SERVER.setLevel(null); } } } diff --git a/src/main/java/top/r3944realms/lib39/example/content/item/ForgeItem.java b/src/main/java/top/r3944realms/lib39/example/content/item/ForgeItem.java index 8c47461..47fd599 100644 --- a/src/main/java/top/r3944realms/lib39/example/content/item/ForgeItem.java +++ b/src/main/java/top/r3944realms/lib39/example/content/item/ForgeItem.java @@ -7,6 +7,8 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; import org.jetbrains.annotations.NotNull; import top.r3944realms.lib39.example.client.screen.ForgeScreen; @@ -26,8 +28,13 @@ public class ForgeItem extends Item { @Override public @NotNull InteractionResultHolder use(@NotNull Level level, @NotNull Player player, @NotNull InteractionHand usedHand) { if (level.isClientSide() && usedHand == InteractionHand.MAIN_HAND) { - Minecraft.getInstance().setScreen(new ForgeScreen(usedHand, 0)); + clientUse(usedHand); } return super.use(level, player, usedHand); } + + @OnlyIn(Dist.CLIENT) + private static void clientUse(@NotNull InteractionHand usedHand) { + Minecraft.getInstance().setScreen(new ForgeScreen(usedHand, 0)); + } } \ No newline at end of file diff --git a/src/main/java/top/r3944realms/lib39/util/ILevelHelper.java b/src/main/java/top/r3944realms/lib39/util/ILevelHelper.java index 0da329f..0aa5051 100644 --- a/src/main/java/top/r3944realms/lib39/util/ILevelHelper.java +++ b/src/main/java/top/r3944realms/lib39/util/ILevelHelper.java @@ -1,7 +1,8 @@ package top.r3944realms.lib39.util; import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -65,6 +66,7 @@ public interface ILevelHelper { * @return the client level */ @Nullable + @OnlyIn(Dist.CLIENT) static Level getClientLevel() { return LevelHelper.CLIENT.getLevel(); }