package com.github.jamesnorris.ablockalypse.event.bukkit;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerQuitEvent;
import com.github.jamesnorris.ablockalypse.Ablockalypse;
import com.github.jamesnorris.ablockalypse.DataContainer;
import com.github.jamesnorris.ablockalypse.aspect.Game;
import com.github.jamesnorris.ablockalypse.aspect.PlayerState;
import com.github.jamesnorris.ablockalypse.aspect.ZAPlayer;
import com.github.jamesnorris.ablockalypse.event.PlayerLeaveGameEvent;
public class PlayerQuit implements Listener {
private DataContainer data = Ablockalypse.getData();
public static Map<Player, PlayerState> playerSaves = new HashMap<Player, PlayerState>();
/* Called when a player leaves the server.
* Used for removing a player from the ZAGame when they leave. */
@EventHandler(priority = EventPriority.HIGHEST) public void PQE(PlayerQuitEvent event) {
Player p = event.getPlayer();
if (data.isZAPlayer(p)) {
ZAPlayer zap = data.getZAPlayer(p);
Game zag = zap.getGame();
PlayerLeaveGameEvent GPLE = new PlayerLeaveGameEvent(zap, zag);
Bukkit.getPluginManager().callEvent(GPLE);
if (!GPLE.isCancelled()) {
playerSaves.put(p, zap.getState());
zag.removePlayer(p);
zap.remove();
}
}
}
}