From d98a2ce8557954a8e01732faa85d2e64995de321 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 7bea86f52b..ea3a6f2fb1 100644
--- a/src/main/java/net/minecraft/server/BlockIceFrost.java
+++ b/src/main/java/net/minecraft/server/BlockIceFrost.java
@@ -16,7 +16,8 @@ public class BlockIceFrost extends BlockIce {
             try (BlockPosition.b blockposition$b = BlockPosition.b.r()) {
                 for(EnumDirection enumdirection : EnumDirection.values()) {
                     blockposition$b.j(blockposition).d(enumdirection);
-                    IBlockData iblockdata1 = world.getType(blockposition$b);
+                    IBlockData iblockdata1 = world.getTypeIfLoaded(blockposition$b); // Paper - don't load chunks
+                    if (iblockdata1 == null) continue; // Paper
                     if (iblockdata1.getBlock() == this && !this.c(iblockdata1, world, blockposition$b)) {
                         world.J().a(blockposition$b, this, MathHelper.nextInt(random, world.paperConfig.frostedIceDelayMin, world.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
                     }
@@ -53,7 +54,7 @@ public class BlockIceFrost extends BlockIce {
         try (BlockPosition.b blockposition$b = BlockPosition.b.r()) {
             for(EnumDirection enumdirection : EnumDirection.values()) {
                 blockposition$b.j(blockposition).d(enumdirection);
-                if (iblockaccess.getType(blockposition$b).getBlock() == this) {
+                if (((World) iblockaccess).getBlockIfLoaded(blockposition$b) == this) { // Paper - don't load chunks
                     ++j;
                     if (j >= i) {
                         boolean flag = false;
-- 
2.18.0