package eu.univento.maya.listener; import eu.univento.core.api.Config; import eu.univento.core.api.player.CustomPlayer; import eu.univento.core.api.player.SpectateManager; import eu.univento.core.api.player.Spectator; import eu.univento.maya.Maya; import eu.univento.maya.game.GameStage; import org.bukkit.GameMode; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; /** * @author joethei * @version 0.1 */ public class PlayerEvents implements Listener{ @EventHandler public void onJoin(PlayerJoinEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); if(Maya.getStage() == GameStage.Lobby) { if(Maya.getPlayers().size() >= Maya.getMaxPlayers()) { new Spectator(p); p.teleport(Config.readLocation("Maya.Spawn.Spectator")); p.sendMessage("§cDu bist nun Zuschauer"); e.setJoinMessage(null); return; } p.teleport(Config.readLocation("Maya.Spawn.Lobby")); p.sendMessage("§cDu bist dem Spiel beigetreten"); e.setJoinMessage("§6Maya: " + p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + " §6ist dem Spiel beigetreten"); p.setGameMode(GameMode.ADVENTURE); }else { e.setJoinMessage(null); new Spectator(p); p.teleport(Config.readLocation("Maya.Spawn.Spectator")); p.sendMessage("§cDu bist nun Zuschauer"); } } @EventHandler public void onQuit(PlayerQuitEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); if(SpectateManager.contains(p)) { Spectator spectator = SpectateManager.get(p); assert spectator != null; spectator.remove(); } if(Maya.getPlayers().contains(p)) { Maya.getPlayers().remove(p); e.setQuitMessage("§6Maya: " + p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + " §6hat das Spiel verlassen"); } } }