2019-02-03 16:34:04 +01:00
|
|
|
From 096328c61aa430d20c20f4834554c9cf8d4986b6 Mon Sep 17 00:00:00 2001
|
2018-11-27 01:24:48 +01:00
|
|
|
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
|
2019-02-03 16:34:04 +01:00
|
|
|
index c412cceff..7e2d8d4c5 100644
|
2018-11-27 01:24:48 +01:00
|
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
2019-02-03 16:34:04 +01:00
|
|
|
@@ -860,7 +860,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
|
2018-11-27 01:24:48 +01:00
|
|
|
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
|
2018-12-08 11:09:55 +01:00
|
|
|
Fluid fluid = this.getFluid(blockposition);
|
2018-11-27 01:24:48 +01:00
|
|
|
boolean flag2;
|
|
|
|
boolean flag3;
|
2019-02-03 16:34:04 +01:00
|
|
|
@@ -982,7 +983,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
|
2018-11-27 01:24:48 +01:00
|
|
|
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
|
2018-12-08 11:09:55 +01:00
|
|
|
Fluid fluid1 = this.getFluid(blockposition);
|
2018-11-27 01:24:48 +01:00
|
|
|
|
|
|
|
if (!flag || iblockdata1.getMaterial() == Material.PORTAL || !iblockdata1.getCollisionShape(this, blockposition).isEmpty()) {
|
|
|
|
--
|
2019-01-17 03:02:56 +01:00
|
|
|
2.20.1
|
2018-11-27 01:24:48 +01:00
|
|
|
|