geforkt von Mirrors/Paper
fe18b38aea
I misread the code and thought the code kept looping until the mob spawn cap was hit. Upon furthur review, this is not true, so this patch doesn't do anything sane.
50 Zeilen
2.2 KiB
Diff
50 Zeilen
2.2 KiB
Diff
From 6869070acce7a2ed7a821bb157c34db70de22c6c 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 cb11099..951f0cf 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockFire.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockFire.java
|
|
@@ -162,6 +162,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) {
|
|
@@ -230,10 +231,12 @@ public class BlockFire extends Block {
|
|
}
|
|
|
|
private void a(World world, BlockPosition blockposition, int i, Random random, int j) {
|
|
- int k = this.c(world.getType(blockposition).getBlock());
|
|
+ final IBlockData iblockdata = world.getTypeIfLoaded(blockposition); // Paper
|
|
+ if (iblockdata == null) return; // Paper
|
|
+ int k = this.c(iblockdata.getBlock()); // Paper
|
|
|
|
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());
|
|
@@ -291,7 +294,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.7.4 (Apple Git-66)
|
|
|