package net.mc_pandacraft.java.plugin.pandacraftutils; import net.mc_pandacraft.java.plugin.pandacraftutils.commands.CommandsManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.AfkManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.AutoMessagesManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.CalculatorManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.ChatAnalysisManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.CommandAliasManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.LoginLogoutMessageManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.PacketOutServerInfoListener; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.SpawnTimeManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.StaffQueueManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.SurvivalCuboManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.TPSAnalysisManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.WESelectionDisplayManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.cheat_protect.CreativCheatManager; import net.mc_pandacraft.java.plugin.pandacraftutils.modules.cheat_protect.NoPvpProtectManager; import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; public class PandacraftUtils extends JavaPlugin { private static PandacraftUtils instance; public static PandacraftUtils getInstance() { if (instance == null) (new Exception("Plugin PandacraftUtils non chargé")).printStackTrace(); return instance; } //public DBConnection databaseConnection; public AfkManager afkManager; public WESelectionDisplayManager wESelectionDisplayManager; public CommandAliasManager commandAliasManager; public SpawnTimeManager spawnTimeManager; public ChatAnalysisManager chatAnalysisManager; public CreativCheatManager creativCheatManager; public NoPvpProtectManager noPvpProtectManager; public LoginLogoutMessageManager loginLogoutMessageManager; public CalculatorManager calculatorManager; public SurvivalCuboManager survivalCuboManager; public StaffQueueManager staffQueueManager; public TPSAnalysisManager tpsAnalysisManager; public AutoMessagesManager autoMessagesManager; public PacketOutServerInfoListener serverPingListener; @Override public void onEnable(){ instance = this; /* try { databaseConnection = new DBConnection(ConfigManager.getInstance().Database_host, ConfigManager.getInstance().Database_port, ConfigManager.getInstance().Database_database, ConfigManager.getInstance().Database_username, ConfigManager.getInstance().Database_password); } catch (ClassNotFoundException | SQLException e) { getLogger().severe("Impossible de se connecter à la base de donnée !"); e.printStackTrace(); }*/ OnlinePlayerManager.loadNewInstance(); CommandsManager.loadNewInstance(); afkManager = new AfkManager(); wESelectionDisplayManager = new WESelectionDisplayManager(); commandAliasManager = new CommandAliasManager(); spawnTimeManager = new SpawnTimeManager(); chatAnalysisManager = new ChatAnalysisManager(); creativCheatManager = new CreativCheatManager(); noPvpProtectManager = new NoPvpProtectManager(); loginLogoutMessageManager = new LoginLogoutMessageManager(); calculatorManager = new CalculatorManager(); survivalCuboManager = new SurvivalCuboManager(); serverPingListener = new PacketOutServerInfoListener(); staffQueueManager = new StaffQueueManager(); tpsAnalysisManager = new TPSAnalysisManager(); autoMessagesManager = new AutoMessagesManager(); getServer().getScheduler().runTaskLater(this, new Runnable() { @Override public void run() { new PlayerDataCleaner(instance); } }, 1); } @Override public void onDisable(){ afkManager = null; wESelectionDisplayManager = null; commandAliasManager = null; spawnTimeManager = null; chatAnalysisManager = null; creativCheatManager = null; noPvpProtectManager = null; calculatorManager = null; survivalCuboManager = null; serverPingListener = null; staffQueueManager = null; tpsAnalysisManager = null; autoMessagesManager = null; ConfigManager.reloadConfig(); instance = null; //try { databaseConnection.getConnection().close(); } catch (SQLException e) { } } /** * Envoi d'un message groupé à plusieurs ou à tout les joueurs et peut-être à la console * @param message message à envoyer * @param prefix true si le message doit être précédé de "[Pandacraft] " * @param console défini si le message doit être affiché sur la console * @param permission défini la permission que doit avoir le joueur pour voir le message, ou null si le message est adressé à tous les joueurs * @throws IllegalArgumentException si message est null */ public void broadcast(String message, boolean prefix, boolean console, String permission) { if (message == null) throw new IllegalArgumentException("Un message doit être défini"); if (prefix) message = ConfigManager.getInstance().ServerMessages_prefix + message; for (Player p : getServer().getOnlinePlayers()) { if (p==null || !p.isOnline()) continue; if (permission != null && !p.hasPermission(permission)) continue; p.sendMessage(message); } if (console) getServer().getConsoleSender().sendMessage(message); } /** * Envoi d'un message groupé à tout les joueurs et peut-être à la console * @param message message à envoyer * @param prefix true si le message doit être précédé de "[Pandacraft] " * @param console défini si le message doit être affiché sur la console * @throws IllegalArgumentException si message est null */ public void broadcast(String message, boolean prefix, boolean console) { broadcast(message, prefix, console, null); } /** * Envoi d'un message groupé à plusieurs ou à tout les joueurs, et à la console si le paramètre permission est null * @param message message à envoyer * @param prefix true si le message doit être précédé de "[Pandacraft] " * @param permission défini la permission que doit avoir le joueur pour voir le message, ou null si le message est adressé à tous les joueurs et à la console * @throws IllegalArgumentException si message est null */ public void broadcast(String message, boolean prefix, String permission) { broadcast(message, prefix, (permission == null), permission); } /** * Envoi d'un message groupé à tout les joueurs et à la console * @param message message à envoyer * @param prefix true si le message doit être précédé de "[Pandacraft] " */ public void broadcast(String message, boolean prefix) { broadcast(message, prefix, true, null); } }