summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server
diff options
context:
space:
mode:
authorTahg <tahgtahv@gmail.com>2011-02-24 22:37:47 -0500
committerTahg <tahgtahv@gmail.com>2011-02-24 22:37:47 -0500
commite53fd1367cda547a14fcff89ab41a3f7daad2eac (patch)
tree6a255d6bad05ba4317ec1483258aa3085f23cece /src/main/java/net/minecraft/server
parent13f55ce0c8b5e7ac86c6f0ad50d7cb1f5b796976 (diff)
downloadcraftbukkit-e53fd1367cda547a14fcff89ab41a3f7daad2eac.tar
craftbukkit-e53fd1367cda547a14fcff89ab41a3f7daad2eac.tar.gz
craftbukkit-e53fd1367cda547a14fcff89ab41a3f7daad2eac.tar.lz
craftbukkit-e53fd1367cda547a14fcff89ab41a3f7daad2eac.tar.xz
craftbukkit-e53fd1367cda547a14fcff89ab41a3f7daad2eac.zip
possible fix for block breaking bug
Diffstat (limited to 'src/main/java/net/minecraft/server')
-rw-r--r--src/main/java/net/minecraft/server/ItemInWorldManager.java3
-rw-r--r--src/main/java/net/minecraft/server/NetServerHandler.java55
2 files changed, 32 insertions, 26 deletions
diff --git a/src/main/java/net/minecraft/server/ItemInWorldManager.java b/src/main/java/net/minecraft/server/ItemInWorldManager.java
index 083d2ce3..de770038 100644
--- a/src/main/java/net/minecraft/server/ItemInWorldManager.java
+++ b/src/main/java/net/minecraft/server/ItemInWorldManager.java
@@ -112,7 +112,8 @@ public class ItemInWorldManager {
server.getPluginManager().callEvent(event);
if (event.isCancelled()) {
- return true;
+ MinecraftServer.a.info("A plugin cancelled the block break event");
+ return false;
}
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java
index b49d8765..7b62d346 100644
--- a/src/main/java/net/minecraft/server/NetServerHandler.java
+++ b/src/main/java/net/minecraft/server/NetServerHandler.java
@@ -328,7 +328,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
if (packet14blockdig.e == 0) {
// CraftBukkit start
if (i1 > this.d.spawnProtection || flag) {
- if (blockId > 0) {
+// if (blockId > 0) {
BlockDamageEvent event;
// If the amount of damage that the player is going to do to the block
// is >= 1, then the block is going to break (eg, flowers, torches)
@@ -347,7 +347,10 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
if (!event.isCancelled()) {
this.e.c.a(i, j, k);
}
- }
+ else {
+ MinecraftServer.a.info("A plugin cancelled the block start break event");
+ }
+// }
}
} else if (packet14blockdig.e == 2) {
// CraftBukkit start - Get last block that the player hit
@@ -357,31 +360,33 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
server.getPluginManager().callEvent(event);
if (!event.isCancelled()) {
this.e.c.b(i, j, k);
+ } else {
+ MinecraftServer.a.info("A plugin cancelled the block stop break event");
}
// CraftBukkit end
- } else if (packet14blockdig.e == 1) {
- // CraftBukkit start
- if (i1 > this.d.spawnProtection || flag) {
- BlockDamageEvent event;
- // If the amount of damage going to the block plus the current amount
- // of damage is greater than 1, the block is going to break.
- if (this.e.c.c + damage >= 1.0F) {
- // if we are destroying either a redstone wire with a current greater than 0 or
- // a redstone torch that is on, then we should notify plugins that this block has
- // returned to a current value of 0 (since it will once the redstone is destroyed)
- if ((blockId == Block.REDSTONE_WIRE.id && block.getRawData() > 0) || blockId == Block.REDSTONE_TORCH_ON.id) {
- server.getPluginManager().callEvent( new BlockRedstoneEvent(block, (blockId == Block.REDSTONE_WIRE.id ? block.getRawData() : 15), 0));
- }
- event = new BlockDamageEvent(Type.BLOCK_DAMAGED, block, BlockDamageLevel.BROKEN, player);
- } else {
- event = new BlockDamageEvent(Type.BLOCK_DAMAGED, block, BlockDamageLevel.DIGGING, player);
- }
- server.getPluginManager().callEvent(event);
- if (event.isCancelled()) {
- this.e.c.c = 0; // Reset the amount of damage if stopping break.
- }
- }
- // CraftBukkit end
+// } else if (packet14blockdig.e == 1) {
+// // CraftBukkit start
+// if (i1 > this.d.spawnProtection || flag) {
+// BlockDamageEvent event;
+// // If the amount of damage going to the block plus the current amount
+// // of damage is greater than 1, the block is going to break.
+// if (this.e.c.c + damage >= 1.0F) {
+// // if we are destroying either a redstone wire with a current greater than 0 or
+// // a redstone torch that is on, then we should notify plugins that this block has
+// // returned to a current value of 0 (since it will once the redstone is destroyed)
+// if ((blockId == Block.REDSTONE_WIRE.id && block.getRawData() > 0) || blockId == Block.REDSTONE_TORCH_ON.id) {
+// server.getPluginManager().callEvent( new BlockRedstoneEvent(block, (blockId == Block.REDSTONE_WIRE.id ? block.getRawData() : 15), 0));
+// }
+// event = new BlockDamageEvent(Type.BLOCK_DAMAGED, block, BlockDamageLevel.BROKEN, player);
+// } else {
+// event = new BlockDamageEvent(Type.BLOCK_DAMAGED, block, BlockDamageLevel.DIGGING, player);
+// }
+// server.getPluginManager().callEvent(event);
+// if (event.isCancelled()) {
+// this.e.c.c = 0; // Reset the amount of damage if stopping break.
+// }
+// }
+// // CraftBukkit end
} else if (packet14blockdig.e == 3) {
double d4 = this.e.locX - ((double) i + 0.5D);
double d5 = this.e.locY - ((double) j + 0.5D);