From 22668ad2c26000c6c6d02fdecb70247a5d3c72b7 Mon Sep 17 00:00:00 2001 From: Budschie <65289971+Budschie@users.noreply.github.com> Date: Tue, 28 Jun 2022 05:45:35 +0200 Subject: [PATCH] Add MinecraftServer reference to ServerTickEvent (#8765) --- .../net/minecraft/server/MinecraftServer.java.patch | 4 ++-- .../net/minecraftforge/event/ForgeEventFactory.java | 9 +++++---- .../java/net/minecraftforge/event/TickEvent.java | 13 ++++++++++++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch b/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch index fedd77a81a..8aebabd784 100644 --- a/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch +++ b/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch @@ -95,7 +95,7 @@ public void m_5705_(BooleanSupplier p_129871_) { long i = Util.m_137569_(); -+ net.minecraftforge.event.ForgeEventFactory.onPreServerTick(p_129871_); ++ net.minecraftforge.event.ForgeEventFactory.onPreServerTick(p_129871_, this); ++this.f_129766_; this.m_5703_(p_129871_); if (i - this.f_129724_ >= 5000000000L) { @@ -111,7 +111,7 @@ long i1 = Util.m_137569_(); this.f_129735_.m_13755_(i1 - i); this.f_129754_.m_7238_(); -+ net.minecraftforge.event.ForgeEventFactory.onPostServerTick(p_129871_); ++ net.minecraftforge.event.ForgeEventFactory.onPostServerTick(p_129871_, this); } public void m_5703_(BooleanSupplier p_129954_) { diff --git a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java index 714a75a958..74ee440895 100644 --- a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java +++ b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java @@ -15,6 +15,7 @@ import com.mojang.authlib.GameProfile; import com.mojang.brigadier.CommandDispatcher; import net.minecraft.commands.CommandBuildContext; import net.minecraft.network.chat.ChatSender; +import net.minecraft.server.MinecraftServer; import net.minecraft.server.ReloadableServerResources; import net.minecraft.server.players.PlayerList; import net.minecraft.util.RandomSource; @@ -814,13 +815,13 @@ public class ForgeEventFactory MinecraftForge.EVENT_BUS.post(new TickEvent.ClientTickEvent(TickEvent.Phase.END)); } - public static void onPreServerTick(BooleanSupplier haveTime) + public static void onPreServerTick(BooleanSupplier haveTime, MinecraftServer server) { - MinecraftForge.EVENT_BUS.post(new TickEvent.ServerTickEvent(TickEvent.Phase.START, haveTime)); + MinecraftForge.EVENT_BUS.post(new TickEvent.ServerTickEvent(TickEvent.Phase.START, haveTime, server)); } - public static void onPostServerTick(BooleanSupplier haveTime) + public static void onPostServerTick(BooleanSupplier haveTime, MinecraftServer server) { - MinecraftForge.EVENT_BUS.post(new TickEvent.ServerTickEvent(TickEvent.Phase.END, haveTime)); + MinecraftForge.EVENT_BUS.post(new TickEvent.ServerTickEvent(TickEvent.Phase.END, haveTime, server)); } } diff --git a/src/main/java/net/minecraftforge/event/TickEvent.java b/src/main/java/net/minecraftforge/event/TickEvent.java index 537e2e0d60..d90c890883 100644 --- a/src/main/java/net/minecraftforge/event/TickEvent.java +++ b/src/main/java/net/minecraftforge/event/TickEvent.java @@ -6,6 +6,7 @@ package net.minecraftforge.event; import net.minecraft.world.entity.player.Player; +import net.minecraft.server.MinecraftServer; import java.util.function.BooleanSupplier; @@ -35,11 +36,13 @@ public class TickEvent extends Event public static class ServerTickEvent extends TickEvent { private final BooleanSupplier haveTime; + private final MinecraftServer server; - public ServerTickEvent(Phase phase, BooleanSupplier haveTime) + public ServerTickEvent(Phase phase, BooleanSupplier haveTime, MinecraftServer server) { super(Type.SERVER, LogicalSide.SERVER, phase); this.haveTime = haveTime; + this.server = server; } /** @@ -51,6 +54,14 @@ public class TickEvent extends Event { return this.haveTime.getAsBoolean(); } + + /** + * {@return the server instance} + */ + public MinecraftServer getServer() + { + return server; + } } public static class ClientTickEvent extends TickEvent {