Prevent Enderman from loading chunks

This commit is contained in:
Shane Freeder 2018-12-18 02:20:03 +00:00
parent 6c34639605
commit b2f6b9f7ea
No known key found for this signature in database
GPG Key ID: A3F61EA5A085289C
2 changed files with 34 additions and 1 deletions

View File

@ -1,4 +1,4 @@
From bde91baa8fe7c3bd031f0cff6c602a672a50e71a Mon Sep 17 00:00:00 2001
From 164c726a9beb2ae4706cee345a93948451828d46 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Tue, 1 Mar 2016 14:47:52 -0600
Subject: [PATCH] Player affects spawning API

View File

@ -0,0 +1,33 @@
From dac80403916d0d136afa630b00ee4a56c0bf983f 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 7ef46851e..1df974bc9 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -305,7 +305,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);
@@ -343,7 +344,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.20.0