diff options
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemPainting.java')
-rw-r--r-- | src/main/java/net/minecraft/server/ItemPainting.java | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/ItemPainting.java b/src/main/java/net/minecraft/server/ItemPainting.java new file mode 100644 index 00000000..087880a9 --- /dev/null +++ b/src/main/java/net/minecraft/server/ItemPainting.java @@ -0,0 +1,69 @@ +package net.minecraft.server; + +// CraftBukkit start +import org.bukkit.Bukkit; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Painting; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.painting.PaintingPlaceEvent; + +import org.bukkit.craftbukkit.CraftWorld; +import org.bukkit.craftbukkit.block.CraftBlock; +// CraftBukkit end + +public class ItemPainting extends Item { + + public ItemPainting(int i) { + super(i); + } + + public boolean a(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l) { + if (l == 0) { + return false; + } else if (l == 1) { + return false; + } else { + byte b0 = 0; + + if (l == 4) { + b0 = 1; + } + + if (l == 3) { + b0 = 2; + } + + if (l == 5) { + b0 = 3; + } + + EntityPainting entitypainting = new EntityPainting(world, i, j, k, b0); + + if (entitypainting.h()) { + if (!world.isStatic) { + // CraftBukkit start + CraftWorld craftWorld = ((WorldServer) world).getWorld(); + Painting painting = (Painting) entitypainting.getBukkitEntity(); + Player who = (entityhuman == null) ? null : (Player) entityhuman.getBukkitEntity(); + + Block blockClicked = craftWorld.getBlockAt(i, j, k); + BlockFace blockFace = CraftBlock.notchToBlockFace(l); + + PaintingPlaceEvent event = new PaintingPlaceEvent(painting, who, blockClicked, blockFace); + Bukkit.getServer().getPluginManager().callEvent(event); + if (event.isCancelled()) { + return false; + } + // CraftBukkit end + world.addEntity(entitypainting); + } + + --itemstack.count; + } + + return true; + } + } +} |