Paper/Spigot-Server-Patches/0412-Prevent-rayTrace-from-loading-chunks.patch
Zach Brown 8ed2992da9
Make scan-for-legacy-ender-dragon config work again
Portion of diff was dropped in the mappings update commit.

Also remove the option to remove invalid statistics. The server will
automatically do this now as of... 1.13?, our option wasn't even doing anything.
2018-12-14 20:17:27 -05:00

36 lines
2.0 KiB
Diff

From 0acb4ed30df82b52e3d01792980ce3dee59e639d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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 747fda044..bdbacae29 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -858,7 +858,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.getFluid(blockposition);
boolean flag2;
boolean flag3;
@@ -980,7 +981,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.getFluid(blockposition);
if (!flag || iblockdata1.getMaterial() == Material.PORTAL || !iblockdata1.getCollisionShape(this, blockposition).isEmpty()) {
--
2.20.0