From cbac5b0524f7e90693e42a9f60698d1d271a6cf6 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 26 Nov 2018 19:24:48 -0500 Subject: [PATCH] Prevent rayTrace from loading chunks - Fixes #1706 ray tracing into an unloaded chunk should be treated as a miss this saves a ton of lag for when AI tries to raytrace near unloaded chunks. --- ...Prevent-rayTrace-from-loading-chunks.patch | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Spigot-Server-Patches/0414-Prevent-rayTrace-from-loading-chunks.patch diff --git a/Spigot-Server-Patches/0414-Prevent-rayTrace-from-loading-chunks.patch b/Spigot-Server-Patches/0414-Prevent-rayTrace-from-loading-chunks.patch new file mode 100644 index 0000000000..2c8a7bae0d --- /dev/null +++ b/Spigot-Server-Patches/0414-Prevent-rayTrace-from-loading-chunks.patch @@ -0,0 +1,35 @@ +From 9b79efe86e1e92e19577146c85b57c55561b1712 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Mon, 26 Nov 2018 19:21:58 -0500 +Subject: [PATCH] Prevent rayTrace from loading chunks + +ray tracing into an unloaded chunk should be treated as a miss +this saves a ton of lag for when AI tries to raytrace near unloaded chunks. + +diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java +index 027871c00b..00773a9afa 100644 +--- a/src/main/java/net/minecraft/server/World.java ++++ b/src/main/java/net/minecraft/server/World.java +@@ -860,7 +860,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc + int i1 = MathHelper.floor(d1); + int j1 = MathHelper.floor(d2); + BlockPosition blockposition = new BlockPosition(l, i1, j1); +- IBlockData iblockdata = this.getType(blockposition); ++ IBlockData iblockdata = this.getTypeIfLoaded(blockposition); // Paper ++ if (iblockdata == null) return null; // Paper + Fluid fluid = this.b(blockposition); + boolean flag2; + boolean flag3; +@@ -982,7 +983,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc + i1 = MathHelper.floor(d1) - (enumdirection == EnumDirection.UP ? 1 : 0); + j1 = MathHelper.floor(d2) - (enumdirection == EnumDirection.SOUTH ? 1 : 0); + blockposition = new BlockPosition(l, i1, j1); +- IBlockData iblockdata1 = this.getType(blockposition); ++ IBlockData iblockdata1 = this.getTypeIfLoaded(blockposition); // Paper ++ if (iblockdata1 == null) return null; // Paper + Fluid fluid1 = this.b(blockposition); + + if (!flag || iblockdata1.getMaterial() == Material.PORTAL || !iblockdata1.getCollisionShape(this, blockposition).isEmpty()) { +-- +2.19.1 +