Archiviert
13
0

BlockFlowing NPE fix.

Dieser Commit ist enthalten in:
Erik Broes 2011-03-02 21:24:19 +01:00
Ursprung 34458efd83
Commit 332b0c2ca9

Datei anzeigen

@ -2,12 +2,12 @@ package net.minecraft.server;
import java.util.Random; import java.util.Random;
// CraftBukkit start
import org.bukkit.block.BlockFace; import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.block.CraftBlock; import org.bukkit.craftbukkit.block.CraftBlock;
import org.bukkit.event.Event.Type; import org.bukkit.event.Event.Type;
import org.bukkit.event.block.BlockFromToEvent; import org.bukkit.event.block.BlockFromToEvent;
// CraftBukkit end
public class BlockFlowing extends BlockFluids { public class BlockFlowing extends BlockFluids {
@ -28,8 +28,11 @@ public class BlockFlowing extends BlockFluids {
} }
public void a(World world, int i, int j, int k, Random random) { public void a(World world, int i, int j, int k, Random random) {
// CraftBukkit // CraftBukkit start
CraftBlock source = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i, j, k); CraftWorld cworld = ((WorldServer) world).getWorld();
CraftServer server = ((WorldServer) world).getServer();
CraftBlock source = cworld == null ? null : (CraftBlock) cworld.getBlockAt(i, j, k);
// CraftBukkit end
int l = this.g(world, i, j, k); int l = this.g(world, i, j, k);
byte b0 = 1; byte b0 = 1;
@ -97,7 +100,9 @@ public class BlockFlowing extends BlockFluids {
if (this.l(world, i, j - 1, k)) { if (this.l(world, i, j - 1, k)) {
// CraftBukkit start - send "down" to the server // CraftBukkit start - send "down" to the server
BlockFromToEvent event = new BlockFromToEvent(Type.BLOCK_FLOW, source, BlockFace.DOWN); BlockFromToEvent event = new BlockFromToEvent(Type.BLOCK_FLOW, source, BlockFace.DOWN);
((WorldServer) world).getServer().getPluginManager().callEvent(event); if (server != null) {
server.getPluginManager().callEvent(event);
}
if (!event.isCancelled()) { if (!event.isCancelled()) {
if (l >= 8) { if (l >= 8) {
@ -125,7 +130,11 @@ public class BlockFlowing extends BlockFluids {
for (BlockFace currentFace: faces) { for (BlockFace currentFace: faces) {
if (aboolean[index]) { if (aboolean[index]) {
BlockFromToEvent event = new BlockFromToEvent(Type.BLOCK_FLOW, source, currentFace); BlockFromToEvent event = new BlockFromToEvent(Type.BLOCK_FLOW, source, currentFace);
((WorldServer) world).getServer().getPluginManager().callEvent(event);
if (server != null) {
server.getPluginManager().callEvent(event);
}
if (!event.isCancelled()) { if (!event.isCancelled()) {
this.g(world, i + currentFace.getModX(), j, k + currentFace.getModZ(), i1); this.g(world, i + currentFace.getModX(), j, k + currentFace.getModZ(), i1);
} }