diff options
author | Erik Broes <erikbroes@grum.nl> | 2011-03-23 16:38:42 +0100 |
---|---|---|
committer | Erik Broes <erikbroes@grum.nl> | 2011-03-23 16:51:44 +0100 |
commit | 49043a8aff90ba6bde2d9f0d5de20898ec560217 (patch) | |
tree | 2a56fc6be87c0b66f9f2ec6fdf8361a3de8cf23c /src/main/java/net/minecraft/server/ItemInWorldManager.java | |
parent | f33de669fb1cb86ba668d60ba2f2352fd63b4417 (diff) | |
download | craftbukkit-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.java | 17 |
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; |