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

227 lines
8.3 KiB
Java

package net.mc_pandacraft.java.plugin.pandacraftutils;
import net.mc_pandacraft.java.plugin.pandacraftutils.commands.PandacraftUtilsCommandsManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.config.ConfigManager;
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.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.TPSAnalysisManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.WESelectionDisplayManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.fun.HeartThrowManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.player_control.AfkManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.player_control.ChatAnalysisManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.protection.CreativCheatManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.protection.EntitySpamManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.protection.NoPvpProtectManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.protection.SurvivalCuboManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.protection.TamedEntityProtectManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.protection.WorldBorderManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.staff.StaffQueueManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.network_api.NetworkAPI;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager;
import net.mc_pandacraft.java.plugin.pandacraftutils.players.PlayerDataCleaner;
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 EntitySpamManager entitySpamManager;
public TamedEntityProtectManager tamedEntityProtectManager;
public WorldBorderManager worldBorderManager;
public HeartThrowManager heartThrowManager;
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();
}*/
ConfigManager.loadNewInstance();
OnlinePlayerManager.loadNewInstance();
PandacraftUtilsCommandsManager.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();
entitySpamManager = new EntitySpamManager();
tamedEntityProtectManager = new TamedEntityProtectManager();
worldBorderManager = new WorldBorderManager();
heartThrowManager = new HeartThrowManager();
NetworkAPI.loadNewInstance();
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;
entitySpamManager = null;
tamedEntityProtectManager = null;
worldBorderManager = null;
heartThrowManager = null;
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 <i>true</i> 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 <i>null</i> si le message est adressé à tous les joueurs
* @throws IllegalArgumentException si message est <i>null</i>
*/
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().defaultConfig.serverMessages_prefix + message;
for (OnlinePlayer op : OnlinePlayerManager.getAll())
{
if (permission != null && !op.hasPermission(permission)) continue;
op.getPlayer().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 <i>true</i> 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 <i>null</i>
*/
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 <b>permission</b> est <i>null</i>
* @param message message à envoyer
* @param prefix <i>true</i> 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 <i>null</i> si le message est adressé à tous les joueurs et à la console
* @throws IllegalArgumentException si message est <i>null</i>
*/
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 <i>true</i> si le message doit être précédé de "[Pandacraft] "
*/
public void broadcast(String message, boolean prefix) {
broadcast(message, prefix, true, null);
}
}