From 4d57a1bec6d6db3fa57f59461791d4b60a55d47e Mon Sep 17 00:00:00 2001 From: Jonathan Colmenares Date: Mon, 23 Jan 2023 14:47:00 -0500 Subject: [PATCH] Fire TickEvent.LevelTickEvent on ClientLevel tick (#9299) --- .../net/minecraft/client/Minecraft.java.patch | 16 ++++++++++++++++ .../minecraftforge/event/ForgeEventFactory.java | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/patches/minecraft/net/minecraft/client/Minecraft.java.patch b/patches/minecraft/net/minecraft/client/Minecraft.java.patch index ff6ea3fe0e..cc76127817 100644 --- a/patches/minecraft/net/minecraft/client/Minecraft.java.patch +++ b/patches/minecraft/net/minecraft/client/Minecraft.java.patch @@ -375,6 +375,22 @@ this.f_91026_.m_6180_("gui"); this.f_240378_.m_240688_(); this.f_91065_.m_193832_(this.f_91012_); +@@ -1766,6 +_,7 @@ + + this.f_91005_.m_120596_(); + ++ net.minecraftforge.event.ForgeEventFactory.onPreLevelTick(this.f_91073_, () -> true); + try { + this.f_91073_.m_104726_(() -> { + return true; +@@ -1781,6 +_,7 @@ + + throw new ReportedException(crashreport); + } ++ net.minecraftforge.event.ForgeEventFactory.onPostLevelTick(this.f_91073_, () -> true); + } + + this.f_91026_.m_6182_("animateTick"); @@ -1800,6 +_,8 @@ this.f_91026_.m_6182_("keyboard"); this.f_91068_.m_90931_(); diff --git a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java index d7171fa3af..d6eeee6e9b 100644 --- a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java +++ b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java @@ -815,12 +815,12 @@ public class ForgeEventFactory public static void onPreLevelTick(Level level, BooleanSupplier haveTime) { - MinecraftForge.EVENT_BUS.post(new TickEvent.LevelTickEvent(LogicalSide.SERVER, TickEvent.Phase.START, level, haveTime)); + MinecraftForge.EVENT_BUS.post(new TickEvent.LevelTickEvent(level.isClientSide ? LogicalSide.CLIENT : LogicalSide.SERVER, TickEvent.Phase.START, level, haveTime)); } public static void onPostLevelTick(Level level, BooleanSupplier haveTime) { - MinecraftForge.EVENT_BUS.post(new TickEvent.LevelTickEvent(LogicalSide.SERVER, TickEvent.Phase.END, level, haveTime)); + MinecraftForge.EVENT_BUS.post(new TickEvent.LevelTickEvent(level.isClientSide ? LogicalSide.CLIENT : LogicalSide.SERVER, TickEvent.Phase.END, level, haveTime)); } public static void onPreClientTick()