Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-15 04:20:04 +01:00
cbd70031ec
--- work/CraftBukkit Submodule work/CraftBukkit d7bebeff0..acbc348e9: > SPIGOT-4477: Arrows only firing direction of boat > Improve zombie villagers --- work/Spigot Submodule work/Spigot dcd16439b..e8ded36bc: > Rebuild patches > Add PlayerConnection timings
36 Zeilen
2.0 KiB
Diff
36 Zeilen
2.0 KiB
Diff
From a55fa31b0d23301861e55b4c70ebee7ad66c519d Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Mon, 26 Nov 2018 19:44:01 -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 7633a613..bc231c7f 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -932,7 +932,8 @@ public abstract class World implements IBlockAccess {
|
|
int i1 = MathHelper.floor(vec3d.y);
|
|
int j1 = MathHelper.floor(vec3d.z);
|
|
BlockPosition blockposition = new BlockPosition(l, i1, j1);
|
|
- IBlockData iblockdata = this.getType(blockposition);
|
|
+ IBlockData iblockdata = this.getTypeIfLoaded(blockposition); // Paper
|
|
+ if (iblockdata == null) return null; // Paper
|
|
Block block = iblockdata.getBlock();
|
|
|
|
if ((!flag1 || iblockdata.d(this, blockposition) != Block.k) && block.a(iblockdata, flag)) {
|
|
@@ -1034,7 +1035,8 @@ public abstract class World implements IBlockAccess {
|
|
i1 = MathHelper.floor(vec3d.y) - (enumdirection == EnumDirection.UP ? 1 : 0);
|
|
j1 = MathHelper.floor(vec3d.z) - (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
|
|
Block block1 = iblockdata1.getBlock();
|
|
|
|
if (!flag1 || iblockdata1.getMaterial() == Material.PORTAL || iblockdata1.d(this, blockposition) != Block.k) {
|
|
--
|
|
2.19.2
|
|
|