summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ItemBoat.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/ItemBoat.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/ItemBoat.java')
-rw-r--r--src/main/java/net/minecraft/server/ItemBoat.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/ItemBoat.java b/src/main/java/net/minecraft/server/ItemBoat.java
new file mode 100644
index 00000000..61102abb
--- /dev/null
+++ b/src/main/java/net/minecraft/server/ItemBoat.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 ItemBoat extends Item {
+
+ public ItemBoat(int i) {
+ super(i);
+ aX = 1;
+ }
+
+ public ItemStack a(ItemStack itemstack, World world, EntityPlayer entityplayer) {
+ float f = 1.0F;
+ float f1 = entityplayer.y + (entityplayer.w - entityplayer.y) * f;
+ float f2 = entityplayer.x + (entityplayer.v - entityplayer.x) * f;
+ double d = entityplayer.m + (entityplayer.p - entityplayer.m) * (double) f;
+ double d1 = (entityplayer.n + (entityplayer.q - entityplayer.n) * (double) f + 1.6200000000000001D) - (double) entityplayer.H;
+ double d2 = entityplayer.o + (entityplayer.r - entityplayer.o) * (double) f;
+ Vec3D vec3d = Vec3D.b(d, d1, d2);
+ float f3 = MathHelper.b(-f2 * 0.01745329F - 3.141593F);
+ float f4 = MathHelper.a(-f2 * 0.01745329F - 3.141593F);
+ float f5 = -MathHelper.b(-f1 * 0.01745329F);
+ float f6 = MathHelper.a(-f1 * 0.01745329F);
+ float f7 = f4 * f5;
+ float f8 = f6;
+ float f9 = f3 * f5;
+ double d3 = 5D;
+ Vec3D vec3d1 = vec3d.c((double) f7 * d3, (double) f8 * d3, (double) f9 * d3);
+ MovingObjectPosition movingobjectposition = world.a(vec3d, vec3d1, true);
+
+ if (movingobjectposition == null) {
+ return itemstack;
+ }
+ if (movingobjectposition.a == 0) {
+ int i = movingobjectposition.b;
+ int j = movingobjectposition.c;
+ int k = movingobjectposition.d;
+
+ if (!world.z) {
+ // Craftbukkit start
+ // Boat placement
+ 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(movingobjectposition.e));
+
+ ((WorldServer) world).getServer().getPluginManager().callEvent(pie);
+
+ if (pie.isCancelled()) return itemstack;
+
+ world.a(new EntityBoat(world, (float) i + 0.5F, (float) j + 1.5F, (float) k + 0.5F));
+ }
+ itemstack.a--;
+ }
+ return itemstack;
+ }
+}
+