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

442 lines
13 KiB
Java
Raw Normal View History

package net.mc_pandacraft.java.plugin.pandacraftutils.config;
2014-11-22 17:18:10 +01:00
import java.io.File;
2014-11-22 17:18:10 +01:00
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils;
import org.bukkit.ChatColor;
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)
loadNewInstance();
return instance;
}
2014-11-22 17:18:10 +01:00
public synchronized static void loadNewInstance() {
try {
instance = new ConfigManager();
} catch (Exception e) {
PandacraftUtils.getInstance().getLogger().severe("Erreur de chargement de la configuration de PandacraftUtils");
e.printStackTrace();
}
}
private PandacraftUtils plugin = PandacraftUtils.getInstance();
2014-11-22 17:18:10 +01:00
public final DefaultConfigManager defaultConfig;
private ConfigManager() throws Exception {
// dossier de configuration principale
File configDir = plugin.getDataFolder();
configDir.mkdir();
defaultConfig = new DefaultConfigManager();
// 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();
initChatAnalysisBadWord();
2014-11-22 17:18:10 +01:00
initCommandAlias();
initAutomessages();
initWorldBorder();
2015-02-17 03:48:02 +01:00
initMultiCommand();
2014-11-22 17:18:10 +01:00
}
2015-02-04 23:42:58 +01:00
/*
* Automessages
*/
public List<Map<String, String>> Automessages_messages;
private void initAutomessages() {
Automessages_messages = new ArrayList<Map<String,String>>();
String defColor = defaultConfig.serverMessages_defaultColor;
Map<String, String> message;
message = new HashMap<String, String>();
message.put("message", ChatColor.BLUE+"Bienvenue sur Pandacraft ! :) Pour pouvoir jouer, n'oubliez pas de vous inscrire en cliquant sur le lien en dessous%n &ahttps://www.mc-pandacraft.net/?p=inscription");
message.put("permissions", "pandacraft.grade.default");
Automessages_messages.add(message);
2015-01-24 10:05:58 +01:00
message = new HashMap<String, String>();
message.put("message", "Utilisez la commande &7/cubo"+defColor+" en Survie pour protéger vos construction ! :)%n&a https://www.mc-pandacraft.net/?p=antigrief#tuto_cubo");
2015-01-24 10:05:58 +01:00
message.put("permissions", "*");
Automessages_messages.add(message);
message = new HashMap<String, String>();
message.put("message", "WorldEdit disponible en &bCréatif"+defColor+" avec le grade %n&f[&eUltimate&f]"+defColor+". Profitez en vite :D%n &a https://www.mc-pandacraft.net/?p=ultimate");
message.put("permissions", "*");
Automessages_messages.add(message);
message = new HashMap<String, String>();
message.put("message", "Launcher disponible pour Pandacraft : Optifine intégré et mise à jour automatique avec le serveur.%n &ahttps://www.mc-pandacraft.net/?p=launcher");
message.put("permissions", "*");
Automessages_messages.add(message);
/*
* Fonctionnement :
* Chaque joueur a une variable indiquand la date/heure du dernier message affiché
* Cette valeur est initialisé à la valeur courante, lors de chaque connexion du joueur
* Selon le grade, l'intervalle entre les messages est défini : 2min30 pour les visiteurs, 10 minutes pour les autres
* Chaque joueur a une variable qui correspond à l'ID du dernier message (dans l'ArrayList) pour ne pas répéter deux fois le même
*/
}
2014-11-22 17:18:10 +01:00
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("mtxserv");
ChatAnalysis_badWords.add("spycraft");
ChatAnalysis_badWords.add("verygames");
ChatAnalysis_badWords.add("minecraft-mania");
//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
2014-11-22 17:18:10 +01:00
CommandAlias_alias.add(alias);
alias = new HashMap<String, String>();
alias.put("initialCommand", "/night");
alias.put("replaceWith", "/ptime night");
alias.put("permissions", "pandacraft.grade.users");
2014-11-22 17:18:10 +01:00
CommandAlias_alias.add(alias);
alias = new HashMap<String, String>();
alias.put("initialCommand", "/time");
alias.put("replaceWith", "/ptime");
alias.put("permissions", "pandacraft.grade.users");
2014-11-22 17:18:10 +01:00
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", "/lobby");
alias.put("replaceWith", "/spawn");
alias.put("permissions", "*"); // tout le monde
CommandAlias_alias.add(alias);
alias = new HashMap<String, String>();
alias.put("initialCommand", "/hub");
alias.put("replaceWith", "/spawn");
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.users");
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);
*/
}
/*
* World Border
*/
public HashMap<String, WorldBorderConfig> WorldBorder_config;
private void initWorldBorder() {
WorldBorder_config = new HashMap<String, WorldBorderConfig>();
WorldBorder_config.put("Faction", new WorldBorderConfig(40, 296, 2000));
WorldBorder_config.put("Survival_nether", new WorldBorderConfig(-11.4F, 18.5F, 1500));
WorldBorder_config.put("Survival", new WorldBorderConfig(800, 1536, 5000));
WorldBorder_config.put("NewFaction", new WorldBorderConfig(136, -136, 3000));
WorldBorder_config.put("Faction_nether", new WorldBorderConfig(-81.6F, -76.9F, 500));
WorldBorder_config.put("PlatCreative", new WorldBorderConfig(456.6f, -1367.5f, 735));
WorldBorder_config.put("world", new WorldBorderConfig(0, 0, 2000));
WorldBorder_config.put("spawn", new WorldBorderConfig(-224, 366, 1000));
WorldBorder_config.put("creative", new WorldBorderConfig(0, 0, 1700));
}
public static class WorldBorderConfig {
public final float X, Z, radius;
public WorldBorderConfig(float x, float z, float r) {
X = x;
Z = z;
radius = Math.abs(r);
}
public double getMinX() { return X - radius; }
public double getMaxX() { return X + radius; }
public double getMinZ() { return Z - radius; }
public double getMaxZ() { return Z + radius; }
}
2015-02-17 03:48:02 +01:00
/*
* Multicommand
*/
public Map<String, List<String>> MultiCommand_config;
private void initMultiCommand() {
/*
* Format d'un String dans l'ArrayList :
* T C A /CMD ...
* - T : temps en tick, depuis l'exécution de la commande /muco
* - C : "C" si doit être exécuté en tant que la console, autre chose sinon
* - A : "A" si la commande peut être exécuté en mode asynchrone, autre chose, sinon
* (T, C et A ne peuvent pas contenir d'espace)
* /CMD ... correspond à la commande, avec le / devant. Peut contenir $1, $2, ... comme des paramètres
*/
MultiCommand_config = new HashMap<String, List<String>>();
List<String> list = new ArrayList<String>();
list.add("0 - - /pex user $1 remove $2");
list.add("1 - - /pex user $1 add $3");
list.add("1 - - /m $1 La mise à jour de votre grade est terminé :) !");
MultiCommand_config.put("gradejoueur", list);
list = new ArrayList<String>();
list.add("0 - - /region select arenespleef_niv1");
list.add("1 - - //replace 0 87");
list.add("2 - - /region select arenespleef_niv2");
list.add("3 - - //replace 0 87");
list.add("4 - - /region select arenespleef_niv3");
list.add("5 - - //replace 0 87");
list.add("6 - - /region select arenespleef_niv4");
list.add("7 - - //replace 0 87");
list.add("8 - - /region select arenespleef_niv5");
list.add("9 - - //replace 0 87");
list.add("10 - - /region select arenespleef_niv6");
list.add("11 - - //replace 0 87");
list.add("12 - - /region select arenespleef_niv7");
list.add("13 - - //replace 0 87");
list.add("14 - - /region select arenespleef_niv8");
list.add("15 - - //replace 0 87");
MultiCommand_config.put("arenespleef_reparer", list);
list = new ArrayList<String>();
list.add("0 - - /pex user $1 group add premium");
list.add("0 - - /m $1 Vous venez de passer Premium :)");
MultiCommand_config.put("addpremium", list);
list = new ArrayList<String>();
list.add("0 - - /pex user $1 group remove premium");
MultiCommand_config.put("delpremium", list);
list = new ArrayList<String>();
list.add("0 - - /pex user $1 group add ultimate");
list.add("0 - - /m $1 Vous venez de recevoir le grade Ultimate, félicitation :)");
MultiCommand_config.put("addultimate", list);
list = new ArrayList<String>();
list.add("0 - - /pex user $1 group remove ultimate");
list.add("0 - - /mail send $1 Vous venez de perdre votre grade Ultimate et tous ses avantages car la durée est écoulée.");
list.add("1 - - /mail send $1 Si vous voulez encore en profiter, rendez vous sur http://mc-pandacraft.net/?p=ultimate");
MultiCommand_config.put("delultimate", list);
list = new ArrayList<String>();
list.add("0 - - /region select arenepvp_solarene");
list.add("1 - - //replace 11 20");
MultiCommand_config.put("arenepvp_proteger_lave", list);
list = new ArrayList<String>();
list.add("0 - - /region select arenepvp_solarene");
list.add("1 - - //replace 20 11");
MultiCommand_config.put("arenepvp_remettre_lave", list);
list = new ArrayList<String>();
list.add("0 - - /region select arenepvp_toit");
list.add("1 - - //replace 20 98");
MultiCommand_config.put("arenepvp_fermer_fenetre", list);
list = new ArrayList<String>();
list.add("0 - - /region select arenepvp_toit");
list.add("1 - - //replace 98 20");
MultiCommand_config.put("arenepvp_ouvrir_fenetre", list);
list = new ArrayList<String>();
list.add("0 C - /broadcast &7Site Web :&a https://www.mc-pandacraft.net/");
MultiCommand_config.put("site", list);
list = new ArrayList<String>();
list.add("0 C - /broadcast &7Devenir &f[&bMembre&f]&7 :&a http://mc-pandacraft.net/?id=12");
MultiCommand_config.put("sitemembre", list);
list = new ArrayList<String>();
list.add("0 C - /broadcast Grade &f[&eUltimate&f]&7 :&a http://mc-pandacraft.net/?p=ultimate");
MultiCommand_config.put("siteultimate", list);
list = new ArrayList<String>();
list.add("0 - - /mv regen Survival_the_end");
list.add("1 - - /mvconfirm");
MultiCommand_config.put("new_ender", list);
list = new ArrayList<String>();
list.add("0 - - /mv regen Survival_nether");
list.add("1 - - /mvconfirm");
list.add("600 - - /mv regen Faction_nether");
list.add("601 - - /mvconfirm");
MultiCommand_config.put("new_nether", list);
}
2014-11-22 17:18:10 +01:00
}