From 59a7bbdb5750a2b327f9069bb18ed8ed49167308 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sun, 12 May 2024 13:48:20 -0700 Subject: [PATCH] Fix finalizeSpawn's return value not being used correctly. Closes #9964 --- .../net/minecraft/server/level/ServerLevel.java.patch | 8 ++++++++ .../java/net/minecraftforge/event/ForgeEventFactory.java | 5 +++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/patches/minecraft/net/minecraft/server/level/ServerLevel.java.patch b/patches/minecraft/net/minecraft/server/level/ServerLevel.java.patch index 51261cc6a0..df2d2792fd 100644 --- a/patches/minecraft/net/minecraft/server/level/ServerLevel.java.patch +++ b/patches/minecraft/net/minecraft/server/level/ServerLevel.java.patch @@ -75,6 +75,14 @@ } } +@@ -738,6 +_,7 @@ + p_8648_.tickCount++; + this.getProfiler().push(() -> BuiltInRegistries.ENTITY_TYPE.getKey(p_8648_.getType()).toString()); + profilerfiller.incrementCounter("tickNonPassenger"); ++ if (p_8648_.canUpdate()) + p_8648_.tick(); + this.getProfiler().pop(); + @@ -755,6 +_,7 @@ ProfilerFiller profilerfiller = this.getProfiler(); profilerfiller.push(() -> BuiltInRegistries.ENTITY_TYPE.getKey(p_8664_.getType()).toString()); diff --git a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java index 94baae5c6c..350660613c 100644 --- a/src/main/java/net/minecraftforge/event/ForgeEventFactory.java +++ b/src/main/java/net/minecraftforge/event/ForgeEventFactory.java @@ -347,9 +347,9 @@ public final class ForgeEventFactory { boolean cancel = post(event); if (!cancel) - mob.finalizeSpawn(level, event.getDifficulty(), event.getSpawnType(), event.getSpawnData()); + return mob.finalizeSpawn(level, event.getDifficulty(), event.getSpawnType(), event.getSpawnData()); - return cancel ? null : event.getSpawnData(); + return null; } /** @@ -840,6 +840,7 @@ public final class ForgeEventFactory { LevelEvent.PotentialSpawns event = new LevelEvent.PotentialSpawns(level, category, pos, oldList); if (post(event)) return WeightedRandomList.create(); + //System.out.println("List: " + oldList.unwrap() + " " + event.getSpawnerDataList()); return WeightedRandomList.create(event.getSpawnerDataList()); }