mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-15 07:01:36 +08:00
974b0afca9
CraftBukkit removed their implementation that caused this issue, switching to Mojang's implementation which doesn't appear to share it. I already removed the important bit in the last upstream merge, this is just unused and unnecessary now. So we remove it.
52 lines
2.3 KiB
Diff
52 lines
2.3 KiB
Diff
From 0cf6a91a4ecb498d0867e197dbffb42a5280a096 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Sun, 17 Apr 2016 17:27:09 -0400
|
|
Subject: [PATCH] Prevent Fire from loading chunks
|
|
|
|
This causes the nether to spam unload/reload chunks, plus overall
|
|
bad behavior.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java
|
|
index 94cb9d462..dfc328850 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockFire.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockFire.java
|
|
@@ -164,6 +164,7 @@ public class BlockFire extends Block {
|
|
}
|
|
|
|
BlockPosition blockposition1 = blockposition.a(j, l, k);
|
|
+ if (!world.isLoaded(blockposition1)) continue; // Paper
|
|
int j1 = this.d(world, blockposition1);
|
|
|
|
if (j1 > 0) {
|
|
@@ -232,10 +233,14 @@ public class BlockFire extends Block {
|
|
}
|
|
|
|
private void a(World world, BlockPosition blockposition, int i, Random random, int j, BlockPosition sourceposition) { // CraftBukkit add sourceposition
|
|
- int k = this.c(world.getType(blockposition).getBlock());
|
|
+ // Paper start
|
|
+ final IBlockData iblockdata = world.getTypeIfLoaded(blockposition);
|
|
+ if (iblockdata == null) return;
|
|
+ int k = this.c(iblockdata.getBlock());
|
|
+ // Paper end
|
|
|
|
if (random.nextInt(i) < k) {
|
|
- IBlockData iblockdata = world.getType(blockposition);
|
|
+ //IBlockData iblockdata = world.getType(blockposition); // Paper
|
|
|
|
// CraftBukkit start
|
|
org.bukkit.block.Block theBlock = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
|
|
@@ -294,7 +299,9 @@ public class BlockFire extends Block {
|
|
for (int k = 0; k < j; ++k) {
|
|
EnumDirection enumdirection = aenumdirection[k];
|
|
|
|
- i = Math.max(this.d(world.getType(blockposition.shift(enumdirection)).getBlock()), i);
|
|
+ final IBlockData type = world.getTypeIfLoaded(blockposition.shift(enumdirection)); // Paper
|
|
+ if (type == null) continue; // Paper
|
|
+ i = Math.max(this.d(type.getBlock()), i); // Paper
|
|
}
|
|
|
|
return i;
|
|
--
|
|
2.12.2.windows.2
|
|
|