Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* The list of transparent blocks, put this in a constructor somewhere... */
- private HashSet<Material> transparentBlocks = new HashSet<Material>();
- transparentBlocks.add(Material.AIR);
- /* Misc */
- transparentBlocks.add(Material.CAKE_BLOCK);
- /* Redstone Material */
- transparentBlocks.add(Material.REDSTONE);
- transparentBlocks.add(Material.REDSTONE_WIRE);
- /* Redstone Torches */
- transparentBlocks.add(Material.REDSTONE_TORCH_OFF);
- transparentBlocks.add(Material.REDSTONE_TORCH_ON);
- /* Diodes (Repeaters) */
- transparentBlocks.add(Material.DIODE_BLOCK_OFF);
- transparentBlocks.add(Material.DIODE_BLOCK_ON);
- /* Power Sources */
- transparentBlocks.add(Material.DETECTOR_RAIL);
- transparentBlocks.add(Material.LEVER);
- transparentBlocks.add(Material.STONE_BUTTON);
- transparentBlocks.add(Material.WOOD_BUTTON);
- transparentBlocks.add(Material.STONE_PLATE);
- transparentBlocks.add(Material.WOOD_PLATE);
- /* Nature Material */
- transparentBlocks.add(Material.RED_MUSHROOM);
- transparentBlocks.add(Material.BROWN_MUSHROOM);
- transparentBlocks.add(Material.RED_ROSE);
- transparentBlocks.add(Material.YELLOW_FLOWER);
- transparentBlocks.add(Material.FLOWER_POT);
- /* Greens */
- transparentBlocks.add(Material.LONG_GRASS);
- transparentBlocks.add(Material.VINE);
- transparentBlocks.add(Material.WATER_LILY);
- /* Seedy things */
- transparentBlocks.add(Material.MELON_STEM);
- transparentBlocks.add(Material.PUMPKIN_STEM);
- transparentBlocks.add(Material.CROPS);
- transparentBlocks.add(Material.NETHER_WARTS);
- /* Semi-nature */
- transparentBlocks.add(Material.SNOW);
- transparentBlocks.add(Material.FIRE);
- transparentBlocks.add(Material.WEB);
- transparentBlocks.add(Material.TRIPWIRE);
- transparentBlocks.add(Material.TRIPWIRE_HOOK);
- /* Stairs */
- transparentBlocks.add(Material.COBBLESTONE_STAIRS);
- transparentBlocks.add(Material.BRICK_STAIRS);
- transparentBlocks.add(Material.SANDSTONE_STAIRS);
- transparentBlocks.add(Material.NETHER_BRICK_STAIRS);
- transparentBlocks.add(Material.SMOOTH_STAIRS);
- /* Wood Stairs */
- transparentBlocks.add(Material.BIRCH_WOOD_STAIRS);
- transparentBlocks.add(Material.WOOD_STAIRS);
- transparentBlocks.add(Material.JUNGLE_WOOD_STAIRS);
- transparentBlocks.add(Material.SPRUCE_WOOD_STAIRS);
- /* Lava & Water */
- transparentBlocks.add(Material.LAVA);
- transparentBlocks.add(Material.STATIONARY_LAVA);
- transparentBlocks.add(Material.WATER);
- transparentBlocks.add(Material.STATIONARY_WATER);
- /* Saplings and bushes */
- transparentBlocks.add(Material.SAPLING);
- transparentBlocks.add(Material.DEAD_BUSH);
- /* Construction Material */
- /* Fences */
- transparentBlocks.add(Material.FENCE);
- transparentBlocks.add(Material.FENCE_GATE);
- transparentBlocks.add(Material.IRON_FENCE);
- transparentBlocks.add(Material.NETHER_FENCE);
- /* Ladders, Signs */
- transparentBlocks.add(Material.LADDER);
- transparentBlocks.add(Material.SIGN);
- transparentBlocks.add(Material.SIGN_POST);
- transparentBlocks.add(Material.WALL_SIGN);
- /* Bed */
- transparentBlocks.add(Material.BED_BLOCK);
- transparentBlocks.add(Material.BED);
- /* Pistons */
- transparentBlocks.add(Material.PISTON_EXTENSION);
- transparentBlocks.add(Material.PISTON_MOVING_PIECE);
- transparentBlocks.add(Material.RAILS);
- /* Torch & Trapdoor */
- transparentBlocks.add(Material.TORCH);
- transparentBlocks.add(Material.TRAP_DOOR);
- /* The method to check for transparent blocks */
- /**
- * @param playerLoc The location of the player's eye (Eg. Player.getEyeLocation() or Player.getLocation().add(0,1.62,0))
- * @return The dispenser they're looking at, or null if they aren't looking at one.
- */
- public Block getDispenser(Location playerLoc){
- Block c;
- BlockIterator bIt = new BlockIterator(loc, 0, 5); //'5' is the distance to search for in blocks. Apparently this gets pretty inaccurate after a lot of blocks.
- while(bIt.hasNext()){
- c = bIt.next();
- if(c.getType() == Material.DISPENSER){
- return c; //Success
- }
- if(plugin.getTransparentBlocks().contains(c.getType())){
- continue;
- }
- else{
- return null; //They're not looking at a dispenser block!
- }
- }
- return null; //There's no dispenser
- }
Advertisement
Add Comment
Please, Sign In to add comment