Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-15 04:20:04 +01:00
36f34f01c0
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: da9ef3c5 #496: Add methods to get/set ItemStacks in EquipmentSlots 3abebc9f #492: Let Tameable extend Animals rather than Entity 941111a0 #495: Expose ItemStack and hand used in PlayerShearEntityEvent 4fe19cae #494: InventoryView - Add missing Brewing FUEL_TIME CraftBukkit Changes:933e9094
#664: Add methods to get/set ItemStacks in EquipmentSlots18722312
#662: Expose ItemStack and hand used in PlayerShearEntityEvent
34 Zeilen
1.8 KiB
Diff
34 Zeilen
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Thu, 3 Nov 2016 20:28:12 -0400
|
|
Subject: [PATCH] Don't load Chunks from Hoppers and other things
|
|
|
|
Hoppers call this to I guess "get the primary side" of a double sided chest.
|
|
|
|
If the double sided chest crosses chunk lines, it causes the chunk to load.
|
|
This will end up causing sync chunk loads, which will unload with Chunk GC,
|
|
only to be reloaded again the next tick.
|
|
|
|
This of course is undesirable, so just return the loaded side as "primary"
|
|
and treat it as a single chest if the other sides are unloaded
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/DoubleBlockFinder.java b/src/main/java/net/minecraft/server/DoubleBlockFinder.java
|
|
index 3cb6e60895637405f163c1fac731926ee2cf0d2c..7a16a3e0e209b254db0ec15212d51fab71c17f60 100644
|
|
--- a/src/main/java/net/minecraft/server/DoubleBlockFinder.java
|
|
+++ b/src/main/java/net/minecraft/server/DoubleBlockFinder.java
|
|
@@ -21,8 +21,12 @@ public class DoubleBlockFinder {
|
|
return new DoubleBlockFinder.Result.Single<>(s0);
|
|
} else {
|
|
BlockPosition blockposition1 = blockposition.shift((EnumDirection) function1.apply(iblockdata));
|
|
- IBlockData iblockdata1 = generatoraccess.getType(blockposition1);
|
|
-
|
|
+ // Paper start - don't load chunks if the other side of the chest is in unloaded chunk
|
|
+ IBlockData iblockdata1 = generatoraccess.getTypeIfLoaded(blockposition1);
|
|
+ if (iblockdata1 == null) {
|
|
+ return new DoubleBlockFinder.Result.Single<>(s0);
|
|
+ }
|
|
+ // Paper end
|
|
if (iblockdata1.getBlock() == iblockdata.getBlock()) {
|
|
DoubleBlockFinder.BlockType doubleblockfinder_blocktype1 = (DoubleBlockFinder.BlockType) function.apply(iblockdata1);
|
|
|