diff --git a/src/net/Broken/BotListener.java b/src/net/Broken/BotListener.java index b3ceda5..29c0262 100644 --- a/src/net/Broken/BotListener.java +++ b/src/net/Broken/BotListener.java @@ -43,10 +43,6 @@ public class BotListener extends ListenerAdapter { //On a detecter que c'etait une commande //System.out.println(event.getMessage().getContent()); MainBot.handleCommand(MainBot.parser.parse(event.getMessage().getContent(), event)); - logger.debug("ok"); - - - } else if (!event.getMessage().getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) { diff --git a/src/net/Broken/Commande.java b/src/net/Broken/Commande.java index 653e517..4c3c48d 100644 --- a/src/net/Broken/Commande.java +++ b/src/net/Broken/Commande.java @@ -11,6 +11,7 @@ public interface Commande { void action(String[] args, MessageReceivedEvent event); String help(String[] args); void executed(boolean success, MessageReceivedEvent event); + boolean isPrivateUsable(); } diff --git a/src/net/Broken/Commandes/Cat.java b/src/net/Broken/Commandes/Cat.java index 1f08a8d..7208d18 100644 --- a/src/net/Broken/Commandes/Cat.java +++ b/src/net/Broken/Commandes/Cat.java @@ -72,4 +72,9 @@ public class Cat implements Commande { public void executed(boolean success, MessageReceivedEvent event) { } + + @Override + public boolean isPrivateUsable() { + return false; + } } diff --git a/src/net/Broken/Commandes/Help.java b/src/net/Broken/Commandes/Help.java index 988ba2d..a979629 100644 --- a/src/net/Broken/Commandes/Help.java +++ b/src/net/Broken/Commandes/Help.java @@ -77,4 +77,9 @@ public class Help implements Commande { public void executed(boolean success, MessageReceivedEvent event) { } + + @Override + public boolean isPrivateUsable() { + return true; + } } diff --git a/src/net/Broken/Commandes/Move.java b/src/net/Broken/Commandes/Move.java index 2eedc8f..331c5d0 100644 --- a/src/net/Broken/Commandes/Move.java +++ b/src/net/Broken/Commandes/Move.java @@ -168,4 +168,8 @@ public class Move implements Commande { } + @Override + public boolean isPrivateUsable() { + return false; + } } diff --git a/src/net/Broken/Commandes/Over18/Ass.java b/src/net/Broken/Commandes/Over18/Ass.java index 64efbe3..f88e8cb 100644 --- a/src/net/Broken/Commandes/Over18/Ass.java +++ b/src/net/Broken/Commandes/Over18/Ass.java @@ -16,4 +16,9 @@ public class Ass extends NumberedCommande { public String toString() { return "Ass"; } + + @Override + public boolean isPrivateUsable() { + return false; + } } diff --git a/src/net/Broken/Commandes/Over18/Boobs.java b/src/net/Broken/Commandes/Over18/Boobs.java index e07b3b2..cc47a9b 100644 --- a/src/net/Broken/Commandes/Over18/Boobs.java +++ b/src/net/Broken/Commandes/Over18/Boobs.java @@ -15,4 +15,9 @@ public class Boobs extends NumberedCommande { public String toString() { return "Boobs"; } + + @Override + public boolean isPrivateUsable() { + return false; + } } diff --git a/src/net/Broken/Commandes/Over18/Madame.java b/src/net/Broken/Commandes/Over18/Madame.java index 6da2f3c..145dfb5 100644 --- a/src/net/Broken/Commandes/Over18/Madame.java +++ b/src/net/Broken/Commandes/Over18/Madame.java @@ -64,4 +64,9 @@ public class Madame implements Commande{ public void executed(boolean success, MessageReceivedEvent event) { } + + @Override + public boolean isPrivateUsable() { + return false; + } } diff --git a/src/net/Broken/Commandes/Over18/Pipe.java b/src/net/Broken/Commandes/Over18/Pipe.java index af8240c..bb84d2f 100644 --- a/src/net/Broken/Commandes/Over18/Pipe.java +++ b/src/net/Broken/Commandes/Over18/Pipe.java @@ -49,4 +49,9 @@ public class Pipe extends NumberedCommande { public String toString() { return "Pipe"; } + + @Override + public boolean isPrivateUsable() { + return false; + } } diff --git a/src/net/Broken/Commandes/Over18/SM.java b/src/net/Broken/Commandes/Over18/SM.java index 052d6e0..6c7f39c 100644 --- a/src/net/Broken/Commandes/Over18/SM.java +++ b/src/net/Broken/Commandes/Over18/SM.java @@ -51,4 +51,9 @@ public class SM implements Commande { public void executed(boolean success, MessageReceivedEvent event) { } + + @Override + public boolean isPrivateUsable() { + return false; + } } diff --git a/src/net/Broken/Commandes/PingCommande.java b/src/net/Broken/Commandes/PingCommande.java index aa3c892..5bd0d29 100644 --- a/src/net/Broken/Commandes/PingCommande.java +++ b/src/net/Broken/Commandes/PingCommande.java @@ -43,4 +43,9 @@ public class PingCommande implements Commande { return; } + + @Override + public boolean isPrivateUsable() { + return true; + } } diff --git a/src/net/Broken/Commandes/Spam.java b/src/net/Broken/Commandes/Spam.java index f1cee53..b8d445d 100644 --- a/src/net/Broken/Commandes/Spam.java +++ b/src/net/Broken/Commandes/Spam.java @@ -3,6 +3,7 @@ package net.Broken.Commandes; import net.Broken.Commande; import net.Broken.MainBot; import net.Broken.Outils.AntiSpam; +import net.Broken.Outils.UserSpamUtils; import net.dv8tion.jda.core.entities.Guild; import net.dv8tion.jda.core.entities.Member; import net.dv8tion.jda.core.entities.User; @@ -84,6 +85,11 @@ public class Spam implements Commande { } + @Override + public boolean isPrivateUsable() { + return false; + } + public void pardon(MessageReceivedEvent event, String[] args){ Guild serveur = event.getGuild(); @@ -119,30 +125,30 @@ public class Spam implements Commande { /**************************** * virif si en spammer * ****************************/ - if (MainBot.minuteurStatut.containsKey(user)) { - if (MainBot.minuteurStatut.get(user)) { - MainBot.minuteurStatut.put(user, false); + if (MainBot.spamUtils.containsKey(user.getUser())) { + if (MainBot.spamUtils.get(user.getUser()).isOnSpam()) { + MainBot.spamUtils.get(user.getUser()).setOnSpam(false); } else { logger.warn("Utilisateur pas en spam."); - event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:warning: **__Erreur__** :warning:\n:arrow_right: Utilisateur non spammeur. "); + event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:warning: **__Erreur__** :warning:\n:arrow_right: Utilisateur non spammeur. ").queue(); } } else { logger.warn("Utilisateur pas en spam."); - event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:warning: **__Erreur__** :warning:\n:arrow_right: Utilisateur non spammeur. "); + event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:warning: **__Erreur__** :warning:\n:arrow_right: Utilisateur non spammeur. ").queue(); } } else { logger.warn("Autorisation insuffisante, pardon refusé"); - event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:no_entry_sign: **__Vous n'avez pas l'autorisation de faire sa!__** :no_entry_sign: "); + event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:no_entry_sign: **__Vous n'avez pas l'autorisation de faire sa!__** :no_entry_sign: ").queue(); } } } else { logger.warn("Argument manquant."); - event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n:warning: **__Argument manquant__**:warning: \n:arrow_right: Utilisation: `//spam pardon <@utilisateur>`."); + event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n:warning: **__Argument manquant__**:warning: \n:arrow_right: Utilisation: `//spam pardon <@utilisateur>`.").queue(); } @@ -187,9 +193,9 @@ public class Spam implements Commande { /**************************** * virif pas deja en spammer * ****************************/ - if(MainBot.minuteurStatut.containsKey(user)) + if(MainBot.spamUtils.containsKey(user.getUser())) { - if(!MainBot.minuteurStatut.get(user)) + if(!MainBot.spamUtils.get(user.getUser()).isOnSpam()) { this.goSpam(user,multiStr,serveur,event); } @@ -258,10 +264,10 @@ public class Spam implements Commande { /**************************** * verif utilisteur trouver * ****************************/ - if (MainBot.userMulti.containsKey(user)) { + if (MainBot.spamUtils.containsKey(user.getUser())) { logger.info("Reset du multiplicateur de " + user.getEffectiveName() + " réussi"); event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n *Le multiplcicateur de " + user.getEffectiveName() + " a été remit a zéro.*").queue(); - MainBot.userMulti.remove(user); + MainBot.spamUtils.remove(user.getUser()); } } else { @@ -282,7 +288,7 @@ public class Spam implements Commande { if (args[0].equals("all")) { logger.info("Reset automatique des multiplicateur."); - for (Member unUser: MainBot.userMulti.keySet() ) //=for(int i=0; i commandes = new HashMap<>(); public static boolean okInit=false; - public static HashMap historique =new HashMap<>(); - public static HashMap message_compteur =new HashMap<>(); + public static HashMap historique =new HashMap<>(); + public static HashMap message_compteur =new HashMap<>(); - public static Hashtable userMulti = new Hashtable(); - public static Hashtable minuteurStatut = new Hashtable<>(); + public static HashMap spamUtils = new HashMap<>(); public static ArrayList> privateUsableCommand = new ArrayList<>(); @@ -98,6 +99,7 @@ public class MainBot { commandes.put("sm",new SM()); commandes.put("madame",new Madame()); commandes.put("cat",new Cat()); + commandes.put("spaminfo",new SpamInfo()); privateUsableCommand.add(Help.class); privateUsableCommand.add(PingCommande.class); @@ -135,8 +137,6 @@ public class MainBot { dayListener.start(); logger.info("-----------------FIN INITIALISATION-----------------"); - /*List userAction = serveur.getUsersByName("Broken_Fire"); - new Move().exc(userAction.get(0),"Big Daddy",true,serveur,serveur.getManager());*/ jda.getPresence().setGame(Game.of("Statut: Ok!")); } @@ -152,8 +152,7 @@ public class MainBot { if (commandes.containsKey(cmd.commande)) { - logger.debug("ok"); - if(cmd.event.isFromType(ChannelType.PRIVATE) && privateUsableCommand.contains(commandes.get(cmd.commande).getClass())) + if(cmd.event.isFromType(ChannelType.PRIVATE) && commandes.get(cmd.commande).isPrivateUsable()) { commandes.get(cmd.commande).action(cmd.args, cmd.event); @@ -165,7 +164,7 @@ public class MainBot { commandes.get(cmd.commande).executed(true, cmd.event); } else - cmd.event.getPrivateChannel().sendMessage("\n:warning: **__Commande non disponible en priver!__** :warning:").queue(); + cmd.event.getPrivateChannel().sendMessage("\n:warning: **__Commande non disponible en privé!__** :warning:").queue(); } @@ -203,7 +202,7 @@ public class MainBot { e.printStackTrace(); } //System.out.println("\n5sec Ecoulées !"); - for (Member unUser: message_compteur.keySet() ) //=for(int i=0; i spm = serveur.getRolesByName("Spammer", false); move.exc(user, spm.get(0), true, serveur, serveurManger); - Thread minuteur =new Minuteur(MainBot.userMulti.get(user), move.user, move.saveRoleUser, move.serveur, move.serveurManager,event); - minuteur.start(); + MainBot.spamUtils.get(user.getUser()).setMinuteur(new Minuteur(MainBot.spamUtils.get(user.getUser()).getMultip(), move.user, move.saveRoleUser, move.serveur, move.serveurManager,event)); + MainBot.spamUtils.get(user.getUser()).launchMinuteur(); } } @@ -86,6 +86,7 @@ public class AntiSpam { public GuildManager serveurManager; public int multip; public MessageReceivedEvent event; + public int timeLeft; public Minuteur(int multip, Member user, List saveRoleUser, Guild serveur, GuildManager serveurManager, MessageReceivedEvent event ) @@ -97,30 +98,30 @@ public class AntiSpam { this.serveurManager=serveurManager; this.event=event; this.chanel=event.getTextChannel(); + this.timeLeft = 60*multip; } @Override public void run() { - int cSeg=0; logger.info("["+user.getEffectiveName()+"] Démarage pour "+multip+"min"); - while (MainBot.minuteurStatut.get(user)) + while (MainBot.spamUtils.get(user.getUser()).isOnSpam()) { try { sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } - if(cSeg>60*multip) + if(timeLeft<=0) { - MainBot.minuteurStatut.replace(user,false); + MainBot.spamUtils.get(user.getUser()).setOnSpam(false); } - cSeg++; + timeLeft--; } logger.info("["+user.getEffectiveName()+"] Fin de spam pour "+user.getEffectiveName()+" apres "+multip+"min."); move.exc(user, saveRoleUser.get(0), true, serveur, serveurManager); //aSaveroleUser=saveRoleUser.get(i) logger.info("["+user.getEffectiveName()+"] Fin des "+multip+"min"); - chanel.sendMessage(user.getAsMention()+"\n```markdown\n#-----------------SPAM DETECTEUR----------------#\n# #\n# Un spammeur est de retour, fais gaffe! #\n# Je te surveille! #\n# #\n#-----------------------------------------------#```\n http://67.media.tumblr.com/tumblr_lvrf58vBkL1qibz0jo1_r1_500.png").queue(); + chanel.sendMessage(user.getAsMention()+"\n```markdown\n#-----------------SPAM DETECTEUR----------------#\n# #\n# Un spammeur est de retour, fais gaffe! #\n# Je te surveille! #\n# #\n#-----------------------------------------------#```").queue(); // #-----------------------------------------------# diff --git a/src/net/Broken/Outils/Moderateur.java b/src/net/Broken/Outils/Moderateur.java index 5a34d15..b3411bb 100644 --- a/src/net/Broken/Outils/Moderateur.java +++ b/src/net/Broken/Outils/Moderateur.java @@ -47,7 +47,7 @@ public class Moderateur { * Ajout dernier message recu + dans histo' * ********************************************/ toi[0] = event.getMessage().getContent();// On stocke en position [0] le nouveau message - MainBot.historique.put(user, toi);// On ajoute dans l'historique TOI + MainBot.historique.put(user.getUser(), toi);// On ajoute dans l'historique TOI /***************************** * ANALYSE des messages * @@ -64,7 +64,7 @@ public class Moderateur { toi[1] = ""; toi[2] = ""; toi[3] = ""; - MainBot.historique.put(user, toi); + MainBot.historique.put(user.getUser(), toi); } } else { @@ -77,7 +77,7 @@ public class Moderateur { toi[1] = ""; toi[2] = ""; toi[3] = ""; - MainBot.historique.put(user, toi); + MainBot.historique.put(user.getUser(), toi); } /********************************** * AFFICHAGE DE HISTORIQUE * @@ -89,24 +89,24 @@ public class Moderateur { /******************************************** * Comptage du nombre de message * ********************************************/ - if(MainBot.message_compteur.containsKey(user))// Si le user a deja posté un message + if(MainBot.message_compteur.containsKey(user.getUser()))// Si le user a deja posté un message { - int cpt = MainBot.message_compteur.get(user); + int cpt = MainBot.message_compteur.get(user.getUser()); cpt++; //System.out.println("compteur : "+cpt); - MainBot.message_compteur.put(user, cpt); + MainBot.message_compteur.put(user.getUser(), cpt); if(cpt > 5){ - MainBot.message_compteur.put(user,0); + MainBot.message_compteur.put(user.getUser(),0); spam = 1; logger.info("Detection de spam pour "+user.getEffectiveName()+"avec 5 message en 5seg: "); - String[] histo = MainBot.historique.get(user); + String[] histo = MainBot.historique.get(user.getUser()); for (String unMessage:histo ) //=for(int i=0; i