Paper/Spigot-Server-Patches/0302-Don-t-load-chunks-for-villager-door-checks.patch

47 lines
1.8 KiB
Diff
Raw Normal View History

From d6a8a38833e30365423d53a34ce66c467f13c403 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 5 Jun 2018 00:32:22 -0400
Subject: [PATCH] Don't load chunks for villager door checks
This avoids villages spam loading chunks sync
diff --git a/src/main/java/net/minecraft/server/PersistentVillage.java b/src/main/java/net/minecraft/server/PersistentVillage.java
index 01f7cee38..a3aa9f82e 100644
--- a/src/main/java/net/minecraft/server/PersistentVillage.java
+++ b/src/main/java/net/minecraft/server/PersistentVillage.java
@@ -226,7 +226,12 @@ public class PersistentVillage extends PersistentBase {
}
private boolean f(BlockPosition blockposition) {
- IBlockData iblockdata = this.world.getType(blockposition);
+ // Paper start
+ IBlockData iblockdata = this.world.getTypeIfLoaded(blockposition);
+ if (iblockdata == null) {
+ return false;
+ }
+ // Paper end
Block block = iblockdata.getBlock();
return block instanceof BlockDoor ? iblockdata.getMaterial() == Material.WOOD : false;
diff --git a/src/main/java/net/minecraft/server/Village.java b/src/main/java/net/minecraft/server/Village.java
index 2eb33a986..9f1867ddd 100644
--- a/src/main/java/net/minecraft/server/Village.java
+++ b/src/main/java/net/minecraft/server/Village.java
@@ -327,7 +327,12 @@ public class Village {
}
private boolean f(BlockPosition blockposition) {
- IBlockData iblockdata = this.a.getType(blockposition);
+ // Paper start
+ IBlockData iblockdata = this.a.getTypeIfLoaded(blockposition);
+ if (iblockdata == null) {
+ return false;
+ }
+ // Paper end
Block block = iblockdata.getBlock();
return block instanceof BlockDoor ? iblockdata.getMaterial() == Material.WOOD : false;
--
2.18.0