CustomMobs/src/main/java/com/alttd/custommobs/utility/SpawnableTargetBlock.java

39 lines
1.0 KiB
Java
Raw Normal View History

2024-10-18 15:49:49 +00:00
package com.alttd.custommobs.utility;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Player;
import org.bukkit.util.BlockIterator;
import java.util.Optional;
public class SpawnableTargetBlock {
public Optional<Location> getSpawnableTargetBlock(Player player, int maxDistance) {
BlockIterator iter = new BlockIterator(player, maxDistance);
while (iter.hasNext()) {
Block block = iter.next();
if (isSpawnable(block)) {
return Optional.of(block.getLocation());
}
}
return Optional.empty();
}
private boolean isSpawnable(Block block) {
Material material = block.getType();
if (material == Material.AIR) {
return false;
}
Block blockAbove = block.getRelative(BlockFace.UP);
if (blockAbove.getType() != Material.AIR) {
return false;
}
return block.getType().isSolid();
}
}