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(); - EventDETONATE = 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 {