/* * Copyright (c) 2017 univento.eu - All rights reserved * You are not allowed to use, distribute or modify this code */ package eu.univento.impact.listeners; import eu.univento.core.Core; import eu.univento.core.api.game.TeamManager; import eu.univento.core.api.player.CustomPlayer; import eu.univento.core.api.player.SpectateManager; import eu.univento.core.api.player.Spectator; import eu.univento.core.api.server.ServerSettings; import eu.univento.impact.game.GameState; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerQuitEvent; /** * @author joethei * @version 0.1 */ public class JoinQuit implements Listener{ @EventHandler public void onJoin(PlayerJoinEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); if(GameState.getState() == GameState.Lobby) { } if(GameState.getState() == GameState.Warmup) { e.setJoinMessage(null); new Spectator(p); } if(GameState.getState() == GameState.Ingame) { e.setJoinMessage(null); new Spectator(p); } } @EventHandler public void onQuit(PlayerQuitEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); if(GameState.getState() == GameState.Lobby) { } if(GameState.getState() == GameState.Warmup) { e.setQuitMessage(null); } if(GameState.getState() == GameState.Ingame) { e.setQuitMessage(null); } if (SpectateManager.contains(p)) { SpectateManager.get(p).remove(); } if(TeamManager.getTeam(p) != null) { TeamManager.getTeam(p).removePlayer(p); } } @EventHandler public void onLogin(PlayerLoginEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); if(GameState.getState() != GameState.Lobby && Core.getOnlinePlayers().size() >= ServerSettings.getMaxPlayers()) { e.disallow(PlayerLoginEvent.Result.KICK_FULL, "§cDas Spiel ist voll"); } } }