package com.encrox.zombie; import java.util.ArrayList; import java.util.Iterator; import java.util.Random; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.inventory.ItemStack; import com.encrox.zombie.interactable.Chest; import com.encrox.zombie.interactable.Interactable; import com.encrox.zombie.interactable.Lever; import com.encrox.zombie.interactable.Powerup; public class GameListener implements Listener { @EventHandler public void onEntityDamageByEntity(EntityDamageByEntityEvent e) { if(e.getEntity() instanceof Player) { Player player = (Player)e.getEntity(); if(player.getHealth() <= e.getDamage()) { Game current; for(int i = 0, size = Zombie.games.size(); i= cost) { player.sendMessage(ChatColor.YELLOW + Zombie.lang.getProperty("game_paid").replace("%amount%", ""+cost)); current.substractPoints(player, cost); if(inter instanceof Chest) { if(Math.random() > 0.25) { ItemStack item = new ItemStack((Material)Misc.random(Constants.Game.ITEMSET)); Enchantment ench; while(!(ench = (Enchantment)Misc.random(Enchantment.values())).canEnchantItem(item)); item.addEnchantment(ench, 1+(new Random().nextInt(Integer.MAX_VALUE)%(ench.getMaxLevel()-1))); player.getInventory().addItem(item); } else { player.getInventory().addItem(new ItemStack(Material.SKULL_ITEM)); current.randomizeChest(); } e.setCancelled(true); } else if(inter instanceof Powerup) { Powerup powerup = (Powerup)inter; player.getInventory().addItem(powerup.getItem()); } else if(inter instanceof Lever) { Lever lever = (Lever)inter; if(lever.isToggled()) { player.sendMessage(ChatColor.RED + Zombie.lang.getProperty("game_impossible")); current.addPoints(player, cost); e.setCancelled(true); } else { lever.toggle(); } } } else { player.sendMessage(ChatColor.RED + Zombie.lang.getProperty("game_no_points").replace("%amount%", ""+cost)); e.setCancelled(true); } } } } } } catch(Exception ex) { ex.printStackTrace(); } } @EventHandler public void onPlayerInteractEntity(PlayerInteractEntityEvent e) { Game current; Player from = e.getPlayer(); if(e.getRightClicked() instanceof Player) { Player to = (Player)e.getRightClicked(); for(int i = 0, size = Zombie.games.size(); i