diff options
author | KHobbits <rob@khobbits.co.uk> | 2013-06-08 21:26:11 +0100 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2013-06-08 21:26:11 +0100 |
commit | 7276bcccab5b3c82a7cc69309d1e2590a0cf50c0 (patch) | |
tree | 8fc1ee4226ac501341a4aa259d2bfcb2b6f86db6 | |
parent | a7b62c65b8f6560229f97090d1a5a057914c59bf (diff) | |
download | Essentials-7276bcccab5b3c82a7cc69309d1e2590a0cf50c0.tar Essentials-7276bcccab5b3c82a7cc69309d1e2590a0cf50c0.tar.gz Essentials-7276bcccab5b3c82a7cc69309d1e2590a0cf50c0.tar.lz Essentials-7276bcccab5b3c82a7cc69309d1e2590a0cf50c0.tar.xz Essentials-7276bcccab5b3c82a7cc69309d1e2590a0cf50c0.zip |
Trapdoors should be treated as half blocks, not transparent blocks.
-rw-r--r-- | Essentials/src/com/earth2me/essentials/Util.java | 97 |
1 files changed, 48 insertions, 49 deletions
diff --git a/Essentials/src/com/earth2me/essentials/Util.java b/Essentials/src/com/earth2me/essentials/Util.java index a1f364ab8..58ffa5d44 100644 --- a/Essentials/src/com/earth2me/essentials/Util.java +++ b/Essentials/src/com/earth2me/essentials/Util.java @@ -234,59 +234,58 @@ public class Util return c.getTimeInMillis(); } // The player can stand inside these materials - private static final Set<Integer> AIR_MATERIALS = new HashSet<Integer>(); - private static final HashSet<Byte> AIR_MATERIALS_TARGET = new HashSet<Byte>(); + private static final Set<Integer> UNSAFE_MATERIALS = new HashSet<Integer>(); + private static final HashSet<Byte> TRANSPARENT_MATERIALS = new HashSet<Byte>(); static { - AIR_MATERIALS.add(Material.AIR.getId()); - AIR_MATERIALS.add(Material.SAPLING.getId()); - AIR_MATERIALS.add(Material.POWERED_RAIL.getId()); - AIR_MATERIALS.add(Material.DETECTOR_RAIL.getId()); - AIR_MATERIALS.add(Material.LONG_GRASS.getId()); - AIR_MATERIALS.add(Material.DEAD_BUSH.getId()); - AIR_MATERIALS.add(Material.YELLOW_FLOWER.getId()); - AIR_MATERIALS.add(Material.RED_ROSE.getId()); - AIR_MATERIALS.add(Material.BROWN_MUSHROOM.getId()); - AIR_MATERIALS.add(Material.RED_MUSHROOM.getId()); - AIR_MATERIALS.add(Material.TORCH.getId()); - AIR_MATERIALS.add(Material.REDSTONE_WIRE.getId()); - AIR_MATERIALS.add(Material.SEEDS.getId()); - AIR_MATERIALS.add(Material.SIGN_POST.getId()); - AIR_MATERIALS.add(Material.WOODEN_DOOR.getId()); - AIR_MATERIALS.add(Material.LADDER.getId()); - AIR_MATERIALS.add(Material.RAILS.getId()); - AIR_MATERIALS.add(Material.WALL_SIGN.getId()); - AIR_MATERIALS.add(Material.LEVER.getId()); - AIR_MATERIALS.add(Material.STONE_PLATE.getId()); - AIR_MATERIALS.add(Material.IRON_DOOR_BLOCK.getId()); - AIR_MATERIALS.add(Material.WOOD_PLATE.getId()); - AIR_MATERIALS.add(Material.REDSTONE_TORCH_OFF.getId()); - AIR_MATERIALS.add(Material.REDSTONE_TORCH_ON.getId()); - AIR_MATERIALS.add(Material.STONE_BUTTON.getId()); - AIR_MATERIALS.add(Material.SNOW.getId()); - AIR_MATERIALS.add(Material.SUGAR_CANE_BLOCK.getId()); - AIR_MATERIALS.add(Material.DIODE_BLOCK_OFF.getId()); - AIR_MATERIALS.add(Material.DIODE_BLOCK_ON.getId()); - AIR_MATERIALS.add(Material.TRAP_DOOR.getId()); - AIR_MATERIALS.add(Material.PUMPKIN_STEM.getId()); - AIR_MATERIALS.add(Material.MELON_STEM.getId()); - AIR_MATERIALS.add(Material.VINE.getId()); - AIR_MATERIALS.add(Material.FENCE_GATE.getId()); - AIR_MATERIALS.add(Material.WATER_LILY.getId()); - AIR_MATERIALS.add(Material.NETHER_WARTS.getId()); - - for (Integer integer : AIR_MATERIALS) - { - AIR_MATERIALS_TARGET.add(integer.byteValue()); - } - AIR_MATERIALS_TARGET.add((byte)Material.WATER.getId()); - AIR_MATERIALS_TARGET.add((byte)Material.STATIONARY_WATER.getId()); + UNSAFE_MATERIALS.add(Material.AIR.getId()); + UNSAFE_MATERIALS.add(Material.SAPLING.getId()); + UNSAFE_MATERIALS.add(Material.POWERED_RAIL.getId()); + UNSAFE_MATERIALS.add(Material.DETECTOR_RAIL.getId()); + UNSAFE_MATERIALS.add(Material.LONG_GRASS.getId()); + UNSAFE_MATERIALS.add(Material.DEAD_BUSH.getId()); + UNSAFE_MATERIALS.add(Material.YELLOW_FLOWER.getId()); + UNSAFE_MATERIALS.add(Material.RED_ROSE.getId()); + UNSAFE_MATERIALS.add(Material.BROWN_MUSHROOM.getId()); + UNSAFE_MATERIALS.add(Material.RED_MUSHROOM.getId()); + UNSAFE_MATERIALS.add(Material.TORCH.getId()); + UNSAFE_MATERIALS.add(Material.REDSTONE_WIRE.getId()); + UNSAFE_MATERIALS.add(Material.SEEDS.getId()); + UNSAFE_MATERIALS.add(Material.SIGN_POST.getId()); + UNSAFE_MATERIALS.add(Material.WOODEN_DOOR.getId()); + UNSAFE_MATERIALS.add(Material.LADDER.getId()); + UNSAFE_MATERIALS.add(Material.RAILS.getId()); + UNSAFE_MATERIALS.add(Material.WALL_SIGN.getId()); + UNSAFE_MATERIALS.add(Material.LEVER.getId()); + UNSAFE_MATERIALS.add(Material.STONE_PLATE.getId()); + UNSAFE_MATERIALS.add(Material.IRON_DOOR_BLOCK.getId()); + UNSAFE_MATERIALS.add(Material.WOOD_PLATE.getId()); + UNSAFE_MATERIALS.add(Material.REDSTONE_TORCH_OFF.getId()); + UNSAFE_MATERIALS.add(Material.REDSTONE_TORCH_ON.getId()); + UNSAFE_MATERIALS.add(Material.STONE_BUTTON.getId()); + UNSAFE_MATERIALS.add(Material.SNOW.getId()); + UNSAFE_MATERIALS.add(Material.SUGAR_CANE_BLOCK.getId()); + UNSAFE_MATERIALS.add(Material.DIODE_BLOCK_OFF.getId()); + UNSAFE_MATERIALS.add(Material.DIODE_BLOCK_ON.getId()); + UNSAFE_MATERIALS.add(Material.PUMPKIN_STEM.getId()); + UNSAFE_MATERIALS.add(Material.MELON_STEM.getId()); + UNSAFE_MATERIALS.add(Material.VINE.getId()); + UNSAFE_MATERIALS.add(Material.FENCE_GATE.getId()); + UNSAFE_MATERIALS.add(Material.WATER_LILY.getId()); + UNSAFE_MATERIALS.add(Material.NETHER_WARTS.getId()); + + for (Integer integer : UNSAFE_MATERIALS) + { + TRANSPARENT_MATERIALS.add(integer.byteValue()); + } + TRANSPARENT_MATERIALS.add((byte)Material.WATER.getId()); + TRANSPARENT_MATERIALS.add((byte)Material.STATIONARY_WATER.getId()); } public static Location getTarget(final LivingEntity entity) throws Exception { - final Block block = entity.getTargetBlock(AIR_MATERIALS_TARGET, 300); + final Block block = entity.getTargetBlock(TRANSPARENT_MATERIALS, 300); if (block == null) { throw new Exception("Not targeting a block"); @@ -408,7 +407,7 @@ public class Util private static boolean isBlockAboveAir(final World world, final int x, final int y, final int z) { - return AIR_MATERIALS.contains(world.getBlockAt(x, y - 1, z).getType().getId()); + return UNSAFE_MATERIALS.contains(world.getBlockAt(x, y - 1, z).getType().getId()); } public static boolean isBlockUnsafe(final World world, final int x, final int y, final int z) @@ -438,8 +437,8 @@ public class Util return true; } - if ((!AIR_MATERIALS.contains(world.getBlockAt(x, y, z).getType().getId())) - || (!AIR_MATERIALS.contains(world.getBlockAt(x, y + 1, z).getType().getId()))) + if ((!UNSAFE_MATERIALS.contains(world.getBlockAt(x, y, z).getType().getId())) + || (!UNSAFE_MATERIALS.contains(world.getBlockAt(x, y + 1, z).getType().getId()))) { return true; } |