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 Format des fichiers de configuration
========== ==========
_____ ___________________
## config.yml ## config.yml
Ce fichier est au format YAML, et sa lecture est déjà géré par l'API Bukkit. Ce fichier est au format YAML, et sa lecture est déjà géré par l'API Bukkit.
_____
___________________
## worldborder.txt ## 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 : 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 :
@ -15,4 +16,12 @@ Ce fichier est au format texte. Chaque ligne correspond au paramètre de bordure
- `14` et `134.5` correspondent aux coordonnées x et z du centre du carré de bordure - `14` et `134.5` correspondent aux coordonnées x et z du centre du carré de bordure
- `2000` correspond à la distance de chaque bordure par rapport aux coordonnées indiquées - `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. 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 DefaultConfig defaultConfig;
public final WorldBorderConfig worldBorderConfig; public final WorldBorderConfig worldBorderConfig;
public final ChatBadWordsConfig chatBadWordsConfig;
@ -67,6 +68,7 @@ public class ConfigManager {
defaultConfig = new DefaultConfig(); defaultConfig = new DefaultConfig();
worldBorderConfig = new WorldBorderConfig(); worldBorderConfig = new WorldBorderConfig();
chatBadWordsConfig = new ChatBadWordsConfig();
// dossier qui doit contenir les messages automatiques // dossier qui doit contenir les messages automatiques
@ -81,13 +83,8 @@ public class ConfigManager {
File multiCommandsDir = new File(configDir, "multicommands"); File multiCommandsDir = new File(configDir, "multicommands");
multiCommandsDir.mkdir(); multiCommandsDir.mkdir();
// fichier qui doit contenir les insultes à censurer
File badWordsFile = new File(configDir, "badwords.txt");
badWordsFile.createNewFile();
initChatAnalysisBadWord();
initCommandAlias(); initCommandAlias();
initAutomessages(); initAutomessages();
initMultiCommand(); 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 * 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 // 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].+))")) if (s.matches("(?i:(.+[^a-zA-Z]|)"+regex+"(|[^a-zA-Z].+))"))
{ {