Paper/Spigot-Server-Patches/0270-Prevent-Frosted-Ice-from-loading-holding-chunks.patch
Aikar b922ff9886
Fix issues with getBlockState(false) not loading Tile Entity data
This only impacted people who used our useSnapshots new API in a plugin,
which obviously was no one as the data result was completely broken.

Merged the NPE check patch into mine since it has to handle it too.
2018-06-30 01:40:52 -04:00

35 lines
1.7 KiB
Diff

From f85b94a3c719ead513133dfa1f9d26e8f167a979 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 10 Mar 2018 16:33:15 -0500
Subject: [PATCH] Prevent Frosted Ice from loading/holding chunks
diff --git a/src/main/java/net/minecraft/server/BlockIceFrost.java b/src/main/java/net/minecraft/server/BlockIceFrost.java
index a8dbbf20a..87f40bfcf 100644
--- a/src/main/java/net/minecraft/server/BlockIceFrost.java
+++ b/src/main/java/net/minecraft/server/BlockIceFrost.java
@@ -50,7 +50,9 @@ public class BlockIceFrost extends BlockIce {
for (int k = 0; k < j; ++k) {
EnumDirection enumdirection = aenumdirection[k];
- if (world.getType(blockposition.shift(enumdirection)).getBlock() == this) {
+ IBlockData iblockdata1 = world.getTypeIfLoaded(blockposition.shift(enumdirection)); // Paper - don't load chunks
+ if (iblockdata1 == null) continue; // Paper
+ if (iblockdata1.getBlock() == this) { // Paper
++i;
if (i >= 4) {
return i;
@@ -76,7 +78,8 @@ public class BlockIceFrost extends BlockIce {
for (int k = 0; k < j; ++k) {
EnumDirection enumdirection = aenumdirection[k];
BlockPosition blockposition1 = blockposition.shift(enumdirection);
- IBlockData iblockdata1 = world.getType(blockposition1);
+ IBlockData iblockdata1 = world.getTypeIfLoaded(blockposition1); // Paper - don't load chunks
+ if (iblockdata1 == null) continue; // Paper
if (iblockdata1.getBlock() == this) {
this.a(world, blockposition1, iblockdata1, random, false);
--
2.18.0