Update to JDA 3.3 + some bug fixes

This commit is contained in:
Unknown 2017-09-04 18:36:23 +02:00
parent 2f9df529d6
commit e5641d73aa
14 changed files with 87 additions and 74 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -6,7 +6,10 @@ import net.dv8tion.jda.core.entities.ChannelType;
import net.dv8tion.jda.core.entities.Guild; import net.dv8tion.jda.core.entities.Guild;
import net.dv8tion.jda.core.entities.Member; import net.dv8tion.jda.core.entities.Member;
import net.dv8tion.jda.core.events.ReadyEvent; import net.dv8tion.jda.core.events.ReadyEvent;
import net.dv8tion.jda.core.events.guild.member.GuildMemberJoinEvent;
import net.dv8tion.jda.core.events.guild.voice.GuildVoiceJoinEvent;
import net.dv8tion.jda.core.events.message.MessageReceivedEvent; import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
import net.dv8tion.jda.core.events.message.priv.PrivateMessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter; import net.dv8tion.jda.core.hooks.ListenerAdapter;
import net.dv8tion.jda.core.managers.GuildManager; import net.dv8tion.jda.core.managers.GuildManager;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
@ -33,51 +36,54 @@ public class BotListener extends ListenerAdapter {
@Override @Override
public void onMessageReceived(MessageReceivedEvent event) { public void onMessageReceived(MessageReceivedEvent event) {
// ----------------------Test pour eviter eco de commande------------------------- // ----------------------Test pour eviter eco de commande-------------------------
try // try
{ // {
if (event.getMessage().getContent().startsWith("//") && event.getMessage().getAuthor().getId() != event.getJDA().getSelfUser().getId()) { if (event.getMessage().getContent().startsWith("//") && !event.getMessage().getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) {
//On a detecter que c'etait une commande //On a detecter que c'etait une commande
//System.out.println(event.getMessage().getContent()); //System.out.println(event.getMessage().getContent());
MainBot.handleCommand(MainBot.parser.parse(event.getMessage().getContent(), event)); MainBot.handleCommand(MainBot.parser.parse(event.getMessage().getContent(), event));
logger.debug("ok");
} }
else if (event.getMessage().getAuthor().getId() != event.getJDA().getSelfUser().getId() && !event.getTextChannel().getName().equals("le_dongeon")) else if (!event.getMessage().getAuthor().getId().equals(event.getJDA().getSelfUser().getId()))
{ {
//N'est pas une commande
Guild serveur=event.getGuild(); if(!event.getTextChannel().getName().equals("le_dongeon"))
GuildManager guildManager = serveur.getManager();
Member user = event.getMember();
if(!event.isFromType(ChannelType.PRIVATE))
{ {
// appel de la methode d'analyse de message de "Moderateur" Guild serveur=event.getGuild();
if(!event.getAuthor().getName().equals("Aethex") && event.getMessage().getContent().length()>0) { GuildManager guildManager = serveur.getManager();
Member user = event.getMember();
if (modo.analyse(user, serveur, guildManager, event) == 1) { if(!event.isFromType(ChannelType.PRIVATE))
antispam.extermine(user, serveur, guildManager,true, event); {
// appel de la methode d'analyse de message de "Moderateur"
if(!event.getAuthor().getName().equals("Aethex") && event.getMessage().getContent().length()>0) {
if (modo.analyse(user, serveur, guildManager, event) == 1) {
antispam.extermine(user, serveur, guildManager,true, event);
}
} }
else if(event.getMessage().getContent().length() == 0)
logger.error("Image detected, ignoring it.");
} }
else if(event.getMessage().getContent().length() == 0)
logger.error("Image detected, ignoring it.");
} }
} }
}catch (Exception e) // }catch (Exception e)
{ // {
if (e.getMessage()==null) { // if (e.getMessage()==null) {
logger.error("NullPointerException"); // logger.error("NullPointerException");
} else { // } else {
logger.error(e.getMessage()); // logger.error(e.getMessage());
} // }
} // }
} }
} }

View File

