summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ItemPainting.java
diff options
context:
space:
mode:
authorErik Broes <erikbroes@grum.nl>2011-04-25 23:23:42 +0200
committerErik Broes <erikbroes@grum.nl>2011-04-25 23:27:10 +0200
commit70c177e0fbd82890fff9df0075bf7bd7c2a8dc7f (patch)
treed96acde23a60cbf31d9041916dd0522b1ee13623 /src/main/java/net/minecraft/server/ItemPainting.java
parent5fff84c5a9d87ccd050be2a68b299588be766cbe (diff)
downloadcraftbukkit-70c177e0fbd82890fff9df0075bf7bd7c2a8dc7f.tar
craftbukkit-70c177e0fbd82890fff9df0075bf7bd7c2a8dc7f.tar.gz
craftbukkit-70c177e0fbd82890fff9df0075bf7bd7c2a8dc7f.tar.lz
craftbukkit-70c177e0fbd82890fff9df0075bf7bd7c2a8dc7f.tar.xz
craftbukkit-70c177e0fbd82890fff9df0075bf7bd7c2a8dc7f.zip
Implemented painting events (thanks verrier and tanelsuurhans)
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemPainting.java')
-rw-r--r--src/main/java/net/minecraft/server/ItemPainting.java69
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;
+ }
+ }
+}