package com.nisovin.magicspells.castmodifiers.conditions; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import com.nisovin.magicspells.castmodifiers.Condition; public class RoofCondition extends Condition { int height = 10; @Override public boolean setVar(String var) { if (var != null && var.matches("^[0-9]+$")) { height = Integer.parseInt(var); } return true; } @Override public boolean check(Player player) { return check(player, player.getLocation()); } @Override public boolean check(Player player, LivingEntity target) { return check(player, target.getLocation()); } @Override public boolean check(Player player, Location location) { Block b = location.clone().add(0, 2, 0).getBlock(); for (int i = 0; i < height; i++) { if (b.getType() != Material.AIR) { return true; } else { b = b.getRelative(BlockFace.UP); } } return false; } }