@ -2,7 +2,10 @@ package net.Broken.Commandes;
import net.Broken.Commande; import net.Broken.Commande;
import net.Broken.MainBot; import net.Broken.MainBot;
import net.Broken.Outils.PrivateMessage;
import net.dv8tion.jda.core.entities.ChannelType;
import net.dv8tion.jda.core.events.message.MessageReceivedEvent; import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
import net.dv8tion.jda.core.exceptions.RateLimitedException;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -26,14 +29,22 @@ public class Help implements Commande {
//System.out.println(argsString); //System.out.println(argsString);
if (MainBot.commandes.containsKey(argsString)) if (MainBot.commandes.containsKey(argsString))
{ {
logger.info("Aide demmander pour la cmd "+argsString+" par "+event.getMember().getEffectiveName()); logger.info("Aide demmander pour la cmd "+argsString+" par "+event.getAuthor().getName());
event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n\n"+MainBot.commandes.get(argsString).help(args)).queue(); if(!event.isFromType(ChannelType.PRIVATE))
event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n\n"+MainBot.commandes.get(argsString).help(args)).queue();
else{
PrivateMessage.send(event.getAuthor(), MainBot.commandes.get(argsString).help(args),logger);
}
} }
else else
{ {
event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n:warning: **__Commande Inconue!__** :warning:").queue(); if(!event.isFromType(ChannelType.PRIVATE))
event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n:warning: **__Commande Inconue!__** :warning:").queue();
else{
PrivateMessage.send(event.getAuthor(),":warning: **__Commande Inconue!__** :warning:",logger);
}
logger.info("Commande Inconnue!"); logger.info("Commande Inconnue!");
} }
} }
@ -44,8 +55,10 @@ public class Help implements Commande {
txt=txt+"\n//"+e.getKey(); txt=txt+"\n//"+e.getKey();
} }
event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n:arrow_right:\t**__commandes envoyées par message privé__**").queue(); if(!event.isFromType(ChannelType.PRIVATE))
event.getAuthor().getPrivateChannel().sendMessage("Commandes du bot:\n\n```"+txt+"```\n\nUtilise `//help <commande>` pour plus de détails.").queue(); event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n:arrow_right:\t**__commandes envoyées par message privé__**").queue();
PrivateMessage.send(event.getAuthor(),"Commandes du bot:\n\n```"+txt+"```\n\nUtilise `//help <commande>` pour plus de détails.",logger);

View File

