summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ItemInWorldManager.java
diff options
context:
space:
mode:
authorErik Broes <erikbroes@grum.nl>2011-03-23 16:38:42 +0100
committerErik Broes <erikbroes@grum.nl>2011-03-23 16:51:44 +0100
commit49043a8aff90ba6bde2d9f0d5de20898ec560217 (patch)
tree2a56fc6be87c0b66f9f2ec6fdf8361a3de8cf23c /src/main/java/net/minecraft/server/ItemInWorldManager.java
parentf33de669fb1cb86ba668d60ba2f2352fd63b4417 (diff)
downloadcraftbukkit-49043a8aff90ba6bde2d9f0d5de20898ec560217.tar
craftbukkit-49043a8aff90ba6bde2d9f0d5de20898ec560217.tar.gz
craftbukkit-49043a8aff90ba6bde2d9f0d5de20898ec560217.tar.lz
craftbukkit-49043a8aff90ba6bde2d9f0d5de20898ec560217.tar.xz
craftbukkit-49043a8aff90ba6bde2d9f0d5de20898ec560217.zip
Re-Implement BlockDamage
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemInWorldManager.java')
-rw-r--r--src/main/java/net/minecraft/server/ItemInWorldManager.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/net/minecraft/server/ItemInWorldManager.java b/src/main/java/net/minecraft/server/ItemInWorldManager.java
index daa1aad0..6623dc9d 100644
--- a/src/main/java/net/minecraft/server/ItemInWorldManager.java
+++ b/src/main/java/net/minecraft/server/ItemInWorldManager.java
@@ -2,6 +2,7 @@ package net.minecraft.server;
// CraftBukkit start
import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.event.block.BlockDamageEvent;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.event.Event;
@@ -66,9 +67,21 @@ public class ItemInWorldManager {
if (event.useInteractedBlock() != Event.Result.DENY) {
Block.byId[l].b(this.b, i, j, k, this.a);
}
- // CraftBukkit end
- if (l > 0 && Block.byId[l].a(this.a) >= 1.0F) {
+ // Handle hitting a block
+ float toolDamage = Block.byId[l].a(this.a);
+ BlockDamageEvent blockEvent = CraftEventFactory.callBlockDamageEvent(this.a, i, j, k, this.a.inventory.b(), toolDamage >= 1.0f);
+
+ if (blockEvent.isCancelled()) {
+ return;
+ }
+
+ if (blockEvent.getInstaBreak()) {
+ toolDamage = 2.0f;
+ }
+
+ if (toolDamage >= 1.0F) {
+ // CraftBukkit end
this.d(i, j, k);
} else {
this.g = i;