From 60819c6693daf19dde68b04af38a4fee8c7da988 Mon Sep 17 00:00:00 2001 From: Travis Watkins Date: Wed, 24 Oct 2012 22:53:23 -0500 Subject: Update CraftBukkit to Minecraft 1.4(.2). --- .../java/net/minecraft/server/ItemHanging.java | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/main/java/net/minecraft/server/ItemHanging.java (limited to 'src/main/java/net/minecraft/server/ItemHanging.java') diff --git a/src/main/java/net/minecraft/server/ItemHanging.java b/src/main/java/net/minecraft/server/ItemHanging.java new file mode 100644 index 00000000..85ccd00c --- /dev/null +++ b/src/main/java/net/minecraft/server/ItemHanging.java @@ -0,0 +1,61 @@ +package net.minecraft.server; + +// CraftBukkit start +import org.bukkit.entity.Player; +import org.bukkit.event.painting.PaintingPlaceEvent; +// CraftBukkit end + +public class ItemHanging extends Item { + + private final Class a; + + public ItemHanging(int i, Class oclass) { + super(i); + this.a = oclass; + this.a(CreativeModeTab.c); + } + + public boolean interactWith(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l, float f, float f1, float f2) { + if (l == 0) { + return false; + } else if (l == 1) { + return false; + } else { + int i1 = Direction.e[l]; + EntityHanging entityhanging = this.a(world, i, j, k, i1); + + if (!entityhuman.a(i, j, k, l, itemstack)) { + return false; + } else { + if (entityhanging != null && entityhanging.survives()) { + if (!world.isStatic) { + // CraftBukkit start + if (entityhanging instanceof EntityPainting) { + Player who = (entityhuman == null) ? null : (Player) entityhuman.getBukkitEntity(); + org.bukkit.block.Block blockClicked = world.getWorld().getBlockAt(i, j, k); + org.bukkit.block.BlockFace blockFace = org.bukkit.craftbukkit.block.CraftBlock.notchToBlockFace(l); + + PaintingPlaceEvent event = new PaintingPlaceEvent((org.bukkit.entity.Painting) entityhanging.getBukkitEntity(), who, blockClicked, blockFace); + world.getServer().getPluginManager().callEvent(event); + + if (event.isCancelled()) { + return false; + } + } + // CraftBukkit end + + world.addEntity(entityhanging); + } + + --itemstack.count; + } + + return true; + } + } + } + + private EntityHanging a(World world, int i, int j, int k, int l) { + return (EntityHanging) (this.a == EntityPainting.class ? new EntityPainting(world, i, j, k, l) : (this.a == EntityItemFrame.class ? new EntityItemFrame(world, i, j, k, l) : null)); + } +} -- cgit v1.2.3