From 6b04f82e902008d061ed12346380017dc795956a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 10 Mar 2018 16:33:49 -0500
Subject: [PATCH] Prevent Frosted Ice from loading/holding chunks

---
 ...sted-Ice-from-loading-holding-chunks.patch | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 Spigot-Server-Patches/0273-Prevent-Frosted-Ice-from-loading-holding-chunks.patch

diff --git a/Spigot-Server-Patches/0273-Prevent-Frosted-Ice-from-loading-holding-chunks.patch b/Spigot-Server-Patches/0273-Prevent-Frosted-Ice-from-loading-holding-chunks.patch
new file mode 100644
index 000000000..6e1c44d81
--- /dev/null
+++ b/Spigot-Server-Patches/0273-Prevent-Frosted-Ice-from-loading-holding-chunks.patch
@@ -0,0 +1,34 @@
+From cbb76ce2d26dab508d9e5b26c2eccc11a37d6275 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.16.2
+