summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2011-12-02 03:25:22 +0100
committersnowleo <schneeleo@gmail.com>2011-12-02 03:25:22 +0100
commita020e0b9e65e791e7b24cfa08ec9abbdf9309762 (patch)
tree2be35813d155ad40f63874ecce47ba266f153d87
parent10ccbda30caee25d02e2e0e88e5cab37bbcd40c2 (diff)
downloadEssentials-a020e0b9e65e791e7b24cfa08ec9abbdf9309762.tar
Essentials-a020e0b9e65e791e7b24cfa08ec9abbdf9309762.tar.gz
Essentials-a020e0b9e65e791e7b24cfa08ec9abbdf9309762.tar.lz
Essentials-a020e0b9e65e791e7b24cfa08ec9abbdf9309762.tar.xz
Essentials-a020e0b9e65e791e7b24cfa08ec9abbdf9309762.zip
Moved block to item conversion to Util class
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java66
-rw-r--r--Essentials/src/com/earth2me/essentials/Util.java83
2 files changed, 84 insertions, 65 deletions
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java
index 88e536015..b5182b11b 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java
@@ -28,71 +28,7 @@ public class EssentialsBlockListener extends BlockListener
final User user = ess.getUser(event.getPlayer());
// Do not rely on getItemInHand();
// http://leaky.bukkit.org/issues/663
- final ItemStack is = new ItemStack(event.getBlockPlaced().getType(), 1, (short)0, event.getBlockPlaced().getData());
- switch (is.getType())
- {
- case WOODEN_DOOR:
- is.setType(Material.WOOD_DOOR);
- is.setDurability((short)0);
- break;
- case IRON_DOOR_BLOCK:
- is.setType(Material.IRON_DOOR);
- is.setDurability((short)0);
- break;
- case SIGN_POST:
- case WALL_SIGN:
- is.setType(Material.SIGN);
- is.setDurability((short)0);
- break;
- case CROPS:
- is.setType(Material.SEEDS);
- is.setDurability((short)0);
- break;
- case CAKE_BLOCK:
- is.setType(Material.CAKE);
- is.setDurability((short)0);
- break;
- case BED_BLOCK:
- is.setType(Material.BED);
- is.setDurability((short)0);
- break;
- case REDSTONE_WIRE:
- is.setType(Material.REDSTONE);
- is.setDurability((short)0);
- break;
- case REDSTONE_TORCH_OFF:
- case REDSTONE_TORCH_ON:
- is.setType(Material.REDSTONE_TORCH_ON);
- is.setDurability((short)0);
- break;
- case DIODE_BLOCK_OFF:
- case DIODE_BLOCK_ON:
- is.setType(Material.DIODE);
- is.setDurability((short)0);
- break;
- case DOUBLE_STEP:
- is.setType(Material.STEP);
- break;
- case TORCH:
- case RAILS:
- case LADDER:
- case WOOD_STAIRS:
- case COBBLESTONE_STAIRS:
- case LEVER:
- case STONE_BUTTON:
- case FURNACE:
- case DISPENSER:
- case PUMPKIN:
- case JACK_O_LANTERN:
- case WOOD_PLATE:
- case STONE_PLATE:
- case PISTON_STICKY_BASE:
- case PISTON_BASE:
- is.setDurability((short)0);
- break;
- case FIRE:
- return;
- }
+ final ItemStack is = Util.convertBlockToItem(event.getBlockPlaced());
boolean unlimitedForUser = user.hasUnlimited(is);
if (unlimitedForUser && user.getGameMode() == GameMode.SURVIVAL)
{
diff --git a/Essentials/src/com/earth2me/essentials/Util.java b/Essentials/src/com/earth2me/essentials/Util.java
index 5ee3e3123..fe86fd167 100644
--- a/Essentials/src/com/earth2me/essentials/Util.java
+++ b/Essentials/src/com/earth2me/essentials/Util.java
@@ -12,6 +12,7 @@ import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.entity.LivingEntity;
+import org.bukkit.inventory.ItemStack;
public class Util
@@ -331,6 +332,88 @@ public class Util
}
return isBlockAboveAir(world, x, y, z);
}
+
+ public static ItemStack convertBlockToItem(final Block block)
+ {
+ final ItemStack is = new ItemStack(block.getType(), 1, (short)0, block.getData());
+ switch (is.getType())
+ {
+ case WOODEN_DOOR:
+ is.setType(Material.WOOD_DOOR);
+ is.setDurability((short)0);
+ break;
+ case IRON_DOOR_BLOCK:
+ is.setType(Material.IRON_DOOR);
+ is.setDurability((short)0);
+ break;
+ case SIGN_POST:
+ case WALL_SIGN:
+ is.setType(Material.SIGN);
+ is.setDurability((short)0);
+ break;
+ case CROPS:
+ is.setType(Material.SEEDS);
+ is.setDurability((short)0);
+ break;
+ case CAKE_BLOCK:
+ is.setType(Material.CAKE);
+ is.setDurability((short)0);
+ break;
+ case BED_BLOCK:
+ is.setType(Material.BED);
+ is.setDurability((short)0);
+ break;
+ case REDSTONE_WIRE:
+ is.setType(Material.REDSTONE);
+ is.setDurability((short)0);
+ break;
+ case REDSTONE_TORCH_OFF:
+ case REDSTONE_TORCH_ON:
+ is.setType(Material.REDSTONE_TORCH_ON);
+ is.setDurability((short)0);
+ break;
+ case DIODE_BLOCK_OFF:
+ case DIODE_BLOCK_ON:
+ is.setType(Material.DIODE);
+ is.setDurability((short)0);
+ break;
+ case DOUBLE_STEP:
+ is.setType(Material.STEP);
+ break;
+ case TORCH:
+ case RAILS:
+ case LADDER:
+ case WOOD_STAIRS:
+ case COBBLESTONE_STAIRS:
+ case LEVER:
+ case STONE_BUTTON:
+ case FURNACE:
+ case DISPENSER:
+ case PUMPKIN:
+ case JACK_O_LANTERN:
+ case WOOD_PLATE:
+ case STONE_PLATE:
+ case PISTON_STICKY_BASE:
+ case PISTON_BASE:
+ case IRON_FENCE:
+ case THIN_GLASS:
+ case TRAP_DOOR:
+ case FENCE:
+ case FENCE_GATE:
+ case NETHER_FENCE:
+ is.setDurability((short)0);
+ break;
+ case FIRE:
+ return null;
+ case PUMPKIN_STEM:
+ is.setType(Material.PUMPKIN_SEEDS);
+ break;
+ case MELON_STEM:
+ is.setType(Material.MELON_SEEDS);
+ break;
+ }
+ return is;
+ }
private static DecimalFormat df = new DecimalFormat("#0.00", DecimalFormatSymbols.getInstance(Locale.US));
public static String formatCurrency(final double value, final IEssentials ess)