diff options
author | durron597 <martin.jared@gmail.com> | 2011-01-08 06:18:05 -0500 |
---|---|---|
committer | durron597 <martin.jared@gmail.com> | 2011-01-08 06:18:05 -0500 |
commit | fab66092e2e5379c4f3fa9cf37f37320c8ac0e18 (patch) | |
tree | 511d1d2fb5d2bfbea9910eb8e57ae56074d71cba /src/main/java/net/minecraft/server/ItemHoe.java | |
parent | 65c8df24b60443ee2c7932fd68d498694ec5ede2 (diff) | |
download | craftbukkit-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.java | 63 |
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; + } + } +} + |