2014-11-22 17:18:10 +01:00
|
|
|
package net.mc_pandacraft.java.plugin.pandacraftutils;
|
|
|
|
|
2015-01-03 06:35:55 +01:00
|
|
|
import java.io.File;
|
2014-11-22 17:18:10 +01:00
|
|
|
import java.util.ArrayList;
|
2015-01-07 04:13:50 +01:00
|
|
|
import java.util.Arrays;
|
2014-11-22 17:18:10 +01:00
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
|
2015-01-03 06:35:55 +01:00
|
|
|
import org.bukkit.configuration.file.FileConfiguration;
|
|
|
|
|
2014-11-22 17:18:10 +01:00
|
|
|
/*
|
|
|
|
* Configuration du plugin
|
|
|
|
*/
|
|
|
|
public class ConfigManager {
|
2014-12-24 19:33:08 +01:00
|
|
|
private static ConfigManager instance = null;
|
2014-11-22 17:18:10 +01:00
|
|
|
|
2015-01-03 06:35:55 +01:00
|
|
|
public synchronized static ConfigManager getInstance() {
|
2014-12-24 19:33:08 +01:00
|
|
|
|
|
|
|
if (instance == null)
|
2015-01-03 06:35:55 +01:00
|
|
|
try {
|
|
|
|
instance = new ConfigManager();
|
|
|
|
} catch (Exception e) {
|
|
|
|
PandacraftUtils.getInstance().getLogger().severe("Erreur de chargement de la configuration de PandacraftUtils");
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2014-12-24 19:33:08 +01:00
|
|
|
|
|
|
|
return instance;
|
|
|
|
}
|
2014-11-22 17:18:10 +01:00
|
|
|
|
2015-01-03 06:35:55 +01:00
|
|
|
public synchronized static void reloadConfig() {
|
2015-01-07 04:13:50 +01:00
|
|
|
if (instance != null)
|
|
|
|
PandacraftUtils.getInstance().reloadConfig();
|
2015-01-03 06:35:55 +01:00
|
|
|
instance = null;
|
|
|
|
}
|
|
|
|
|
2014-12-24 19:33:08 +01:00
|
|
|
private PandacraftUtils plugin = PandacraftUtils.getInstance();
|
2014-11-22 17:18:10 +01:00
|
|
|
|
2015-01-03 06:35:55 +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");
|
|
|
|
|
2015-01-07 04:13:50 +01:00
|
|
|
CuboCommand_worlds = Arrays.asList(configFile.getString("cubos.worlds").split(";"));
|
2014-11-22 17:18:10 +01:00
|
|
|
|
2015-01-19 07:11:20 +01:00
|
|
|
UsersCleaner_users_cleaner_group = configFile.getString("cleaner.users_cleaner_group");
|
|
|
|
|
2014-11-22 17:18:10 +01:00
|
|
|
|
2014-11-27 23:36:58 +01:00
|
|
|
initChatAnalysisBadWord();
|
2014-11-22 17:18:10 +01:00
|
|
|
initCommandAlias();
|
|
|
|
}
|
|
|
|
|
2014-12-24 19:33:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Connexion à la base de donnée
|
|
|
|
*/
|
|
|
|
|
2015-01-03 06:35:55 +01:00
|
|
|
public String Database_host;
|
|
|
|
public int Database_port;
|
|
|
|
public String Database_username;
|
|
|
|
public String Database_database;
|
|
|
|
public String Database_password;
|
2014-12-24 19:33:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-19 07:11:20 +01:00
|
|
|
/*
|
|
|
|
* Users cleaner
|
|
|
|
*/
|
|
|
|
public String UsersCleaner_users_cleaner_group;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-11-27 23:36:58 +01:00
|
|
|
/*
|
|
|
|
* Configuration AFK
|
|
|
|
*/
|
2015-01-03 06:35:55 +01:00
|
|
|
/**
|
|
|
|
* En secondes
|
|
|
|
*/
|
|
|
|
public int AFK_timeoutAutoAfkMessage;
|
|
|
|
/**
|
|
|
|
* En secondes
|
|
|
|
*/
|
|
|
|
public int AFK_timeoutAutoAfkKick; // 10 min
|
2014-11-22 17:18:10 +01:00
|
|
|
|
2014-11-27 23:36:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Configuration analyse du chat et des messages privés
|
|
|
|
* (antispam, insultes, publicité)
|
|
|
|
*/
|
2015-01-03 06:35:55 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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;
|
|
|
|
|
|
|
|
|
2014-11-27 23:36:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
public List<String> ChatAnalysis_badWords; // les insultes
|
|
|
|
|
|
|
|
private void initChatAnalysisBadWord() {
|
|
|
|
ChatAnalysis_badWords = new ArrayList<String>();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Insultes
|
|
|
|
*/
|
2014-11-28 22:08:10 +01:00
|
|
|
ChatAnalysis_badWords.add("pu+tes?");
|
2014-11-27 23:36:58 +01:00
|
|
|
ChatAnalysis_badWords.add("conn?a(rd?|ss?e?)");
|
2014-12-24 19:33:08 +01:00
|
|
|
ChatAnalysis_badWords.add("sal(o+|au)pe?s?");
|
2014-11-27 23:36:58 +01:00
|
|
|
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);
|
2015-01-15 03:43:19 +01:00
|
|
|
|
|
|
|
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);
|
|
|
|
*/
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2015-01-07 04:13:50 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<String> CuboCommand_worlds = new ArrayList<String>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-11-22 17:18:10 +01:00
|
|
|
}
|