package com.github.jamesnorris.ablockalypse.event.bukkit; 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.PlayerKickEvent; 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.ZAPlayer; import com.github.jamesnorris.ablockalypse.event.PlayerLeaveGameEvent; public class PlayerKick implements Listener { private DataContainer data = Ablockalypse.getData(); /* Called when a player is kicked from the game. * Used mostly to prevent multiple level gains after a player is kicked. */ @EventHandler(priority = EventPriority.HIGHEST) public void PKE(PlayerKickEvent event) { Player player = event.getPlayer(); if (data.isZAPlayer(player)) { ZAPlayer zap = data.getZAPlayer(player); Game zag = zap.getGame(); PlayerLeaveGameEvent GPLE = new PlayerLeaveGameEvent(zap, zag); Bukkit.getPluginManager().callEvent(GPLE); if (!GPLE.isCancelled()) { zag.removePlayer(player); zap.remove(); } } } }