package net.mc_pandacraft.java.plugin.pandacraftutils; import java.sql.SQLException; import net.mc_pandacraft.java.plugin.pandacraftutils.afk.CommandAfk; import net.mc_pandacraft.java.plugin.pandacraftutils.calculator.CalculatorManager; import net.mc_pandacraft.java.plugin.pandacraftutils.chat_analyzer.ChatAnalysisManager; import net.mc_pandacraft.java.plugin.pandacraftutils.cheat_protect.creative.CreativCheatManager; import net.mc_pandacraft.java.plugin.pandacraftutils.cheat_protect.no_pvp.NoPvpProtectManager; import net.mc_pandacraft.java.plugin.pandacraftutils.login_message.LoginLogoutManager; import net.mc_pandacraft.java.plugin.pandacraftutils.player_count_list.PacketOutServerInfoListener; import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands._command_alias.CommandAliasManager; import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.broadcast.CommandBroadcast; import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.list.CommandList; import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.me.CommandMe; import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.ping.CommandPing; import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.setblock.CommandSetblock; import net.mc_pandacraft.java.plugin.pandacraftutils.simple_commands.staff_player_help.CommandStaff; import net.mc_pandacraft.java.plugin.pandacraftutils.spawntime.SpawnTimeManager; import net.mc_pandacraft.java.plugin.pandacraftutils.survival_cuboid.CommandCubo; import net.mc_pandacraft.java.plugin.pandacraftutils.survival_cuboid.CommandWandSelection; import net.mc_pandacraft.java.plugin.pandacraftutils.system_analyzer.CommandSystem; import net.mc_pandacraft.java.util.mysql.DBConnection; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; public class PandacraftUtils extends JavaPlugin { private static PandacraftUtils instance; public static PandacraftUtils getInstance() { return instance; } public DBConnection databaseConnection; public CommandAfk commandAfk; public CommandList commandPlayers; public CommandSetblock commandSetblock; public CommandSystem commandSystem; public CommandPing commandPing; public CommandMe commandMe; public CommandWandSelection commandWandSelection; public CommandStaff commandStaff; public CommandCubo commandCubo; public CommandBroadcast commandBroadcast; public CommandAliasManager commandAliasManager; public SpawnTimeManager spawnTimeManager; public ChatAnalysisManager chatAnalysisManager; public CreativCheatManager creativCheatManager; public NoPvpProtectManager noPvpProtectManager; public LoginLogoutManager loginLogoutManager; public CalculatorManager calculatorManager; 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(); } commandPlayers = new CommandList(this); commandSetblock = new CommandSetblock(this); commandAfk = new CommandAfk(this); commandSystem = new CommandSystem(this); commandPing = new CommandPing(this); commandMe = new CommandMe(this); commandWandSelection = new CommandWandSelection(this); commandStaff = new CommandStaff(this); commandCubo = new CommandCubo(this); commandBroadcast = new CommandBroadcast(this); commandAliasManager = new CommandAliasManager(this); spawnTimeManager = new SpawnTimeManager(this); chatAnalysisManager = new ChatAnalysisManager(this); creativCheatManager = new CreativCheatManager(this); noPvpProtectManager = new NoPvpProtectManager(this); loginLogoutManager = new LoginLogoutManager(this); calculatorManager = new CalculatorManager(this); serverPingListener = new PacketOutServerInfoListener(this); } @Override public void onDisable(){ commandPlayers = null; commandSetblock = null; commandAfk = null; commandSystem = null; commandPing = null; commandMe = null; commandWandSelection = null; commandStaff = null; commandCubo = null; commandBroadcast = null; commandAliasManager = null; spawnTimeManager = null; chatAnalysisManager = null; creativCheatManager = null; noPvpProtectManager = null; calculatorManager = null; serverPingListener = null; ConfigManager.reloadConfig(); 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 = ChatColor.YELLOW+"["+ChatColor.WHITE+"Pandacraft"+ChatColor.YELLOW+"] " + 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); } }