Search in sources :

Example 36 with Arena

use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.

the class Events method onShop.

@EventHandler
public void onShop(InventoryClickEvent event) {
    if (!(event.getWhoClicked() instanceof Player))
        return;
    Player player = (Player) event.getWhoClicked();
    Inventory inv = event.getInventory();
    Arena arena = ArenaRegistry.getArena((Player) event.getWhoClicked());
    if (arena == null)
        return;
    User user = UserManager.getUser(player.getUniqueId());
    if (user.isFakeDead()) {
        event.setCancelled(true);
        return;
    }
    if (inv.getName() == null || !inv.getName().equalsIgnoreCase(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Shop-GUI-Name")))
        return;
    event.setCancelled(true);
    if (event.getCurrentItem() == null || !event.getCurrentItem().hasItemMeta() || !event.getCurrentItem().getItemMeta().hasLore())
        return;
    String string = event.getCurrentItem().getItemMeta().getLore().get(0);
    string = ChatColor.stripColor(string);
    if (!(string.contains(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Currency-In-Shop")) || string.contains("orbs"))) {
        boolean b = false;
        for (String s : event.getCurrentItem().getItemMeta().getLore()) {
            if (string.contains(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Currency-In-Shop")) || string.contains("orbs")) {
                string = s;
                b = true;
            }
        }
        if (!b)
            return;
    }
    int price = Integer.parseInt(string.split(" ")[0]);
    if (price > UserManager.getUser(player.getUniqueId()).getInt("orbs")) {
        player.sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Not-Enough-Orbs"));
        return;
    }
    if (event.getCurrentItem().hasItemMeta() && event.getCurrentItem().getItemMeta().hasDisplayName()) {
        if (event.getCurrentItem().getItemMeta().getDisplayName().contains(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Golem-Item-Name"))) {
            arena.spawnGolem(arena.getStartLocation(), player);
            player.sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Messages.Golem-Spawned"));
            UserManager.getUser(player.getUniqueId()).setInt("orbs", UserManager.getUser(player.getUniqueId()).getInt("orbs") - price);
            return;
        }
        if (event.getCurrentItem().getItemMeta().getDisplayName().contains(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Wolf-Item-Name"))) {
            arena.spawnWolf(arena.getStartLocation(), player);
            player.sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Messages.Wolf-Spawned"));
            UserManager.getUser(player.getUniqueId()).setInt("orbs", UserManager.getUser(player.getUniqueId()).getInt("orbs") - price);
            return;
        }
    }
    ItemStack itemStack = event.getCurrentItem().clone();
    ItemMeta itemMeta = itemStack.getItemMeta();
    List<String> lore = new ArrayList<>();
    for (String loopLore : lore) {
        if (loopLore.contains(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Currency-In-Shop"))) {
            lore.remove(loopLore);
        }
    }
    itemMeta.setLore(lore);
    itemStack.setItemMeta(itemMeta);
    player.getInventory().addItem(itemStack);
    UserManager.getUser(player.getUniqueId()).setInt("orbs", UserManager.getUser(player.getUniqueId()).getInt("orbs") - price);
}
Also used : Player(org.bukkit.entity.Player) User(pl.plajer.villagedefense3.User) ArrayList(java.util.ArrayList) ItemStack(org.bukkit.inventory.ItemStack) Inventory(org.bukkit.inventory.Inventory) Arena(pl.plajer.villagedefense3.arena.Arena) ItemMeta(org.bukkit.inventory.meta.ItemMeta) EventHandler(org.bukkit.event.EventHandler)

Example 37 with Arena

use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.

the class Events method onFriendHurt.

@EventHandler(priority = EventPriority.HIGHEST)
public void onFriendHurt(EntityDamageByEntityEvent event) {
    if (!(event.getDamager() instanceof Player))
        return;
    Arena arena = ArenaRegistry.getArena((Player) event.getDamager());
    if (arena == null)
        return;
    User user = UserManager.getUser(event.getDamager().getUniqueId());
    if (user.isFakeDead()) {
        event.setCancelled(true);
        return;
    }
    if (!VILLAGE_ENTITIES.contains(event.getEntityType()))
        return;
    event.setCancelled(true);
}
Also used : Player(org.bukkit.entity.Player) User(pl.plajer.villagedefense3.User) Arena(pl.plajer.villagedefense3.arena.Arena) EventHandler(org.bukkit.event.EventHandler)

Example 38 with Arena

use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.

the class Events method onRottenFleshDrop.

@EventHandler
public void onRottenFleshDrop(InventoryPickupItemEvent event) {
    if (event.getInventory().getType() != InventoryType.HOPPER && !event.getItem().getItemStack().getType().equals(Material.ROTTEN_FLESH))
        return;
    for (Entity entity : Util.getNearbyEntities(event.getItem().getLocation(), 20)) {
        if (!(entity instanceof Player)) {
            continue;
        }
        if (ArenaRegistry.getArena((Player) entity) != null) {
            Arena arena = ArenaRegistry.getArena(((Player) entity));
            if (arena == null)
                continue;
            arena.addRottenFlesh(event.getItem().getItemStack().getAmount());
            event.getItem().remove();
            event.setCancelled(true);
            event.getInventory().clear();
            event.getItem().getLocation().getWorld().spigot().playEffect(event.getItem().getLocation(), Effect.CLOUD, 0, 0, 2, 2, 2, 1, 50, 100);
            if (arena.checkLevelUpRottenFlesh()) {
                for (Player player : arena.getPlayers()) {
                    player.setMaxHealth(player.getMaxHealth() + 2.0);
                }
                for (Player player1 : arena.getPlayers()) {
                    String message = ChatManager.formatMessage(arena, ChatManager.colorMessage("In-Game.Rotten-Flesh-Level-Up"), player1);
                    player1.sendMessage(ChatManager.PLUGIN_PREFIX + message);
                }
            }
        }
    }
}
Also used : Entity(org.bukkit.entity.Entity) Player(org.bukkit.entity.Player) Arena(pl.plajer.villagedefense3.arena.Arena) EventHandler(org.bukkit.event.EventHandler)

Example 39 with Arena

use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.

the class Events method onEntityInteractEntity.

@EventHandler
public void onEntityInteractEntity(PlayerInteractEntityEvent event) {
    Arena arena = ArenaRegistry.getArena(event.getPlayer());
    if (arena == null)
        return;
    User user = UserManager.getUser(event.getPlayer().getUniqueId());
    if (user.isFakeDead()) {
        event.setCancelled(true);
        return;
    }
    if (event.getPlayer().getItemInHand().getType() == Material.SADDLE) {
        if (event.getRightClicked().getType() == EntityType.IRON_GOLEM || event.getRightClicked().getType() == EntityType.VILLAGER) {
            event.getRightClicked().setPassenger(event.getPlayer());
            event.setCancelled(true);
            return;
        }
    }
    if (event.getRightClicked().getType() == EntityType.VILLAGER) {
        event.setCancelled(true);
        ShopManager.openShop(event.getPlayer());
    } else if (event.getRightClicked().getType() == EntityType.IRON_GOLEM) {
        IronGolem ironGolem = (IronGolem) event.getRightClicked();
        if (ironGolem.getCustomName() != null && ironGolem.getCustomName().contains(event.getPlayer().getName())) {
            event.getRightClicked().setPassenger(event.getPlayer());
        } else {
            event.getPlayer().sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Messages.Cant-Ride-Others-Golem"));
        }
    }
}
Also used : User(pl.plajer.villagedefense3.User) IronGolem(org.bukkit.entity.IronGolem) Arena(pl.plajer.villagedefense3.arena.Arena) EventHandler(org.bukkit.event.EventHandler)

Example 40 with Arena

use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.

the class Events method KitMenuItemClick.

@EventHandler
public void KitMenuItemClick(InventoryClickEvent event) {
    ItemStack inv = event.getCursor();
    Arena arena = ArenaRegistry.getArena((Player) event.getWhoClicked());
    if (arena == null)
        return;
    if (inv == null || !inv.hasItemMeta() || !inv.getItemMeta().hasDisplayName() || inv.getType() != plugin.getKitManager().getMaterial() || !inv.getItemMeta().getDisplayName().equalsIgnoreCase(plugin.getKitManager().getItemName()))
        return;
    event.setCancelled(true);
}
Also used : ItemStack(org.bukkit.inventory.ItemStack) Arena(pl.plajer.villagedefense3.arena.Arena) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Arena (pl.plajer.villagedefense3.arena.Arena)49 Player (org.bukkit.entity.Player)28 EventHandler (org.bukkit.event.EventHandler)27 User (pl.plajer.villagedefense3.User)15 ItemStack (org.bukkit.inventory.ItemStack)9 ArenaInitializer1_11_R1 (pl.plajer.villagedefense3.arena.ArenaInitializer1_11_R1)7 ArenaInitializer1_12_R1 (pl.plajer.villagedefense3.arena.ArenaInitializer1_12_R1)7 ArenaInitializer1_8_R3 (pl.plajer.villagedefense3.arena.ArenaInitializer1_8_R3)7 ArenaInitializer1_9_R1 (pl.plajer.villagedefense3.arena.ArenaInitializer1_9_R1)7 FileConfiguration (org.bukkit.configuration.file.FileConfiguration)5 Villager (org.bukkit.entity.Villager)5 Zombie (org.bukkit.entity.Zombie)5 ItemMeta (org.bukkit.inventory.meta.ItemMeta)5 IronGolem (org.bukkit.entity.IronGolem)4 ArrayList (java.util.ArrayList)3 Sign (org.bukkit.block.Sign)3 PotionEffect (org.bukkit.potion.PotionEffect)3 Entity (org.bukkit.entity.Entity)2 Inventory (org.bukkit.inventory.Inventory)2 BukkitRunnable (org.bukkit.scheduler.BukkitRunnable)2