2017-03-20 18:44:53 +01:00
package net.Broken ;
2016-12-08 20:05:23 +01:00
2018-01-12 12:50:12 +01:00
import net.Broken.Commands.Move ;
import net.Broken.Commands.Music ;
2018-02-15 02:02:35 +01:00
import net.Broken.Tools.AntiSpam ;
2018-02-16 15:02:53 +01:00
import net.Broken.Tools.Command.CommandParser ;
2018-02-15 02:02:35 +01:00
import net.Broken.Tools.Moderateur ;
2017-12-12 23:29:49 +01:00
import net.dv8tion.jda.core.entities.ChannelType ;
import net.dv8tion.jda.core.entities.Guild ;
import net.dv8tion.jda.core.entities.Member ;
import net.dv8tion.jda.core.entities.TextChannel ;
2017-02-04 19:31:09 +01:00
import net.dv8tion.jda.core.events.ReadyEvent ;
2017-09-04 18:36:23 +02:00
import net.dv8tion.jda.core.events.guild.member.GuildMemberJoinEvent ;
2017-09-27 12:08:57 +02:00
import net.dv8tion.jda.core.events.guild.member.GuildMemberRoleRemoveEvent ;
2017-11-04 18:27:18 +01:00
import net.dv8tion.jda.core.events.guild.voice.GuildVoiceLeaveEvent ;
2016-12-08 20:05:23 +01:00
import net.dv8tion.jda.core.events.message.MessageReceivedEvent ;
import net.dv8tion.jda.core.hooks.ListenerAdapter ;
import net.dv8tion.jda.core.managers.GuildManager ;
2017-02-04 19:31:09 +01:00
import org.apache.logging.log4j.LogManager ;
import org.apache.logging.log4j.Logger ;
2017-12-01 15:02:35 +01:00
2016-12-08 20:05:23 +01:00
/ * *
* Created by seb65 on 19 / 10 / 2016 .
* /
public class BotListener extends ListenerAdapter {
2017-12-12 23:29:49 +01:00
private AntiSpam antispam = new AntiSpam ( ) ;
private Moderateur modo = new Moderateur ( ) ;
private Logger logger = LogManager . getLogger ( ) ;
2017-02-04 19:31:09 +01:00
@Override
public void onReady ( ReadyEvent event ) {
logger . info ( " Connection succees " ) ;
}
2017-09-27 12:08:57 +02:00
@Override
public void onGuildMemberJoin ( GuildMemberJoinEvent event ) {
logger . info ( event . getUser ( ) . getName ( ) + " join the guild, move it! " ) ;
2017-10-16 17:03:17 +02:00
new Move ( ) . exc ( event . getMember ( ) , event . getJDA ( ) . getRolesByName ( " Newbies " , true ) , false , event . getJDA ( ) . getGuilds ( ) . get ( 0 ) , event . getJDA ( ) . getGuilds ( ) . get ( 0 ) . getManager ( ) ) ;
TextChannel chanel = event . getGuild ( ) . getTextChannelsByName ( " accueil " , true ) . get ( 0 ) ;
chanel . sendMessage ( " Salut " + event . getUser ( ) . getAsMention ( ) + " ! Ecris ton nom, prénom, ta promotion et ton groupe ici! Un admin te donnera accées a ton groupe! " ) . complete ( ) ;
2017-09-27 12:08:57 +02:00
MainBot . roleFlag = false ;
}
@Override
public void onGuildMemberRoleRemove ( GuildMemberRoleRemoveEvent event ) {
logger . debug ( event . getUser ( ) . getName ( ) + " leave a role " ) ;
if ( ! MainBot . roleFlag ) {
if ( event . getMember ( ) . getRoles ( ) . size ( ) = = 0 ) {
logger . info ( event . getUser ( ) . getName ( ) + " have no roles, move it! " ) ;
2018-02-22 11:35:54 +01:00
new Move ( ) . exc ( event . getMember ( ) , event . getJDA ( ) . getRolesByName ( " Populace " , true ) , false , event . getJDA ( ) . getGuilds ( ) . get ( 0 ) , event . getJDA ( ) . getGuilds ( ) . get ( 0 ) . getManager ( ) ) ;
2017-09-27 12:08:57 +02:00
MainBot . roleFlag = false ;
}
}
else
{
logger . debug ( " ignore it " ) ;
MainBot . roleFlag = false ;
}
}
2017-02-04 19:31:09 +01:00
2017-11-06 16:22:15 +01:00
2017-11-04 18:27:18 +01:00
@Override
public void onGuildVoiceLeave ( GuildVoiceLeaveEvent event ) {
super . onGuildVoiceLeave ( event ) ;
2017-11-06 16:22:15 +01:00
if ( event . getGuild ( ) . getAudioManager ( ) . isConnected ( ) )
2017-11-04 18:27:18 +01:00
{
logger . debug ( " User disconnected from voice channel. " ) ;
2017-11-06 16:22:15 +01:00
if ( event . getGuild ( ) . getAudioManager ( ) . getConnectedChannel ( ) . getMembers ( ) . size ( ) = = 1 ) {
2017-11-04 18:27:18 +01:00
logger . debug ( " I'm alone, close audio connection. " ) ;
2017-11-06 16:22:15 +01:00
Music music = ( Music ) MainBot . commandes . get ( " music " ) ;
2018-02-22 11:35:54 +01:00
music . audio . stop ( ) ;
2017-11-04 18:27:18 +01:00
}
}
}
2016-12-08 20:05:23 +01:00
@Override
public void onMessageReceived ( MessageReceivedEvent event ) {
// ----------------------Test pour eviter eco de commande-------------------------
2017-03-20 21:01:49 +01:00
2017-09-27 12:08:57 +02:00
if ( event . getMessage ( ) . getContent ( ) . startsWith ( " // " ) & & ! event . getMessage ( ) . getAuthor ( ) . getId ( ) . equals ( event . getJDA ( ) . getSelfUser ( ) . getId ( ) ) ) {
//On a detecter que c'etait une commande
//System.out.println(event.getMessage().getContent());
2018-02-16 15:02:53 +01:00
MainBot . handleCommand ( new CommandParser ( ) . parse ( event . getMessage ( ) . getContent ( ) , event ) ) ;
2017-12-01 15:02:35 +01:00
2017-09-27 12:08:57 +02:00
}
else if ( ! event . getMessage ( ) . getAuthor ( ) . getId ( ) . equals ( event . getJDA ( ) . getSelfUser ( ) . getId ( ) ) )
{
if ( ! event . isFromType ( ChannelType . PRIVATE ) ) {
if ( ! event . getTextChannel ( ) . getName ( ) . equals ( " le_dongeon " ) ) {
Guild serveur = event . getGuild ( ) ;
2017-09-04 18:36:23 +02:00
GuildManager guildManager = serveur . getManager ( ) ;
Member user = event . getMember ( ) ;
2017-09-27 12:08:57 +02:00
// appel de la methode d'analyse de message de "Moderateur"
if ( ! event . getAuthor ( ) . getName ( ) . equals ( " Aethex " ) & & event . getMessage ( ) . getContent ( ) . length ( ) > 0 ) {
2017-09-04 18:36:23 +02:00
2017-09-27 12:08:57 +02:00
if ( modo . analyse ( user , serveur , guildManager , event ) = = 1 ) {
antispam . extermine ( user , serveur , guildManager , true , event ) ;
2017-03-20 21:01:49 +01:00
}
2017-09-27 12:08:57 +02:00
} else if ( event . getMessage ( ) . getContent ( ) . length ( ) = = 0 )
logger . error ( " Image detected, ignoring it. " ) ;
2016-12-08 20:05:23 +01:00
}
2017-09-27 12:08:57 +02:00
}
2017-03-20 21:01:49 +01:00
2016-12-08 20:05:23 +01:00
2017-09-04 18:36:23 +02:00
2017-09-27 12:08:57 +02:00
}
2016-12-08 20:05:23 +01:00
}
}