summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ItemSign.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemSign.java')
-rw-r--r--src/main/java/net/minecraft/server/ItemSign.java113
1 files changed, 60 insertions, 53 deletions
diff --git a/src/main/java/net/minecraft/server/ItemSign.java b/src/main/java/net/minecraft/server/ItemSign.java
index e4241e95..5d68b0b6 100644
--- a/src/main/java/net/minecraft/server/ItemSign.java
+++ b/src/main/java/net/minecraft/server/ItemSign.java
@@ -15,68 +15,75 @@ public class ItemSign extends Item {
public ItemSign(int i) {
super(i);
- bc = 64;
- bb = 1;
+ this.durability = 64;
+ this.maxStackSize = 1;
}
- public boolean a(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) {
+ public boolean a(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l) {
if (l == 0) {
return false;
- }
- if (!world.c(i, j, k).a()) {
+ } else if (!world.getMaterial(i, j, k).isBuildable()) {
return false;
- }
+ } else {
+ // CraftBukkit start - store the clicked block
+ CraftWorld craftWorld = ((WorldServer) world).getWorld();
+ CraftServer craftServer = ((WorldServer) world).getServer();
+ org.bukkit.block.Block blockClicked = craftWorld.getBlockAt(i, j, k);
+ //CraftBukkit end
- // CraftBukkit - store the clicked block
- CraftWorld craftWorld = ((WorldServer) world).getWorld();
- CraftServer craftServer = ((WorldServer) world).getServer();
- org.bukkit.block.Block blockClicked = craftWorld.getBlockAt(i, j, k);
-
- if (l == 1) {
- j++;
- }
- if (l == 2) {
- k--;
- }
- if (l == 3) {
- k++;
- }
- if (l == 4) {
- i--;
- }
- if (l == 5) {
- i++;
- }
- if (!Block.aD.a(world, i, j, k)) {
- return false;
- }
+ if (l == 1) {
+ ++j;
+ }
- // CraftBukkit start
- // Signs
- Type eventType = Type.PLAYER_ITEM;
- Player who = (entityplayer == null)?null:(Player)entityplayer.getBukkitEntity();
- org.bukkit.inventory.ItemStack itemInHand = new CraftItemStack(itemstack);
- BlockFace blockface = CraftBlock.notchToBlockFace(1);
-
- PlayerItemEvent pie = new PlayerItemEvent(eventType, who, itemInHand, blockClicked, blockface);
- craftServer.getPluginManager().callEvent(pie);
-
- if (pie.isCancelled()) {
- return false;
- }
- // CraftBukkit end
+ if (l == 2) {
+ --k;
+ }
- if (l == 1) {
- world.b(i, j, k, Block.aD.bi, MathHelper.b((double) (((entityplayer.v + 180F) * 16F) / 360F) + 0.5D) & 0xf);
- } else {
- world.b(i, j, k, Block.aI.bi, l);
- }
- itemstack.a--;
- TileEntitySign tileentitysign = (TileEntitySign) world.m(i, j, k);
+ if (l == 3) {
+ ++k;
+ }
+
+ if (l == 4) {
+ --i;
+ }
+
+ if (l == 5) {
+ ++i;
+ }
+
+ if (!Block.SIGN_POST.a(world, i, j, k)) {
+ return false;
+ } else {
+ // CraftBukkit start
+ // Signs
+ Type eventType = Type.PLAYER_ITEM;
+ Player who = (entityhuman == null) ? null : (Player) entityhuman.getBukkitEntity();
+ org.bukkit.inventory.ItemStack itemInHand = new CraftItemStack(itemstack);
+ BlockFace blockface = CraftBlock.notchToBlockFace(1);
+
+ PlayerItemEvent event = new PlayerItemEvent(eventType, who, itemInHand, blockClicked, blockface);
+ craftServer.getPluginManager().callEvent(event);
+
+ if (event.isCancelled()) {
+ return false;
+ }
+ // CraftBukkit end
+
+ if (l == 1) {
+ world.b(i, j, k, Block.SIGN_POST.id, MathHelper.b((double) ((entityhuman.yaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15);
+ } else {
+ world.b(i, j, k, Block.WALL_SIGN.id, l);
+ }
+
+ --itemstack.count;
+ TileEntitySign tileentitysign = (TileEntitySign) world.getTileEntity(i, j, k);
+
+ if (tileentitysign != null) {
+ entityhuman.a(tileentitysign);
+ }
- if (tileentitysign != null) {
- entityplayer.a(tileentitysign);
+ return true;
+ }
}
- return true;
}
}