package eu.thog.uhcrun.game;
import eu.thog.uhcrun.compatibility.Status;
import org.bukkit.*;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.UUID;
/**
* This file is a part of the UHCRun Project CodeBase
* Created by Thog
* (C) Copyright Thomas Guillemard 2016
* All rights reserved.
*/
public class UHCPlayer
{
private static AbstractGame game;
private final UUID uuid;
private int kills;
private boolean spectator;
public UHCPlayer(Player player)
{
this.uuid = player.getUniqueId();
}
public static void setGame(AbstractGame game)
{
UHCPlayer.game = game;
}
public void handleLogin(Player player, boolean reconnect)
{
if (player == null)
{
return;
}
if (!reconnect)
{
player.setGameMode(GameMode.ADVENTURE);
player.setHealth(player.getMaxHealth());
player.setFoodLevel(20);
player.teleport(game.getPlugin().getSpawnLocation());
player.getInventory().clear();
player.getInventory().setHeldItemSlot(0);
player.updateInventory();
if (game instanceof TeamGame)
{
ItemStack star = new ItemStack(Material.NETHER_STAR);
ItemMeta starMeta = star.getItemMeta();
starMeta.setDisplayName(ChatColor.GOLD + "Sélectionner une équipe");
star.setItemMeta(starMeta);
player.getInventory().setItem(4, star);
player.getInventory().setHeldItemSlot(4);
}
} else
{
game.rejoin(player);
}
}
public void handleLogout()
{
if (!spectator)
{
Player player = getPlayerIfOnline();
if (game.getStatus() == Status.IN_GAME)
{
game.getGameLoop().removePlayer(player.getUniqueId());
if (game.isPvpEnabled())
{
game.stumpPlayer(player, true);
Location time = player.getLocation();
World w = time.getWorld();
ItemStack[] var4 = player.getInventory().getContents();
for (ItemStack stack : var4)
{
if (stack != null)
{
w.dropItemNaturally(time, stack);
}
}
}
}
}
}
public void addKill()
{
kills++;
}
public Player getPlayerIfOnline()
{
return Bukkit.getPlayer(this.uuid);
}
public int getKills()
{
return kills;
}
public boolean isSpectator()
{
return spectator;
}
public void setSpectator()
{
this.spectator = true;
Player p = getPlayerIfOnline();
if (p != null)
{
p.setGameMode(GameMode.SPECTATOR);
for (Player player : Bukkit.getOnlinePlayers())
{
player.hidePlayer(p);
}
}
}
public UUID getUUID()
{
return uuid;
}
}