package me.Travja.HungerArena;

import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.Skeleton;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;

public class PvP implements Listener {
	public Main plugin;
	public PvP(Main m) {
		this.plugin = m;
	}
	int a = 0;
	@EventHandler(priority= EventPriority.MONITOR)
	public void PlayerPvP(EntityDamageByEntityEvent event){
		Entity pl = event.getEntity();
		Entity dl = event.getDamager();
		if(pl instanceof Player && dl instanceof Player){
			Player p = (Player) pl;
			Player d = (Player) dl;
			if(plugin.getArena(p)!= null && plugin.getArena(d)!= null){
				a = plugin.getArena(p);
				if(plugin.canjoin.get(a)){
					if(event.isCancelled()){
						event.setCancelled(false);
					}
				}
			}
			if(plugin.getArena(p)!= null){
				a = plugin.getArena(p);
				if(!plugin.canjoin.get(a)){
					if(!event.isCancelled()){
						event.setCancelled(true);
					}
				}
			}
			if(plugin.getArena(p)== null && plugin.getArena(d)!= null){
				if(!event.isCancelled()){
					event.setCancelled(true);
				}
			}
		}else if(pl instanceof Player && dl instanceof Projectile){
			Projectile projectile = (Projectile) dl;
			Player p = (Player) pl;
			if(projectile.getShooter() instanceof Player){
				if(plugin.getArena(p) != null){
					Player shooter = (Player) projectile.getShooter();
					if(plugin.getArena(shooter)!= null){
						event.setCancelled(false);
					}
				}
			}else if(projectile.getShooter() instanceof Entity){
				Entity e = projectile.getShooter();
				if(e instanceof Skeleton){
					if(plugin.getArena(p)!= null){
						event.setCancelled(false);
					}
				}
			}
		}
	}
}