2021-06-11 12:02:28 +00:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 7 Feb 2020 14:36:56 -0600
Subject: [PATCH] Add option to nerf pigmen from nether portals
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
2024-06-13 20:14:13 +00:00
index 631f2d70b5fd6dabc06062e3c77802d2b61398ae..d890331b9bd8c7b29efb21454af34a0b246b1674 100644
2021-06-11 12:02:28 +00:00
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
2024-06-13 20:14:13 +00:00
@@ -404,6 +404,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2024-01-24 10:45:17 +00:00
public void inactiveTick() { }
2024-01-23 14:43:48 +00:00
// Spigot end
2024-01-22 18:01:10 +00:00
protected int numCollisions = 0; // Paper - Cap entity collisions
2024-01-21 11:53:04 +00:00
+ public boolean fromNetherPortal; // Paper - Add option to nerf pigmen from nether portals
2021-12-03 21:28:15 +00:00
public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one
2024-01-24 10:45:17 +00:00
// Paper start - Entity origin API
2021-12-03 21:28:15 +00:00
@javax.annotation.Nullable
2024-06-13 20:14:13 +00:00
@@ -2284,6 +2285,9 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2021-06-11 12:02:28 +00:00
if (spawnedViaMobSpawner) {
2023-12-06 18:36:49 +00:00
nbttagcompound.putBoolean("Paper.FromMobSpawner", true);
2021-06-11 12:02:28 +00:00
}
+ if (fromNetherPortal) {
2023-12-06 18:36:49 +00:00
+ nbttagcompound.putBoolean("Paper.FromNetherPortal", true);
2021-06-11 12:02:28 +00:00
+ }
// Paper end
2023-12-05 22:55:31 +00:00
return nbttagcompound;
2021-06-11 12:02:28 +00:00
} catch (Throwable throwable) {
2024-06-13 20:14:13 +00:00
@@ -2426,6 +2430,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
2021-06-11 12:02:28 +00:00
}
2021-06-13 22:05:18 +00:00
spawnedViaMobSpawner = nbt.getBoolean("Paper.FromMobSpawner"); // Restore entity's from mob spawner status
+ fromNetherPortal = nbt.getBoolean("Paper.FromNetherPortal");
if (nbt.contains("Paper.SpawnReason")) {
String spawnReasonName = nbt.getString("Paper.SpawnReason");
2021-06-11 12:02:28 +00:00
try {
diff --git a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
2024-06-13 20:14:13 +00:00
index 19c813ab9e71eed150ae569f903287e9283d9292..ab1cbcf5ef1ebffd39373bacb2b0983d2c8fa15a 100644
2021-06-11 12:02:28 +00:00
--- a/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/NetherPortalBlock.java
2024-06-13 20:14:13 +00:00
@@ -88,6 +88,8 @@ public class NetherPortalBlock extends Block implements Portal {
2021-06-11 12:02:28 +00:00
if (entity != null) {
entity.setPortalCooldown();
2024-01-21 11:53:04 +00:00
+ entity.fromNetherPortal = true; // Paper - Add option to nerf pigmen from nether portals
+ if (world.paperConfig().entities.behavior.nerfPigmenFromNetherPortals) ((net.minecraft.world.entity.Mob) entity).aware = false; // Paper - Add option to nerf pigmen from nether portals
2021-06-11 12:02:28 +00:00
}
}
}