Este método verifica se o bloco fornecido é um boss ou não
@EventHandler
void onBlockBreak(BlockBreakEvent event){
Player player = event.getPlayer();
BossAPI bossAPI = new BossAPI();
Block block = event.getBlock();
if (bossAPI.isBoss(block))
player.sendMessage("Você acabou de literalmente quebrar um boss! (quer dizer, tentar)");
}
Este método obtém o boss através do bloco fornecido. Caso não seja um boss, null é retornado.
@EventHandler
void onPlayerInteract(PlayerInteractEvent event){
BossAPI bossAPI = new BossAPI();
Player player = event.getPlayer();
User user = new UserAPI().loadUser(player.getName());
if (event.getAction() != Action.LEFT_CLICK_BLOCK || !bossAPI.isBoss(event.getClickedBlock()) || player.getItemInHand().getType() == Material.AIR || bossAPI.isNotBossKiller(player.getItemInHand()))
return;
bossAPI.getBoss(event.getClickedBlock());
}
Este método verifica se tem algum boss em uma lista de localizações
public void spawn(Location location, BossDisplay bossDisplay){
BossAPI bossAPI = new BossAPI();
location.getBlock().setType(Material.AIR);
FileConfiguration config = BossPlugin.getInstance().getBoss();
List<Location> area = Area.getArea(location.clone().add(-1, -1, -1), location.clone().add(1, 1, 1));
if (bossAPI.hasBossInArea(area)){
Boss boss = bossAPI.getBossInArea(area);
boss.setAmount(boss.getAmount() + 1);
boss.setHealth(boss.getBossDisplay().getMaxHealth());
boss.update();
return;
}
location.getBlock().setType(bossDisplay.getMaterial());
new Boss(bossDisplay, location.getBlock(), config.getDouble("boss." + bossDisplay.getMaterial().name().toUpperCase() + ".maxHealth"), 1);
}
Este método obtém 1 boss em uma lista de localizações. Caso não tenha 1 boss, null é retornado.
public void spawn(Location location){
Player player = Bukkit.getPlayer("player");
BossAPI bossAPI = new BossAPI();
location.getBlock().setType(Material.AIR);
List<Location> area = Area.getArea(location.clone().add(-1, -1, -1), location.clone().add(1, 1, 1));
Boss boss = bossAPI.getBossInArea(area);
if (boss == null) player.sendMessage("Não tem um boss nesta área!");
}
Este método verifica se um ItemStack é uma matadora de bosses ou não.
@EventHandler
void onPlayerInteract(PlayerInteractEvent event){
BossAPI bossAPI = new BossAPI();
Player player = event.getPlayer();
User user = new UserAPI().loadUser(player.getName());
if (bossAPI.isNotBossKiller(player.getItemInHand()) || event.getAction() != Action.LEFT_CLICK_BLOCK || !bossAPI.isBoss(event.getClickedBlock()) || player.getItemInHand().getType() == Material.AIR)
return;
bossAPI.getBoss(event.getClickedBlock());
}