Gestion dans une classe à part des mots censurés

This commit is contained in:
Marc Baloup 2015-02-17 16:55:02 -05:00
parent d1fec96e8e
commit dbae5bea01
4 changed files with 39 additions and 63 deletions

View File

@ -1,10 +1,11 @@
Format des fichiers de configuration
==========
_____
___________________
## config.yml
Ce fichier est au format YAML, et sa lecture est déjà géré par l'API Bukkit.
_____
___________________
## worldborder.txt
Ce fichier est au format texte. Chaque ligne correspond au paramètre de bordure pour un monde donné. Voici un format exemple que doit prendre une ligne :
@ -16,3 +17,11 @@ Ce fichier est au format texte. Chaque ligne correspond au paramètre de bordure
- `2000` correspond à la distance de chaque bordure par rapport aux coordonnées indiquées
Les lignes vides et les lignes dont le premier caractère est un `#` seront ignorés. Les caractères non imprimables en début et fin de lignes seront supprimés avant analyse.
___________________
## badwords.txt
Ce fichier est au format texte. Chaque ligne est une expression régulière correspondant à un élément censuré.
Les lignes vides seront ignorés (ou ne contenant que des caractères non imprimable). Lescaractères non imprimables en début et fin de ligne sont conservés

View File

@ -0,0 +1,24 @@
package net.mc_pandacraft.java.plugin.pandacraftutils.config;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
public class ChatBadWordsConfig extends AbstractConfig {
private final List<String> config;
public ChatBadWordsConfig() throws IOException {
super("badwords.txt", FileType.FILE);
config = getFileLines(true, false, false);
}
public List<String> getBadWords() {
return Collections.unmodifiableList(config);
}
}

View File

@ -53,6 +53,7 @@ public class ConfigManager {
public final DefaultConfig defaultConfig;
public final WorldBorderConfig worldBorderConfig;
public final ChatBadWordsConfig chatBadWordsConfig;
@ -67,6 +68,7 @@ public class ConfigManager {
defaultConfig = new DefaultConfig();
worldBorderConfig = new WorldBorderConfig();
chatBadWordsConfig = new ChatBadWordsConfig();
// dossier qui doit contenir les messages automatiques
@ -81,13 +83,8 @@ public class ConfigManager {
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();
initCommandAlias();
initAutomessages();
initMultiCommand();
@ -148,60 +145,6 @@ public class ConfigManager {
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
*/

View File

@ -254,7 +254,7 @@ public class ChatAnalysisManager implements Listener {
// pour chaque insultes présentes dans la configuration du plugin
for (String regex : ConfigManager.getInstance().ChatAnalysis_badWords)
for (String regex : ConfigManager.getInstance().chatBadWordsConfig.getBadWords())
{
if (s.matches("(?i:(.+[^a-zA-Z]|)"+regex+"(|[^a-zA-Z].+))"))
{