diff --git a/common/src/main/java/me/shedaniel/architectury/event/EventFactory.java b/common/src/main/java/me/shedaniel/architectury/event/EventFactory.java index e054b55c..fca87718 100644 --- a/common/src/main/java/me/shedaniel/architectury/event/EventFactory.java +++ b/common/src/main/java/me/shedaniel/architectury/event/EventFactory.java @@ -89,7 +89,7 @@ public final class EventFactory { @Override protected Object handleInvocation(@NotNull Object proxy, @NotNull Method method, Object @NotNull [] args) throws Throwable { for (T listener : listeners) { - InteractionResult result = (InteractionResult) method.invoke(listener, args); + InteractionResult result = (InteractionResult) Objects.requireNonNull(method.invoke(listener, args)); if (result != InteractionResult.PASS) { return result; } diff --git a/common/src/main/java/me/shedaniel/architectury/event/events/ExplosionEvent.java b/common/src/main/java/me/shedaniel/architectury/event/events/ExplosionEvent.java index 38bc9e9c..9a2699bc 100644 --- a/common/src/main/java/me/shedaniel/architectury/event/events/ExplosionEvent.java +++ b/common/src/main/java/me/shedaniel/architectury/event/events/ExplosionEvent.java @@ -30,7 +30,7 @@ import java.util.List; public interface ExplosionEvent { Event
 PRE = EventFactory.createInteractionResult();
-    Event DETONATE = EventFactory.createInteractionResult();
+    Event DETONATE = EventFactory.createLoop();
     
     interface Pre {
         InteractionResult explode(Level world, Explosion explosion);
diff --git a/common/src/main/java/me/shedaniel/architectury/event/events/GuiEvent.java b/common/src/main/java/me/shedaniel/architectury/event/events/GuiEvent.java
index e8a61a92..9a7863f5 100644
--- a/common/src/main/java/me/shedaniel/architectury/event/events/GuiEvent.java
+++ b/common/src/main/java/me/shedaniel/architectury/event/events/GuiEvent.java
@@ -49,7 +49,7 @@ public interface GuiEvent {
      */
     Event INIT_POST = EventFactory.createLoop();
     Event RENDER_PRE = EventFactory.createInteractionResult();
-    Event RENDER_POST = EventFactory.createInteractionResult();
+    Event RENDER_POST = EventFactory.createLoop();
     
     /**
      * Invoked during Minecraft#setScreen, equivalent to forge's {@code GuiOpenEvent}.
diff --git a/common/src/main/java/me/shedaniel/architectury/event/events/TooltipEvent.java b/common/src/main/java/me/shedaniel/architectury/event/events/TooltipEvent.java
index 673994e0..8a492439 100644
--- a/common/src/main/java/me/shedaniel/architectury/event/events/TooltipEvent.java
+++ b/common/src/main/java/me/shedaniel/architectury/event/events/TooltipEvent.java
@@ -44,8 +44,8 @@ public interface TooltipEvent {
      * Render forge events are only invoked on the forge side.
      */
     Event RENDER_FORGE_PRE = EventFactory.createInteractionResult();
-    Event RENDER_MODIFY_POSITION = EventFactory.createInteractionResult();
-    Event RENDER_MODIFY_COLOR = EventFactory.createInteractionResult();
+    Event RENDER_MODIFY_POSITION = EventFactory.createLoop();
+    Event RENDER_MODIFY_COLOR = EventFactory.createLoop();
     
     @Environment(EnvType.CLIENT)
     interface Item {