summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ItemHoe.java
diff options
context:
space:
mode:
authordurron597 <martin.jared@gmail.com>2011-01-08 06:18:05 -0500
committerdurron597 <martin.jared@gmail.com>2011-01-08 06:18:05 -0500
commitfab66092e2e5379c4f3fa9cf37f37320c8ac0e18 (patch)
tree511d1d2fb5d2bfbea9910eb8e57ae56074d71cba /src/main/java/net/minecraft/server/ItemHoe.java
parent65c8df24b60443ee2c7932fd68d498694ec5ede2 (diff)
downloadcraftbukkit-fab66092e2e5379c4f3fa9cf37f37320c8ac0e18.tar
craftbukkit-fab66092e2e5379c4f3fa9cf37f37320c8ac0e18.tar.gz
craftbukkit-fab66092e2e5379c4f3fa9cf37f37320c8ac0e18.tar.lz
craftbukkit-fab66092e2e5379c4f3fa9cf37f37320c8ac0e18.tar.xz
craftbukkit-fab66092e2e5379c4f3fa9cf37f37320c8ac0e18.zip
Fixed lack of calling callEvent(event), finished Item Use
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemHoe.java')
-rw-r--r--src/main/java/net/minecraft/server/ItemHoe.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/ItemHoe.java b/src/main/java/net/minecraft/server/ItemHoe.java
new file mode 100644
index 00000000..4002370f
--- /dev/null
+++ b/src/main/java/net/minecraft/server/ItemHoe.java
@@ -0,0 +1,63 @@
+package net.minecraft.server;
+
+import org.bukkit.craftbukkit.CraftBlock;
+import org.bukkit.craftbukkit.CraftItemStack;
+import org.bukkit.craftbukkit.CraftPlayer;
+import org.bukkit.event.Event.Type;
+import org.bukkit.event.player.PlayerItemEvent;
+
+
+public class ItemHoe extends Item {
+
+ public ItemHoe(int i, int j) {
+ super(i);
+ aX = 1;
+ aY = 32 << j;
+ }
+
+ public boolean a(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) {
+ int i1 = world.a(i, j, k);
+ Material material = world.c(i, j + 1, k);
+
+ if (!material.a() && i1 == Block.u.bh || i1 == Block.v.bh) {
+ // Craftbukkit start
+ // Hoes
+ CraftBlock blockClicked = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i, j, k);
+ CraftItemStack itemInHand = new CraftItemStack(itemstack);
+ CraftPlayer thePlayer = new CraftPlayer(((WorldServer) world).getServer(), (EntityPlayerMP) entityplayer);
+ PlayerItemEvent pie = new PlayerItemEvent(Type.PLAYER_ITEM, thePlayer, itemInHand, blockClicked, CraftBlock.notchToBlockFace(l));
+
+ ((WorldServer) world).getServer().getPluginManager().callEvent(pie);
+
+ if (pie.isCancelled()) return false;
+
+ Block block = Block.aA;
+
+ world.a((float) i + 0.5F, (float) j + 0.5F, (float) k + 0.5F, block.bq.c(), (block.bq.a() + 1.0F) / 2.0F, block.bq.b() * 0.8F);
+ if (world.z) {
+ return true;
+ }
+ world.d(i, j, k, block.bh);
+ itemstack.b(1);
+ if (world.l.nextInt(8) == 0 && i1 == Block.u.bh) {
+ int j1 = 1;
+
+ for (int k1 = 0; k1 < j1; k1++) {
+ float f = 0.7F;
+ float f1 = world.l.nextFloat() * f + (1.0F - f) * 0.5F;
+ float f2 = 1.2F;
+ float f3 = world.l.nextFloat() * f + (1.0F - f) * 0.5F;
+ EntityItem entityitem = new EntityItem(world, (float) i + f1, (float) j + f2, (float) k + f3, new ItemStack(Item.Q));
+
+ entityitem.c = 10;
+ world.a(entityitem);
+ }
+
+ }
+ return true;
+ } else {
+ return false;
+ }
+ }
+}
+