PandacraftUtils/src/net/mc_pandacraft/java/plugin/pandacraftutils/modules/LoginLogoutMessageManager.java

79 lines
2.1 KiB
Java

package net.mc_pandacraft.java.plugin.pandacraftutils.modules;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils;
import net.mc_pandacraft.java.plugin.pandacraftutils.plugin_interface.EssentialsInterface;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import de.luricos.bukkit.xAuth.events.xAuthLoginEvent;
public class LoginLogoutMessageManager implements Listener {
private PandacraftUtils plugin;
private List<Player> loggedInPlayer = new ArrayList<Player>();
public LoginLogoutMessageManager(PandacraftUtils pl) {
plugin = pl;
plugin.getServer().getPluginManager().registerEvents(this, plugin);
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
event.setJoinMessage(null);
}
@EventHandler
public void onxAuthLogin(xAuthLoginEvent event) {
loggedInPlayer.add(event.getPlayer());
if (EssentialsInterface.isPlayerVanished(event.getPlayer())) return;
plugin.getServer().broadcastMessage(ChatColor.YELLOW+event.getPlayer().getDisplayName()+ChatColor.YELLOW+" vient de se connecter");
}
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
event.setQuitMessage(null);
if (!isPlayerLoggedIn(event.getPlayer()))
return;
loggedInPlayer.remove(event.getPlayer());
// on affiche le message que si le joueur n'est pas vanish
if (EssentialsInterface.isPlayerVanished(event.getPlayer())) return;
plugin.getServer().broadcastMessage(ChatColor.YELLOW+event.getPlayer().getDisplayName()+ChatColor.YELLOW+" a quitté le jeu");
}
public List<Player> getLoggedInPlayers() { return loggedInPlayer; }
public List<Player> getLoggedOutPlayers() {
List<Player> players = new ArrayList<Player>(Arrays.asList(plugin.getServer().getOnlinePlayers()));
players.removeAll(loggedInPlayer);
return players;
}
public boolean isPlayerLoggedIn(Player p) {
return loggedInPlayer.contains(p);
}
}