Added searchForMaterial Function and List of transparentMaterials
This commit is contained in:
		
							parent
							
								
									b819fcb9f5
								
							
						
					
					
						commit
						3695315d42
					
				@ -2,11 +2,14 @@ package eu.ruekov.ruakij.LinkedBeaconTeleporters;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.Bukkit;
 | 
			
		||||
import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.World;
 | 
			
		||||
import org.bukkit.block.Block;
 | 
			
		||||
import org.bukkit.util.Vector;
 | 
			
		||||
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.InvalidPropertiesFormatException;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Random;
 | 
			
		||||
 | 
			
		||||
public class Function {
 | 
			
		||||
@ -38,4 +41,115 @@ public class Function {
 | 
			
		||||
        }
 | 
			
		||||
        return str;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static List<Material> transparentMaterials = Arrays.asList(
 | 
			
		||||
            Material.AIR,
 | 
			
		||||
            Material.GLASS,
 | 
			
		||||
            Material.GLASS_PANE,
 | 
			
		||||
            Material.BLACK_STAINED_GLASS,
 | 
			
		||||
            Material.BLACK_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.BLUE_STAINED_GLASS,
 | 
			
		||||
            Material.BLUE_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.BROWN_STAINED_GLASS,
 | 
			
		||||
            Material.BROWN_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.CYAN_STAINED_GLASS,
 | 
			
		||||
            Material.CYAN_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.GRAY_STAINED_GLASS,
 | 
			
		||||
            Material.GRAY_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.GREEN_STAINED_GLASS,
 | 
			
		||||
            Material.GREEN_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.LIGHT_BLUE_STAINED_GLASS,
 | 
			
		||||
            Material.LIGHT_BLUE_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.LIGHT_GRAY_STAINED_GLASS,
 | 
			
		||||
            Material.LIGHT_GRAY_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.LIME_STAINED_GLASS,
 | 
			
		||||
            Material.LIME_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.MAGENTA_STAINED_GLASS,
 | 
			
		||||
            Material.MAGENTA_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.ORANGE_STAINED_GLASS,
 | 
			
		||||
            Material.ORANGE_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.PINK_STAINED_GLASS,
 | 
			
		||||
            Material.PINK_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.PURPLE_STAINED_GLASS,
 | 
			
		||||
            Material.PURPLE_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.RED_STAINED_GLASS,
 | 
			
		||||
            Material.RED_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.WHITE_STAINED_GLASS,
 | 
			
		||||
            Material.WHITE_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.YELLOW_STAINED_GLASS,
 | 
			
		||||
            Material.YELLOW_STAINED_GLASS_PANE,
 | 
			
		||||
            Material.PISTON,
 | 
			
		||||
            Material.PISTON_HEAD,
 | 
			
		||||
            Material.MOVING_PISTON,
 | 
			
		||||
            Material.STICKY_PISTON,
 | 
			
		||||
            Material.ACACIA_LEAVES,
 | 
			
		||||
            Material.BIRCH_LEAVES,
 | 
			
		||||
            Material.DARK_OAK_LEAVES,
 | 
			
		||||
            Material.JUNGLE_LEAVES,
 | 
			
		||||
            Material.OAK_LEAVES,
 | 
			
		||||
            Material.SPRUCE_LEAVES,
 | 
			
		||||
            Material.ACACIA_SLAB,
 | 
			
		||||
            Material.ANDESITE_SLAB,
 | 
			
		||||
            Material.BIRCH_SLAB,
 | 
			
		||||
            Material.BLACKSTONE_SLAB,
 | 
			
		||||
            Material.BRICK_SLAB,
 | 
			
		||||
            Material.COBBLESTONE_SLAB,
 | 
			
		||||
            Material.CRIMSON_SLAB,
 | 
			
		||||
            Material.CUT_RED_SANDSTONE_SLAB,
 | 
			
		||||
            Material.CUT_SANDSTONE_SLAB,
 | 
			
		||||
            Material.DARK_OAK_SLAB,
 | 
			
		||||
            Material.DARK_PRISMARINE_SLAB,
 | 
			
		||||
            Material.DIORITE_SLAB,
 | 
			
		||||
            Material.END_STONE_BRICK_SLAB,
 | 
			
		||||
            Material.GRANITE_SLAB,
 | 
			
		||||
            Material.JUNGLE_SLAB,
 | 
			
		||||
            Material.MOSSY_COBBLESTONE_SLAB,
 | 
			
		||||
            Material.MOSSY_STONE_BRICK_SLAB,
 | 
			
		||||
            Material.NETHER_BRICK_SLAB,
 | 
			
		||||
            Material.OAK_SLAB,
 | 
			
		||||
            Material.PETRIFIED_OAK_SLAB,
 | 
			
		||||
            Material.POLISHED_ANDESITE_SLAB,
 | 
			
		||||
            Material.POLISHED_BLACKSTONE_BRICK_SLAB,
 | 
			
		||||
            Material.POLISHED_BLACKSTONE_SLAB,
 | 
			
		||||
            Material.POLISHED_DIORITE_SLAB,
 | 
			
		||||
            Material.POLISHED_GRANITE_SLAB,
 | 
			
		||||
            Material.PRISMARINE_BRICK_SLAB,
 | 
			
		||||
            Material.PRISMARINE_SLAB,
 | 
			
		||||
            Material.PURPUR_SLAB,
 | 
			
		||||
            Material.QUARTZ_SLAB,
 | 
			
		||||
            Material.RED_NETHER_BRICK_SLAB,
 | 
			
		||||
            Material.RED_SANDSTONE_SLAB,
 | 
			
		||||
            Material.SANDSTONE_SLAB,
 | 
			
		||||
            Material.SMOOTH_QUARTZ_SLAB,
 | 
			
		||||
            Material.SMOOTH_RED_SANDSTONE_SLAB,
 | 
			
		||||
            Material.SMOOTH_SANDSTONE_SLAB,
 | 
			
		||||
            Material.SMOOTH_STONE_SLAB,
 | 
			
		||||
            Material.SPRUCE_SLAB,
 | 
			
		||||
            Material.STONE_BRICK_SLAB,
 | 
			
		||||
            Material.STONE_SLAB,
 | 
			
		||||
            Material.WARPED_SLAB
 | 
			
		||||
    );
 | 
			
		||||
    public static Block searchForMaterial(Location startLoc, Vector searchDirection, Material searchMaterial, List<Material> ignoreMaterials){
 | 
			
		||||
        Location loc = new Location(startLoc.getWorld(), startLoc.getBlockX(), startLoc.getBlockY(), startLoc.getBlockZ());
 | 
			
		||||
        for(int i=0; loc.getBlockY()>=0 && loc.getBlockY()<=255; loc.add(searchDirection)){
 | 
			
		||||
            Block block = loc.getBlock();
 | 
			
		||||
 | 
			
		||||
            // Check for correct material
 | 
			
		||||
            if(block.getType() == searchMaterial) return block;
 | 
			
		||||
 | 
			
		||||
            // Check for non-ignore-block
 | 
			
		||||
            boolean found = false;
 | 
			
		||||
            for(Material ignoreMaterial : ignoreMaterials){
 | 
			
		||||
                if(block.getType() == ignoreMaterial){
 | 
			
		||||
                    found = true;
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            // If not found, searchMaterial not found
 | 
			
		||||
            if(!found) return null;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Reached 0 or 255, searchMaterial not found
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user