From ab3412e8781e1f3e3f94aa2690cc95120b70a8a2 Mon Sep 17 00:00:00 2001 From: Andrew Ardill Date: Mon, 24 Jan 2011 00:10:53 +1100 Subject: [PATCH] removed some potential bugs from some items --- .../net/minecraft/server/ItemFlintAndSteel.java | 15 ++++++++------- .../java/net/minecraft/server/ItemRedstone.java | 9 +++++---- src/main/java/net/minecraft/server/ItemSign.java | 9 ++++----- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/main/java/net/minecraft/server/ItemFlintAndSteel.java b/src/main/java/net/minecraft/server/ItemFlintAndSteel.java index 0f644ac15b..2ea9eb1a03 100644 --- a/src/main/java/net/minecraft/server/ItemFlintAndSteel.java +++ b/src/main/java/net/minecraft/server/ItemFlintAndSteel.java @@ -3,8 +3,8 @@ package net.minecraft.server; import java.util.Random; // CraftBukkit start -import org.bukkit.Server; import org.bukkit.block.BlockFace; +import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.craftbukkit.block.CraftBlock; import org.bukkit.craftbukkit.inventory.CraftItemStack; @@ -24,6 +24,11 @@ public class ItemFlintAndSteel extends Item { } public boolean a(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) { + // 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 == 0) { j--; } @@ -46,24 +51,20 @@ public class ItemFlintAndSteel extends Item { if (i1 == 0) { // CraftBukkit start - Flint and steel - Server server = ((WorldServer)world).getServer(); - CraftWorld cworld = ((WorldServer)world).getWorld(); - Type eventType = Type.PLAYER_ITEM; Player thePlayer = (Player) entityplayer.getBukkitEntity(); CraftItemStack itemInHand = new CraftItemStack(itemstack); - org.bukkit.block.Block blockClicked = cworld.getBlockAt(i, j, k); BlockFace blockFace = CraftBlock.notchToBlockFace(l); PlayerItemEvent pie = new PlayerItemEvent(eventType, thePlayer, itemInHand, blockClicked, blockFace); - server.getPluginManager().callEvent(pie); + craftServer.getPluginManager().callEvent(pie); boolean preventLighter = pie.isCancelled(); IgniteCause igniteCause = BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL; BlockIgniteEvent bie = new BlockIgniteEvent(blockClicked, igniteCause, thePlayer); - server.getPluginManager().callEvent(bie); + craftServer.getPluginManager().callEvent(bie); boolean preventFire = bie.isCancelled(); diff --git a/src/main/java/net/minecraft/server/ItemRedstone.java b/src/main/java/net/minecraft/server/ItemRedstone.java index 2119012de6..e28a1525bd 100644 --- a/src/main/java/net/minecraft/server/ItemRedstone.java +++ b/src/main/java/net/minecraft/server/ItemRedstone.java @@ -19,6 +19,11 @@ public class ItemRedstone extends Item { } public boolean a(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l) { + // 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 == 0) { j--; } @@ -42,13 +47,9 @@ public class ItemRedstone extends Item { } if (Block.av.a(world, i, j, k)) { // CraftBukkit start - Redstone - CraftWorld craftWorld = ((WorldServer) world).getWorld(); - CraftServer craftServer = ((WorldServer) world).getServer(); - Type eventType = Type.PLAYER_ITEM; Player who = (entityplayer == null)?null:(Player)entityplayer.getBukkitEntity(); org.bukkit.inventory.ItemStack itemInHand = new CraftItemStack(itemstack); - org.bukkit.block.Block blockClicked = craftWorld.getBlockAt(i, j, k); BlockFace blockface = CraftBlock.notchToBlockFace(1); PlayerItemEvent pie = new PlayerItemEvent(eventType, who, itemInHand, blockClicked, blockface); diff --git a/src/main/java/net/minecraft/server/ItemSign.java b/src/main/java/net/minecraft/server/ItemSign.java index 5950f52664..e4241e95a5 100644 --- a/src/main/java/net/minecraft/server/ItemSign.java +++ b/src/main/java/net/minecraft/server/ItemSign.java @@ -28,7 +28,10 @@ public class ItemSign extends Item { } // 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++; } @@ -50,13 +53,9 @@ public class ItemSign extends Item { // CraftBukkit start // Signs - CraftWorld craftWorld = ((WorldServer) world).getWorld(); - CraftServer craftServer = ((WorldServer) world).getServer(); - Type eventType = Type.PLAYER_ITEM; Player who = (entityplayer == null)?null:(Player)entityplayer.getBukkitEntity(); org.bukkit.inventory.ItemStack itemInHand = new CraftItemStack(itemstack); - org.bukkit.block.Block blockClicked = craftWorld.getBlockAt(i, j, k); BlockFace blockface = CraftBlock.notchToBlockFace(1); PlayerItemEvent pie = new PlayerItemEvent(eventType, who, itemInHand, blockClicked, blockface);