aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0404-Prevent-Enderman-from-loading-chunks.patch
blob: 326a31378d194202eb2d5b664c7f415b7a89246e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
From ddb7e1081efbe525d9d2daf3cfc5f6a97fc8f65c Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Tue, 18 Dec 2018 02:15:08 +0000
Subject: [PATCH] Prevent Enderman from loading chunks


diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index e4aba0e0a8..9450404428 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -297,7 +297,8 @@ public class EntityEnderman extends EntityMonster {
             int j = MathHelper.floor(this.enderman.locY + random.nextDouble() * 3.0D);
             int k = MathHelper.floor(this.enderman.locZ - 2.0D + random.nextDouble() * 4.0D);
             BlockPosition blockposition = new BlockPosition(i, j, k);
-            IBlockData iblockdata = world.getType(blockposition);
+            IBlockData iblockdata = world.getTypeIfLoaded(blockposition); // Paper
+            if (iblockdata == null) return; // Paper
             Block block = iblockdata.getBlock();
             MovingObjectPosition movingobjectposition = world.rayTrace(new Vec3D((double) ((float) MathHelper.floor(this.enderman.locX) + 0.5F), (double) ((float) j + 0.5F), (double) ((float) MathHelper.floor(this.enderman.locZ) + 0.5F)), new Vec3D((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F)), FluidCollisionOption.NEVER, true, false);
             boolean flag = movingobjectposition != null && movingobjectposition.getBlockPosition().equals(blockposition);
@@ -335,7 +336,8 @@ public class EntityEnderman extends EntityMonster {
             int j = MathHelper.floor(this.a.locY + random.nextDouble() * 2.0D);
             int k = MathHelper.floor(this.a.locZ - 1.0D + random.nextDouble() * 2.0D);
             BlockPosition blockposition = new BlockPosition(i, j, k);
-            IBlockData iblockdata = world.getType(blockposition);
+            IBlockData iblockdata = world.getTypeIfLoaded(blockposition); // Paper
+            if (iblockdata == null) return; // Paper
             IBlockData iblockdata1 = world.getType(blockposition.down());
             IBlockData iblockdata2 = Block.getValidBlockForPosition(getEnderman().getCarried(), getEnderman().world, blockposition); // Paper - Fix MC-124320
 
-- 
2.21.0