⚔️Bosses

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());
}

Last updated