70 lines
2.2 KiB
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");
|
|
}
|
|
}
|
|
} |