From 426ca4133131e9b0cac15e867313daf692925c57 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sun, 19 Nov 2023 02:59:27 +0800 Subject: [PATCH] Fix CustomizeGuiOverlayEvent crash --- .../event/forge/EventHandlerImplClient.java | 4 ++-- .../hooks/forgelike/ForgeLikeClientHooks.java | 13 +++++++++++++ .../forgelike/forge/ForgeLikeClientHooksImpl.java | 11 +++++++++++ .../forgelike/forge/ForgeLikeClientHooksImpl.java | 11 +++++++++++ 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/forge/src/main/java/dev/architectury/event/forge/EventHandlerImplClient.java b/forge/src/main/java/dev/architectury/event/forge/EventHandlerImplClient.java index 797ff417..ab6cca72 100644 --- a/forge/src/main/java/dev/architectury/event/forge/EventHandlerImplClient.java +++ b/forge/src/main/java/dev/architectury/event/forge/EventHandlerImplClient.java @@ -93,8 +93,8 @@ public static void eventInitScreenEvent(ScreenEvent.Init.Post event) { @SubscribeEvent(priority = EventPriority.HIGH) public static void eventRenderGameOverlayEvent(CustomizeGuiOverlayEvent.DebugText event) { if (Minecraft.getInstance().gui.getDebugOverlay().showDebugScreen()) { - ClientGuiEvent.DEBUG_TEXT_LEFT.invoker().gatherText(event.getLeft()); - ClientGuiEvent.DEBUG_TEXT_RIGHT.invoker().gatherText(event.getRight()); + ClientGuiEvent.DEBUG_TEXT_LEFT.invoker().gatherText(ForgeLikeClientHooks.getLeft(event)); + ClientGuiEvent.DEBUG_TEXT_RIGHT.invoker().gatherText(ForgeLikeClientHooks.getRight(event)); } } diff --git a/forge/src/main/java/dev/architectury/hooks/forgelike/ForgeLikeClientHooks.java b/forge/src/main/java/dev/architectury/hooks/forgelike/ForgeLikeClientHooks.java index 7f977dbc..0b5015d4 100644 --- a/forge/src/main/java/dev/architectury/hooks/forgelike/ForgeLikeClientHooks.java +++ b/forge/src/main/java/dev/architectury/hooks/forgelike/ForgeLikeClientHooks.java @@ -20,10 +20,13 @@ package dev.architectury.hooks.forgelike; import dev.architectury.injectables.annotations.ExpectPlatform; +import net.minecraftforge.client.event.CustomizeGuiOverlayEvent; import net.minecraftforge.client.event.InputEvent; import net.minecraftforge.client.event.ScreenEvent; import org.jetbrains.annotations.ApiStatus; +import java.util.List; + @ApiStatus.Internal public class ForgeLikeClientHooks { @ExpectPlatform @@ -40,4 +43,14 @@ public static void postMouseScroll(ScreenEvent.MouseScrolled.Post event) { public static void inputMouseScroll(InputEvent.MouseScrollingEvent event) { throw new AssertionError(); } + + @ExpectPlatform + public static List getLeft(CustomizeGuiOverlayEvent.DebugText event) { + throw new AssertionError(); + } + + @ExpectPlatform + public static List getRight(CustomizeGuiOverlayEvent.DebugText event) { + throw new AssertionError(); + } } diff --git a/minecraftforge/src/main/java/dev/architectury/hooks/forgelike/forge/ForgeLikeClientHooksImpl.java b/minecraftforge/src/main/java/dev/architectury/hooks/forgelike/forge/ForgeLikeClientHooksImpl.java index 10e4398d..61573c8e 100644 --- a/minecraftforge/src/main/java/dev/architectury/hooks/forgelike/forge/ForgeLikeClientHooksImpl.java +++ b/minecraftforge/src/main/java/dev/architectury/hooks/forgelike/forge/ForgeLikeClientHooksImpl.java @@ -22,9 +22,12 @@ import dev.architectury.event.events.client.ClientRawInputEvent; import dev.architectury.event.events.client.ClientScreenInputEvent; import net.minecraft.client.Minecraft; +import net.minecraftforge.client.event.CustomizeGuiOverlayEvent; import net.minecraftforge.client.event.InputEvent; import net.minecraftforge.client.event.ScreenEvent; +import java.util.List; + public class ForgeLikeClientHooksImpl { public static void preMouseScroll(ScreenEvent.MouseScrolled.Pre event) { if (ClientScreenInputEvent.MOUSE_SCROLLED_PRE.invoker().mouseScrolled(Minecraft.getInstance(), event.getScreen(), event.getMouseX(), event.getMouseY(), event.getDeltaX(), event.getDeltaY()).isFalse()) { @@ -41,4 +44,12 @@ public static void inputMouseScroll(InputEvent.MouseScrollingEvent event) { event.setCanceled(true); } } + + public static List getLeft(CustomizeGuiOverlayEvent.DebugText event) { + return event.getLeft(); + } + + public static List getRight(CustomizeGuiOverlayEvent.DebugText event) { + return event.getRight(); + } } diff --git a/neoforge/src/main/java/dev/architectury/hooks/forgelike/forge/ForgeLikeClientHooksImpl.java b/neoforge/src/main/java/dev/architectury/hooks/forgelike/forge/ForgeLikeClientHooksImpl.java index 68df3cd3..208d0a82 100644 --- a/neoforge/src/main/java/dev/architectury/hooks/forgelike/forge/ForgeLikeClientHooksImpl.java +++ b/neoforge/src/main/java/dev/architectury/hooks/forgelike/forge/ForgeLikeClientHooksImpl.java @@ -22,9 +22,12 @@ import dev.architectury.event.events.client.ClientRawInputEvent; import dev.architectury.event.events.client.ClientScreenInputEvent; import net.minecraft.client.Minecraft; +import net.neoforged.neoforge.client.event.CustomizeGuiOverlayEvent; import net.neoforged.neoforge.client.event.InputEvent; import net.neoforged.neoforge.client.event.ScreenEvent; +import java.util.List; + public class ForgeLikeClientHooksImpl { public static void preMouseScroll(ScreenEvent.MouseScrolled.Pre event) { if (ClientScreenInputEvent.MOUSE_SCROLLED_PRE.invoker().mouseScrolled(Minecraft.getInstance(), event.getScreen(), event.getMouseX(), event.getMouseY(), event.getScrollDeltaX(), event.getScrollDeltaY()).isFalse()) { @@ -41,4 +44,12 @@ public static void inputMouseScroll(InputEvent.MouseScrollingEvent event) { event.setCanceled(true); } } + + public static List getLeft(CustomizeGuiOverlayEvent.DebugText event) { + return event.getLeft(); + } + + public static List getRight(CustomizeGuiOverlayEvent.DebugText event) { + return event.getRight(); + } }