aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0401-Prevent-rayTrace-from-loading-chunks.patch
blob: 80644b4b1a89e08262042f64685b118682c3504d (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
34
35
From b5b512f38eb6de0b6887ea7b61cc07acb4043188 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 7721dfee65..1454af710e 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.getFluid(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.getFluid(blockposition);
 
                     if (!flag || iblockdata1.getMaterial() == Material.PORTAL || !iblockdata1.getCollisionShape(this, blockposition).isEmpty()) {
-- 
2.21.0