From babef7161637f939fc090e062bdbcc3dbb1bcabb Mon Sep 17 00:00:00 2001 From: Brennan Ward Date: Wed, 7 Jun 2023 06:22:00 -0700 Subject: [PATCH] Fix erroneous getLevel call when firing SpecialSpawn (#9520) --- .../net/minecraft/world/entity/monster/Strider.java.patch | 2 +- .../minecraft/net/minecraft/world/level/BaseSpawner.java.patch | 2 +- .../net/minecraft/world/level/NaturalSpawner.java.patch | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/patches/minecraft/net/minecraft/world/entity/monster/Strider.java.patch b/patches/minecraft/net/minecraft/world/entity/monster/Strider.java.patch index c572973851..8386d61d5c 100644 --- a/patches/minecraft/net/minecraft/world/entity/monster/Strider.java.patch +++ b/patches/minecraft/net/minecraft/world/entity/monster/Strider.java.patch @@ -4,7 +4,7 @@ private SpawnGroupData m_33881_(ServerLevelAccessor p_33882_, DifficultyInstance p_33883_, Mob p_33884_, @Nullable SpawnGroupData p_33885_) { p_33884_.m_7678_(this.m_20185_(), this.m_20186_(), this.m_20189_(), this.m_146908_(), 0.0F); -+ if (!net.minecraftforge.event.ForgeEventFactory.doSpecialSpawn(p_33884_, p_33882_.m_6018_(), (float)p_33884_.m_20185_(), (float)p_33884_.m_20186_(), (float)p_33884_.m_20189_(), null, MobSpawnType.JOCKEY)) ++ if (!net.minecraftforge.event.ForgeEventFactory.doSpecialSpawn(p_33884_, p_33882_, (float)p_33884_.m_20185_(), (float)p_33884_.m_20186_(), (float)p_33884_.m_20189_(), null, MobSpawnType.JOCKEY)) p_33884_.m_6518_(p_33882_, p_33883_, MobSpawnType.JOCKEY, p_33885_, (CompoundTag)null); p_33884_.m_7998_(this, true); return new AgeableMob.AgeableMobGroupData(0.0F); diff --git a/patches/minecraft/net/minecraft/world/level/BaseSpawner.java.patch b/patches/minecraft/net/minecraft/world/level/BaseSpawner.java.patch index d3af819e40..6fe5cf9ad0 100644 --- a/patches/minecraft/net/minecraft/world/level/BaseSpawner.java.patch +++ b/patches/minecraft/net/minecraft/world/level/BaseSpawner.java.patch @@ -12,7 +12,7 @@ } + // Fire this early so mods can react to mobs that vanilla normally ignores. -+ if (!net.minecraftforge.event.ForgeEventFactory.doSpecialSpawn(mob, (LevelAccessor)p_151312_, (float)entity.m_20185_(), (float)entity.m_20186_(), (float)entity.m_20189_(), this, MobSpawnType.SPAWNER)) ++ if (!net.minecraftforge.event.ForgeEventFactory.doSpecialSpawn(mob, p_151312_, (float)entity.m_20185_(), (float)entity.m_20186_(), (float)entity.m_20189_(), this, MobSpawnType.SPAWNER)) if (this.f_45444_.m_186567_().m_128440_() == 1 && this.f_45444_.m_186567_().m_128425_("id", 8)) { ((Mob)entity).m_6518_(p_151312_, p_151312_.m_6436_(entity.m_20183_()), MobSpawnType.SPAWNER, (SpawnGroupData)null, (CompoundTag)null); } diff --git a/patches/minecraft/net/minecraft/world/level/NaturalSpawner.java.patch b/patches/minecraft/net/minecraft/world/level/NaturalSpawner.java.patch index 7bc05ea8e2..cb73345d57 100644 --- a/patches/minecraft/net/minecraft/world/level/NaturalSpawner.java.patch +++ b/patches/minecraft/net/minecraft/world/level/NaturalSpawner.java.patch @@ -24,7 +24,7 @@ - if (m_46991_(p_47040_, mob, d2)) { + int canSpawn = net.minecraftforge.common.ForgeHooks.canEntitySpawn(mob, p_47040_, d0, i, d1, null, MobSpawnType.NATURAL); + if (canSpawn == 1 || (canSpawn == 0 && m_46991_(p_47040_, mob, d2))) { -+ if (!net.minecraftforge.event.ForgeEventFactory.doSpecialSpawn(mob, (LevelAccessor) p_47040_, (float)d0, (float)i, (float)d1, null, MobSpawnType.NATURAL)) ++ if (!net.minecraftforge.event.ForgeEventFactory.doSpecialSpawn(mob, p_47040_, (float)d0, (float)i, (float)d1, null, MobSpawnType.NATURAL)) spawngroupdata = mob.m_6518_(p_47040_, p_47040_.m_6436_(mob.m_20183_()), MobSpawnType.NATURAL, spawngroupdata, (CompoundTag)null); ++j; ++l1;