Impact/src/main/java/eu/univento/impact/listeners/JoinQuit.java

70 lines
2.2 KiB
Java

/*
* 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");
}
}
}