From 9fb19f96051be4b18f94352fd5ec434fddeab8ee Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 22 Mar 2021 22:24:32 +0100 Subject: [PATCH] Bump forge event priority to HIGH My reasoning for this lies in the quirk that Forge by default cancels all following event listeners when one of them fails with an Exception. Because we are an API that mods need to be able to rely on, and this may cause cascading issues with mods that depend on us down the line (see https://github.com/KubeJS-Mods/KubeJS/issues/101), I think we should act on HIGH priority by default to reduce the risk of this happening --- .../event/forge/EventHandlerImplClient.java | 83 ++++++++++--------- .../event/forge/EventHandlerImplCommon.java | 77 ++++++++--------- 2 files changed, 81 insertions(+), 79 deletions(-) diff --git a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplClient.java b/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplClient.java index f78f6867..76627c45 100644 --- a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplClient.java +++ b/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplClient.java @@ -38,6 +38,7 @@ import net.minecraftforge.client.event.*; import net.minecraftforge.event.entity.player.ItemTooltipEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.world.WorldEvent; +import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; @@ -45,12 +46,12 @@ import java.util.List; @OnlyIn(Dist.CLIENT) public class EventHandlerImplClient { - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ItemTooltipEvent event) { TooltipEvent.ITEM.invoker().append(event.getItemStack(), event.getToolTip(), event.getFlags()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(net.minecraftforge.event.TickEvent.ClientTickEvent event) { if (event.phase == net.minecraftforge.event.TickEvent.Phase.START) ClientTickEvent.CLIENT_PRE.invoker().tick(Minecraft.getInstance()); @@ -58,40 +59,40 @@ public class EventHandlerImplClient { ClientTickEvent.CLIENT_POST.invoker().tick(Minecraft.getInstance()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(RenderGameOverlayEvent.Post event) { if (event.getType() == RenderGameOverlayEvent.ElementType.ALL) GuiEvent.RENDER_HUD.invoker().renderHud(event.getMatrixStack(), event.getPartialTicks()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ClientPlayerNetworkEvent.LoggedInEvent event) { ClientPlayerEvent.CLIENT_PLAYER_JOIN.invoker().join(event.getPlayer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ClientPlayerNetworkEvent.LoggedOutEvent event) { ClientPlayerEvent.CLIENT_PLAYER_QUIT.invoker().quit(event.getPlayer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ClientPlayerNetworkEvent.RespawnEvent event) { ClientPlayerEvent.CLIENT_PLAYER_RESPAWN.invoker().respawn(event.getOldPlayer(), event.getNewPlayer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.InitGuiEvent.Pre event) { if (GuiEvent.INIT_PRE.invoker().init(event.getGui(), event.getWidgetList(), (List) event.getGui().children()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.InitGuiEvent.Post event) { GuiEvent.INIT_POST.invoker().init(event.getGui(), event.getWidgetList(), (List) event.getGui().children()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(RenderGameOverlayEvent.Text event) { if (Minecraft.getInstance().options.renderDebug) { GuiEvent.DEBUG_TEXT_LEFT.invoker().gatherText(event.getLeft()); @@ -99,7 +100,7 @@ public class EventHandlerImplClient { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(net.minecraftforge.client.event.ClientChatEvent event) { InteractionResultHolder process = ClientChatEvent.CLIENT.invoker().process(event.getMessage()); if (process.getObject() != null) @@ -108,7 +109,7 @@ public class EventHandlerImplClient { event.setCanceled(true); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ClientChatReceivedEvent event) { InteractionResultHolder process = ClientChatEvent.CLIENT_RECEIVED.invoker().process(event.getType(), event.getMessage(), event.getSenderUUID()); if (process.getObject() != null) @@ -117,7 +118,7 @@ public class EventHandlerImplClient { event.setCanceled(true); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(WorldEvent.Load event) { if (event.getWorld().isClientSide()) { ClientLevel world = (ClientLevel) event.getWorld(); @@ -125,7 +126,7 @@ public class EventHandlerImplClient { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiOpenEvent event) { InteractionResultHolder result = GuiEvent.SET_SCREEN.invoker().modifyScreen(event.getGui()); switch (result.getResult()) { @@ -137,29 +138,29 @@ public class EventHandlerImplClient { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.DrawScreenEvent.Pre event) { if (GuiEvent.RENDER_PRE.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.DrawScreenEvent.Post event) { GuiEvent.RENDER_POST.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerInteractEvent.RightClickEmpty event) { InteractionEvent.CLIENT_RIGHT_CLICK_AIR.invoker().click(event.getPlayer(), event.getHand()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerInteractEvent.LeftClickEmpty event) { InteractionEvent.CLIENT_LEFT_CLICK_AIR.invoker().click(event.getPlayer(), event.getHand()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(RecipesUpdatedEvent event) { RecipeUpdateEvent.EVENT.invoker().update(event.getRecipeManager()); } @@ -167,7 +168,7 @@ public class EventHandlerImplClient { private static final ThreadLocal tooltipColorContext = ThreadLocal.withInitial(TooltipEventColorContextImpl::new); private static final ThreadLocal tooltipPositionContext = ThreadLocal.withInitial(TooltipEventPositionContextImpl::new); - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(RenderTooltipEvent.Pre event) { if (TooltipEvent.RENDER_FORGE_PRE.invoker().renderTooltip(event.getMatrixStack(), event.getLines(), event.getX(), event.getY()) == InteractionResult.FAIL) { event.setCanceled(true); @@ -181,7 +182,7 @@ public class EventHandlerImplClient { event.setY(positionContext.getTooltipY()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(RenderTooltipEvent.Color event) { TooltipEventColorContextImpl colorContext = tooltipColorContext.get(); colorContext.reset(); @@ -194,127 +195,127 @@ public class EventHandlerImplClient { event.setBorderStart(colorContext.getOutlineGradientTopColor()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseScrollEvent.Pre event) { if (ClientScreenInputEvent.MOUSE_SCROLLED_PRE.invoker().mouseScrolled(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getScrollDelta()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseScrollEvent.Post event) { ClientScreenInputEvent.MOUSE_SCROLLED_POST.invoker().mouseScrolled(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getScrollDelta()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseClickedEvent.Pre event) { if (ClientScreenInputEvent.MOUSE_CLICKED_PRE.invoker().mouseClicked(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getButton()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseClickedEvent.Post event) { ClientScreenInputEvent.MOUSE_CLICKED_POST.invoker().mouseClicked(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getButton()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseDragEvent.Pre event) { if (ClientScreenInputEvent.MOUSE_DRAGGED_PRE.invoker().mouseDragged(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getMouseButton(), event.getDragX(), event.getDragY()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseDragEvent.Post event) { ClientScreenInputEvent.MOUSE_DRAGGED_POST.invoker().mouseDragged(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getMouseButton(), event.getDragX(), event.getDragY()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseReleasedEvent.Pre event) { if (ClientScreenInputEvent.MOUSE_RELEASED_PRE.invoker().mouseReleased(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getButton()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.MouseReleasedEvent.Post event) { ClientScreenInputEvent.MOUSE_RELEASED_PRE.invoker().mouseReleased(Minecraft.getInstance(), event.getGui(), event.getMouseX(), event.getMouseY(), event.getButton()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.KeyboardCharTypedEvent.Pre event) { if (ClientScreenInputEvent.CHAR_TYPED_PRE.invoker().charTyped(Minecraft.getInstance(), event.getGui(), event.getCodePoint(), event.getModifiers()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.KeyboardCharTypedEvent.Post event) { ClientScreenInputEvent.CHAR_TYPED_POST.invoker().charTyped(Minecraft.getInstance(), event.getGui(), event.getCodePoint(), event.getModifiers()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.KeyboardKeyPressedEvent.Pre event) { if (ClientScreenInputEvent.KEY_PRESSED_PRE.invoker().keyPressed(Minecraft.getInstance(), event.getGui(), event.getKeyCode(), event.getScanCode(), event.getModifiers()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.KeyboardKeyPressedEvent.Post event) { ClientScreenInputEvent.KEY_PRESSED_POST.invoker().keyPressed(Minecraft.getInstance(), event.getGui(), event.getKeyCode(), event.getScanCode(), event.getModifiers()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.KeyboardKeyReleasedEvent.Pre event) { if (ClientScreenInputEvent.KEY_RELEASED_PRE.invoker().keyReleased(Minecraft.getInstance(), event.getGui(), event.getKeyCode(), event.getScanCode(), event.getModifiers()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(GuiScreenEvent.KeyboardKeyReleasedEvent.Post event) { ClientScreenInputEvent.KEY_RELEASED_POST.invoker().keyReleased(Minecraft.getInstance(), event.getGui(), event.getKeyCode(), event.getScanCode(), event.getModifiers()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(InputEvent.MouseScrollEvent event) { if (ClientRawInputEvent.MOUSE_SCROLLED.invoker().mouseScrolled(Minecraft.getInstance(), event.getScrollDelta()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(InputEvent.RawMouseEvent event) { if (ClientRawInputEvent.MOUSE_CLICKED_PRE.invoker().mouseClicked(Minecraft.getInstance(), event.getButton(), event.getAction(), event.getMods()) != InteractionResult.PASS) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(InputEvent.MouseInputEvent event) { ClientRawInputEvent.MOUSE_CLICKED_POST.invoker().mouseClicked(Minecraft.getInstance(), event.getButton(), event.getAction(), event.getMods()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(InputEvent.KeyInputEvent event) { ClientRawInputEvent.KEY_PRESSED.invoker().keyPressed(Minecraft.getInstance(), event.getKey(), event.getScanCode(), event.getAction(), event.getModifiers()); } @OnlyIn(Dist.CLIENT) public static class ModBasedEventHandler { - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(net.minecraftforge.client.event.TextureStitchEvent.Pre event) { TextureStitchEvent.PRE.invoker().stitch(event.getMap(), event::addSprite); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(net.minecraftforge.client.event.TextureStitchEvent.Post event) { TextureStitchEvent.POST.invoker().stitch(event.getMap()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(FMLClientSetupEvent event) { ClientLifecycleEvent.CLIENT_SETUP.invoker().stateChanged(event.getMinecraftSupplier().get()); } diff --git a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplCommon.java b/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplCommon.java index 33c3c019..e3c98f7f 100644 --- a/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplCommon.java +++ b/forge/src/main/java/me/shedaniel/architectury/event/forge/EventHandlerImplCommon.java @@ -50,13 +50,14 @@ import net.minecraftforge.event.world.ExplosionEvent.Detonate; import net.minecraftforge.event.world.ExplosionEvent.Start; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.eventbus.api.Event; +import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.event.server.*; import net.minecraftforge.fml.server.ServerLifecycleHooks; public class EventHandlerImplCommon { - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ServerTickEvent event) { if (event.phase == Phase.START) TickEvent.SERVER_PRE.invoker().tick(ServerLifecycleHooks.getCurrentServer()); @@ -64,7 +65,7 @@ public class EventHandlerImplCommon { TickEvent.SERVER_POST.invoker().tick(ServerLifecycleHooks.getCurrentServer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(WorldTickEvent event) { if (event.side == LogicalSide.SERVER) { if (event.phase == Phase.START) @@ -74,47 +75,47 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(FMLServerStartingEvent event) { LifecycleEvent.SERVER_STARTING.invoker().stateChanged(event.getServer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(FMLServerStartedEvent event) { LifecycleEvent.SERVER_STARTED.invoker().stateChanged(event.getServer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(FMLServerStoppingEvent event) { LifecycleEvent.SERVER_STOPPING.invoker().stateChanged(event.getServer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(FMLServerStoppedEvent event) { LifecycleEvent.SERVER_STOPPED.invoker().stateChanged(event.getServer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(RegisterCommandsEvent event) { CommandRegistrationEvent.EVENT.invoker().register(event.getDispatcher(), event.getEnvironment()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerLoggedInEvent event) { PlayerEvent.PLAYER_JOIN.invoker().join((ServerPlayer) event.getPlayer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerLoggedOutEvent event) { PlayerEvent.PLAYER_QUIT.invoker().quit((ServerPlayer) event.getPlayer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerRespawnEvent event) { PlayerEvent.PLAYER_RESPAWN.invoker().respawn((ServerPlayer) event.getPlayer(), event.isEndConquered()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(CommandEvent event) { CommandPerformEvent performEvent = new CommandPerformEvent(event.getParseResults(), event.getException()); if (CommandPerformEvent.EVENT.invoker().act(performEvent) == InteractionResult.FAIL) { @@ -124,7 +125,7 @@ public class EventHandlerImplCommon { event.setException(performEvent.getThrowable()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerTickEvent event) { if (event.phase == Phase.START) { TickEvent.PLAYER_PRE.invoker().tick(event.player); @@ -133,7 +134,7 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ServerChatEvent event) { InteractionResultHolder process = ChatEvent.SERVER.invoker().process(event.getPlayer(), event.getMessage(), event.getComponent()); if (process.getObject() != null) @@ -142,7 +143,7 @@ public class EventHandlerImplCommon { event.setCanceled(true); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(WorldEvent.Load event) { if (event.getWorld() instanceof ServerLevel) { ServerLevel world = (ServerLevel) event.getWorld(); @@ -150,7 +151,7 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(WorldEvent.Unload event) { if (event.getWorld() instanceof ServerLevel) { ServerLevel world = (ServerLevel) event.getWorld(); @@ -158,7 +159,7 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(WorldEvent.Save event) { if (event.getWorld() instanceof ServerLevel) { ServerLevel world = (ServerLevel) event.getWorld(); @@ -166,89 +167,89 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(LivingDeathEvent event) { if (EntityEvent.LIVING_DEATH.invoker().die(event.getEntityLiving(), event.getSource()) == InteractionResult.FAIL) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(AdvancementEvent event) { if (event.getPlayer() instanceof ServerPlayer) { PlayerEvent.PLAYER_ADVANCEMENT.invoker().award((ServerPlayer) event.getPlayer(), event.getAdvancement()); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(Clone event) { if (event.getOriginal() instanceof ServerPlayer && event.getPlayer() instanceof ServerPlayer) { PlayerEvent.PLAYER_CLONE.invoker().clone((ServerPlayer) event.getOriginal(), (ServerPlayer) event.getPlayer(), !event.isWasDeath()); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(Start event) { if (ExplosionEvent.PRE.invoker().explode(event.getWorld(), event.getExplosion()) == InteractionResult.FAIL) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(Detonate event) { ExplosionEvent.DETONATE.invoker().explode(event.getWorld(), event.getExplosion(), event.getAffectedEntities()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(LivingAttackEvent event) { if (EntityEvent.LIVING_ATTACK.invoker().attack(event.getEntityLiving(), event.getSource(), event.getAmount()) == InteractionResult.FAIL) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(EntityJoinWorldEvent event) { if (EntityEvent.ADD.invoker().add(event.getEntity(), event.getWorld()) == InteractionResult.FAIL) { event.setCanceled(true); } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ItemCraftedEvent event) { PlayerEvent.CRAFT_ITEM.invoker().craft(event.getPlayer(), event.getCrafting(), event.getInventory()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ItemSmeltedEvent event) { PlayerEvent.SMELT_ITEM.invoker().smelt(event.getPlayer(), event.getSmelting()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(EntityItemPickupEvent event) { PlayerEvent.PICKUP_ITEM_PRE.invoker().canPickup(event.getPlayer(), event.getItem(), event.getItem().getItem()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ItemPickupEvent event) { PlayerEvent.PICKUP_ITEM_POST.invoker().pickup(event.getPlayer(), event.getOriginalEntity(), event.getStack()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(ItemTossEvent event) { PlayerEvent.DROP_ITEM.invoker().drop(event.getPlayer(), event.getEntityItem()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerContainerEvent.Open event) { PlayerEvent.OPEN_MENU.invoker().open(event.getPlayer(), event.getContainer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerContainerEvent.Close event) { PlayerEvent.CLOSE_MENU.invoker().close(event.getPlayer(), event.getContainer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerInteractEvent.RightClickItem event) { InteractionResultHolder result = InteractionEvent.RIGHT_CLICK_ITEM.invoker().click(event.getPlayer(), event.getHand()); if (result.getResult() != InteractionResult.PASS) { @@ -257,7 +258,7 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerInteractEvent.RightClickBlock event) { InteractionResult result = InteractionEvent.RIGHT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace()); if (result != InteractionResult.PASS) { @@ -268,7 +269,7 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerInteractEvent.EntityInteract event) { InteractionResult result = InteractionEvent.INTERACT_ENTITY.invoker().interact(event.getPlayer(), event.getTarget(), event.getHand()); if (result != InteractionResult.PASS) { @@ -277,7 +278,7 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerInteractEvent.LeftClickBlock event) { InteractionResult result = InteractionEvent.LEFT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace()); if (result != InteractionResult.PASS) { @@ -288,7 +289,7 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(BreakEvent event) { if (event.getPlayer() instanceof ServerPlayer && event.getWorld() instanceof Level) { InteractionResult result = BlockEvent.BREAK.invoker().breakBlock((Level) event.getWorld(), event.getPos(), event.getState(), (ServerPlayer) event.getPlayer(), new IntValue() { @@ -308,7 +309,7 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(EntityPlaceEvent event) { if (event.getWorld() instanceof Level) { InteractionResult result = BlockEvent.PLACE.invoker().placeBlock((Level) event.getWorld(), event.getPos(), event.getState(), event.getEntity()); @@ -318,12 +319,12 @@ public class EventHandlerImplCommon { } } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(FMLServerAboutToStartEvent event) { LifecycleEvent.SERVER_BEFORE_START.invoker().stateChanged(event.getServer()); } - @SubscribeEvent + @SubscribeEvent(priority = EventPriority.HIGH) public static void event(PlayerChangedDimensionEvent event) { if (event.getPlayer() instanceof ServerPlayer) { PlayerEvent.CHANGE_DIMENSION.invoker().change((ServerPlayer) event.getPlayer(), event.getFrom(), event.getTo());