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

274 lines
6.9 KiB
Java
Raw Normal View History

2014-11-22 17:18:10 +01:00
package net.mc_pandacraft.java.plugin.pandacraftutils;
import java.io.File;
2014-11-22 17:18:10 +01:00
import java.util.ArrayList;
import java.util.Arrays;
2014-11-22 17:18:10 +01:00
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bukkit.configuration.file.FileConfiguration;
2014-11-22 17:18:10 +01:00
/*
* Configuration du plugin
*/
public class ConfigManager {
private static ConfigManager instance = null;
2014-11-22 17:18:10 +01:00
public synchronized static ConfigManager getInstance() {
if (instance == null)
try {
instance = new ConfigManager();
} catch (Exception e) {
PandacraftUtils.getInstance().getLogger().severe("Erreur de chargement de la configuration de PandacraftUtils");
e.printStackTrace();
}
return instance;
}
2014-11-22 17:18:10 +01:00
public synchronized static void reloadConfig() {
if (instance != null)
PandacraftUtils.getInstance().reloadConfig();
instance = null;
}
private PandacraftUtils plugin = PandacraftUtils.getInstance();
2014-11-22 17:18:10 +01:00
private ConfigManager() throws Exception {
// dossier de configuration principale
File configDir = plugin.getDataFolder();
configDir.mkdir();
// dossier qui doit contenir les messages automatiques
File autoMessagesDir = new File(configDir, "automessages");
autoMessagesDir.mkdir();
// dossier qui doit contenir les alias de commandes
File commandAliasDir = new File(configDir, "commandalias");
commandAliasDir.mkdir();
// dossier qui doit contenir les séries de commandes
File multiCommandsDir = new File(configDir, "multicommands");
multiCommandsDir.mkdir();
// fichier qui doit contenir les insultes à censurer
File badWordsFile = new File(configDir, "badwords.txt");
badWordsFile.createNewFile();
plugin.saveDefaultConfig();
FileConfiguration configFile = plugin.getConfig();
Database_host = configFile.getString("database.host");
Database_port = configFile.getInt("database.port");
Database_database = configFile.getString("database.base");
Database_username = configFile.getString("database.user");
Database_password = configFile.getString("database.pass");
AFK_timeoutAutoAfkMessage = configFile.getInt("afk.timeoutAutoMessage");
AFK_timeoutAutoAfkKick = configFile.getInt("afk.timeoutAutoKick");
ChatAnalysis_timeBeforeResendSameMessage = configFile.getLong("chatAnalysis.timeBeforeResendSameMessage");
ChatAnalysis_timeBeforeResendSameCommand = configFile.getLong("chatAnalysis.timeBeforeResendSameCommand");
ChatAnalysis_timePerCaracterForNewMessage = configFile.getLong("chatAnalysis.timePerCaracterForNewMessage");
ChatAnalysis_maxViolationLevel = configFile.getInt("chatAnalysis.maxViolationLevel");
ChatAnalysis_nbSecondForOneVLDown = configFile.getInt("chatAnalysis.nbSecondForOneVLDown");
CuboCommand_worlds = Arrays.asList(configFile.getString("cubos.worlds").split(";"));
2014-11-22 17:18:10 +01:00
UsersCleaner_users_cleaner_group = configFile.getString("cleaner.users_cleaner_group");
2014-11-22 17:18:10 +01:00
initChatAnalysisBadWord();
2014-11-22 17:18:10 +01:00
initCommandAlias();
}
/*
* Connexion à la base de donnée
*/
public String Database_host;
public int Database_port;
public String Database_username;
public String Database_database;
public String Database_password;
/*
* Users cleaner
*/
public String UsersCleaner_users_cleaner_group;
/*
* Configuration AFK
*/
/**
* En secondes
*/
public int AFK_timeoutAutoAfkMessage;
/**
* En secondes
*/
public int AFK_timeoutAutoAfkKick; // 10 min
2014-11-22 17:18:10 +01:00
/*
* Configuration analyse du chat et des messages privés
* (antispam, insultes, publicité)
*/
/**
* En milisecondes
*/
public long ChatAnalysis_timeBeforeResendSameMessage;// 2 min
/**
* En milisecondes
*/
public long ChatAnalysis_timeBeforeResendSameCommand;// 60 sec
/**
* En milisecondes
*/
public long ChatAnalysis_timePerCaracterForNewMessage;// 0.1 sec
public int ChatAnalysis_maxViolationLevel;
public int ChatAnalysis_nbSecondForOneVLDown;
public List<String> ChatAnalysis_badWords; // les insultes
private void initChatAnalysisBadWord() {
ChatAnalysis_badWords = new ArrayList<String>();
/*
* Insultes
*/
ChatAnalysis_badWords.add("pu+tes?");
ChatAnalysis_badWords.add("conn?a(rd?|ss?e?)");
ChatAnalysis_badWords.add("sal(o+|au)pe?s?");
ChatAnalysis_badWords.add("[ea]ncul(é|e|er|ai(s|t|))");
ChatAnalysis_badWords.add("merdes?");
ChatAnalysis_badWords.add("ni(qu|k)e? ta m(è|e|é)re?");
ChatAnalysis_badWords.add("fil?s de putes?");
ChatAnalysis_badWords.add("ta m(è|e|é)re? l(a|e) putes?");
ChatAnalysis_badWords.add("tafiole?s?");
ChatAnalysis_badWords.add("vas? te pendre");
ChatAnalysis_badWords.add("fuck");
ChatAnalysis_badWords.add("mother ?fuc?ker");
ChatAnalysis_badWords.add("dick");
ChatAnalysis_badWords.add("ass");
ChatAnalysis_badWords.add("bitch");
//ChatAnalysis_badWords.add("");
/*
* Pub pour des serveurs (avec sous domaines type *.mtxserv.fr ou nom de serveur connu genre Minefield)
*/
ChatAnalysis_badWords.add("minefield");
ChatAnalysis_badWords.add("mineplex");
ChatAnalysis_badWords.add("hypixel");
//ChatAnalysis_badWords.add("");
//ChatAnalysis_badWords.add("");
//ChatAnalysis_badWords.add("");
}
/*
* Alias pour les commandes
*/
2014-11-22 17:18:10 +01:00
public List<Map<String, String>> CommandAlias_alias;
private void initCommandAlias() {
CommandAlias_alias = new ArrayList<Map<String, String>>();
Map<String, String> alias;
alias = new HashMap<String, String>();
alias.put("initialCommand", "/day");
alias.put("replaceWith", "/ptime day");
alias.put("permissions", "pandacraft.grade.users"); // multiple permission separated with semicolumn
CommandAlias_alias.add(alias);
alias = new HashMap<String, String>();
alias.put("initialCommand", "/night");
alias.put("replaceWith", "/ptime night");
alias.put("permissions", "pandacraft.grade.users");
CommandAlias_alias.add(alias);
alias = new HashMap<String, String>();
alias.put("initialCommand", "/time");
alias.put("replaceWith", "/ptime");
alias.put("permissions", "pandacraft.grade.users");
CommandAlias_alias.add(alias);
alias = new HashMap<String, String>();
alias.put("initialCommand", "/shop");
alias.put("replaceWith", "/warp shop");
alias.put("permissions", "*"); // tout le monde
CommandAlias_alias.add(alias);
alias = new HashMap<String, String>();
alias.put("initialCommand", "/tete");
alias.put("replaceWith", "/heads nick");
alias.put("permissions", "*");
CommandAlias_alias.add(alias);
alias = new HashMap<String, String>();
alias.put("initialCommand", "/inscription");
alias.put("replaceWith", "/mail send marcbal Inscription");
alias.put("permissions", "pandacraft.grade.not_default");
CommandAlias_alias.add(alias);
2014-11-22 17:18:10 +01:00
/*
Map<String, String> alias = new HashMap<String, String>();
alias.put("initialCommand", "");
alias.put("replaceWith", "");
alias.put("permissions", "");
CommandAlias_alias.add(alias);
*/
}
public List<String> CuboCommand_worlds = new ArrayList<String>();
2014-11-22 17:18:10 +01:00
}