@ -130,7 +130,7 @@ public abstract class NumberedCommande implements Commande{
@Override @Override
public String help(String[] args) { public String help(String[] args) {
return"`//"+this.toString().toLowerCase() +"update\n:arrow_right: *Rafraichi la liste des images.*\n`//"+this.toString().toLowerCase()+" get <numero>`\n:arrow_right: *Affiche l'image portant le numero donné*"; return"`//"+this.toString().toLowerCase() +" update`\n:arrow_right: *Rafraichi la liste des images.*\n`//"+this.toString().toLowerCase()+" get <numero>`\n:arrow_right: *Affiche l'image portant le numero donné*";
} }
@Override @Override

View File

@ -24,12 +24,13 @@ public class SM implements Commande {
Redirection redirect= new Redirection(); Redirection redirect= new Redirection();
if(event.getTextChannel().getName().equals("nsfw-over18")) if(event.getTextChannel().getName().equals("nsfw-over18"))
{ {
try { event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:warning: SM n'est plus disponible pour le moment. Pour plus d'info: https://lc.cx/cbSw :warning: ").queue();
event.getTextChannel().sendMessage(redirect.get("https://bonjourfetish.tumblr.com/random")).queue(); // try {
} catch (IOException e) { // event.getTextChannel().sendMessage(redirect.get("https://bonjourfetish.tumblr.com/random")).queue();
logger.warn("Erreur de redirection."); // } catch (IOException e) {
event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:warning: **__Erreur de redirection (5 essais), Réessayez__**:warning: ").queue(); // logger.warn("Erreur de redirection.");
} // event.getTextChannel().sendMessage(event.getAuthor().getAsMention() + "\n:warning: **__Erreur de redirection (5 essais), Réessayez__**:warning: ").queue();
// }
} }
else else
{ {

View File

@ -28,7 +28,7 @@ public class PingCommande implements Commande {
event.getPrivateChannel().sendMessage(":arrow_right: Pong! `"+((Timestamp.from(Instant.now()).getTime()-receivedTime))+"ms`").queue(); event.getPrivateChannel().sendMessage(":arrow_right: Pong! `"+((Timestamp.from(Instant.now()).getTime()-receivedTime))+"ms`").queue();
else else
event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n:arrow_right: Pong! `"+((Timestamp.from(Instant.now()).getTime()-receivedTime))+"ms`").queue(); event.getTextChannel().sendMessage(event.getAuthor().getAsMention()+"\n:arrow_right: Pong! `"+((Timestamp.from(Instant.now()).getTime()-receivedTime))+"ms`").queue();
LogManager.getLogger().info("pong"); LogManager.getLogger().debug("pong");
} }
@Override @Override

View File

@ -41,14 +41,11 @@ public class MainBot {
static Logger logger = LogManager.getLogger(); static Logger logger = LogManager.getLogger();
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
// FindContentOnWebPage.doYourJob("http://les400culs.com/2347-2/","featured-img","img");
logger.trace("trace"); logger.trace("trace");
logger.debug("debug"); logger.debug("debug");
logger.info("info"); logger.info("info");
logger.warn("warn"); logger.warn("warn");
logger.error("error"); logger.error("error");
Stop stopTh=new Stop();
stopTh.start();
/**************************** /****************************
* Initialisation * * Initialisation *
****************************/ ****************************/
@ -66,11 +63,9 @@ public class MainBot {
logger.info("Connection au serveur..."); logger.info("Connection au serveur...");
//connection au bot //connection au bot
jda = new JDABuilder(AccountType.BOT).addListener(new BotListener()).setToken(args[0]).setBulkDeleteSplittingEnabled(false).buildBlocking(); jda = new JDABuilder(AccountType.BOT).addEventListener(new BotListener()).setToken(args[0]).setBulkDeleteSplittingEnabled(false).buildBlocking();
jda.setAutoReconnect(true); jda.setAutoReconnect(true);
jda.addEventListener(); jda.addEventListener();
jda.addEventListener();
okInit=true; okInit=true;
} }
@ -154,10 +149,13 @@ public class MainBot {
public static void handleCommand(CommandParser.CommandContainer cmd) public static void handleCommand(CommandParser.CommandContainer cmd)
{ {
//On verifie que la commande existe //On verifie que la commande existe
if (commandes.containsKey(cmd.commande)) 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) && privateUsableCommand.contains(commandes.get(cmd.commande).getClass()))
{ {
commandes.get(cmd.commande).action(cmd.args, cmd.event); commandes.get(cmd.commande).action(cmd.args, cmd.event);
commandes.get(cmd.commande).executed(true, cmd.event); commandes.get(cmd.commande).executed(true, cmd.event);
} }
@ -214,33 +212,4 @@ public class MainBot {
} }
} }
public static class Stop extends Thread
{
@Override
public void run() {
Scanner scanner = new Scanner(System.in);
String txtEntré = "";
while(!txtEntré.equals("o")&&!txtEntré.equals("O"))
{
while (!txtEntré.equals("stop"))
{
txtEntré = scanner.nextLine();
}
logger.warn("Etes-vous sur de vouloir arréter le Bot? (o/n)");
txtEntré = scanner.nextLine();
if(txtEntré.equals("n")||txtEntré.equals("N"))
{
logger.info("Arret du Bot annulé.");
}
}
Runtime.getRuntime().exit(0);
}
}
} }

View File

@ -31,7 +31,9 @@ public class CommandParser {
} }
logger.info("Auteur: "+e.getMember().getEffectiveName()+", Commande: "+commande+", args: "+ Arrays.toString(args));
logger.info("Auteur: "+e.getAuthor().getName()+", Commande: "+commande+", args: "+ Arrays.toString(args));
return new CommandContainer(brut, sansTete, splitSansTete, commande, args, e); //On Save toute les info dans le container return new CommandContainer(brut, sansTete, splitSansTete, commande, args, e); //On Save toute les info dans le container
} }

View File

@ -0,0 +1,22 @@
package net.Broken.Outils;
import net.dv8tion.jda.core.entities.PrivateChannel;
import net.dv8tion.jda.core.entities.User;
import net.dv8tion.jda.core.exceptions.RateLimitedException;
import org.apache.logging.log4j.Logger;
/**
* Created by seb65 on 04/09/2017.
*/
public class PrivateMessage {
public static void send(User user, String message, Logger logger){
if(!user.hasPrivateChannel()){
logger.debug("Create Private Chanel");
user.openPrivateChannel().complete();
}
user.getJDA().getPrivateChannels().get(0).sendMessage(message).queue();
}
}