From bc4c8245c4fe89c058e6a64887af6dbb5e831071 Mon Sep 17 00:00:00 2001 From: Sebastien Date: Wed, 6 Jun 2018 15:51:59 +0200 Subject: [PATCH] Add Daily Madame on preference --- .../java/net/Broken/Commands/Preference.java | 17 ++++ .../DB/Entity/GuildPreferenceEntity.java | 16 +++- src/main/java/net/Broken/Init.java | 11 +-- .../DayListener/Listeners/DailyMadame.java | 82 +++++++++++-------- .../net/Broken/Tools/EmbedMessageUtils.java | 4 +- 5 files changed, 86 insertions(+), 44 deletions(-) diff --git a/src/main/java/net/Broken/Commands/Preference.java b/src/main/java/net/Broken/Commands/Preference.java index 094005c..18559fd 100644 --- a/src/main/java/net/Broken/Commands/Preference.java +++ b/src/main/java/net/Broken/Commands/Preference.java @@ -209,6 +209,23 @@ public class Preference implements Commande { Message sended = event.getTextChannel().sendMessage(EmbedMessageUtils.buildStandar(eb)).complete(); new MessageTimeOut(MainBot.messageTimeOut, sended, event.getMessage()).start(); break; + + case "daily_madame": + value = value.replaceAll(" ", ""); + if(value.toLowerCase().equals("true") || value.toLowerCase().equals("false")){ + boolean result = Boolean.parseBoolean(value); + pref.setDailyMadame(result); + pref = guildPreferenceRepository.save(pref); + EmbedBuilder ebd = new EmbedBuilder().addField(":ok: Ok :ok:","",false).addField("> Daily Madame", "Activate daily madame message\n```java\n" + String.valueOf(value) + "```", false).setColor(Color.green); + Message sendedm = event.getTextChannel().sendMessage(EmbedMessageUtils.buildStandar(ebd)).complete(); + new MessageTimeOut(MainBot.messageTimeOut, sendedm, event.getMessage()).start(); + }else{ + MessageEmbed msg = EmbedMessageUtils.buildStandar(EmbedMessageUtils.getError("\nWrong value, expect `true` or `false`\n\nMore info with `//help preference`")); + Message sendedm = event.getTextChannel().sendMessage(msg).complete(); + new MessageTimeOut(MainBot.messageTimeOut, sendedm, event.getMessage()).start(); + } + break; + default: MessageEmbed msg2 = EmbedMessageUtils.buildStandar(EmbedMessageUtils.getError("\nUnknown id.\n\nUse `//preference` to see list")); Message sended2 = event.getTextChannel().sendMessage(msg2).complete(); diff --git a/src/main/java/net/Broken/DB/Entity/GuildPreferenceEntity.java b/src/main/java/net/Broken/DB/Entity/GuildPreferenceEntity.java index 9271db2..e879f47 100644 --- a/src/main/java/net/Broken/DB/Entity/GuildPreferenceEntity.java +++ b/src/main/java/net/Broken/DB/Entity/GuildPreferenceEntity.java @@ -27,8 +27,11 @@ public class GuildPreferenceEntity { private String defaultRoleId; + private boolean dailyMadame; - public GuildPreferenceEntity(String guildId, boolean antiSpam, boolean welcome, String welcomeMessage, String welcomeChanelID, boolean defaultRole, String defaultRoleId) { + + + public GuildPreferenceEntity(String guildId, boolean antiSpam, boolean welcome, String welcomeMessage, String welcomeChanelID, boolean defaultRole, String defaultRoleId, boolean dailyMadame) { this.guildId = guildId; this.antiSpam = antiSpam; this.welcome = welcome; @@ -36,13 +39,14 @@ public class GuildPreferenceEntity { this.welcomeChanelID = welcomeChanelID; this.defaultRole = defaultRole; this.defaultRoleId = defaultRoleId; + this.dailyMadame = dailyMadame; } public GuildPreferenceEntity(){} public static GuildPreferenceEntity getDefault(Guild guild){ - return new GuildPreferenceEntity(guild.getId(), false, false, "Welcome to this awesome server @name! ", " ", false, " "); + return new GuildPreferenceEntity(guild.getId(), false, false, "Welcome to this awesome server @name! ", " ", false, " ", true); } public Integer getId() { @@ -108,4 +112,12 @@ public class GuildPreferenceEntity { public void setDefaultRole(boolean defaultRole) { this.defaultRole = defaultRole; } + + public boolean isDailyMadame() { + return dailyMadame; + } + + public void setDailyMadame(boolean dailyMadame) { + this.dailyMadame = dailyMadame; + } } diff --git a/src/main/java/net/Broken/Init.java b/src/main/java/net/Broken/Init.java index 1384ae9..b0014b4 100644 --- a/src/main/java/net/Broken/Init.java +++ b/src/main/java/net/Broken/Init.java @@ -91,13 +91,6 @@ public class Init { - - DayListener dayListener = DayListener.getInstance(); - dayListener.addListener(new ResetSpam()); - dayListener.addListener(new DailyMadame()); - dayListener.start(); - - logger.debug("-----------------FIN INITIALISATION-----------------"); @@ -115,6 +108,10 @@ public class Init { static void polish(JDA jda){ CommandLoader.load(); ApiCommandLoader.load(); + DayListener dayListener = DayListener.getInstance(); + dayListener.addListener(new ResetSpam()); + dayListener.addListener(new DailyMadame()); + dayListener.start(); jda.addEventListener(new BotListener()); jda.getPresence().setPresence(OnlineStatus.ONLINE, Game.playing("bot.seb6596.ovh")); diff --git a/src/main/java/net/Broken/Tools/DayListener/Listeners/DailyMadame.java b/src/main/java/net/Broken/Tools/DayListener/Listeners/DailyMadame.java index 43c6cf8..a77f446 100644 --- a/src/main/java/net/Broken/Tools/DayListener/Listeners/DailyMadame.java +++ b/src/main/java/net/Broken/Tools/DayListener/Listeners/DailyMadame.java @@ -1,13 +1,16 @@ package net.Broken.Tools.DayListener.Listeners; import net.Broken.Commands.Over18.Madame; +import net.Broken.DB.Repository.GuildPreferenceRepository; import net.Broken.MainBot; +import net.Broken.SpringContext; import net.Broken.Tools.DayListener.NewDayListener; import net.Broken.Tools.Redirection; import net.dv8tion.jda.core.entities.Guild; import net.dv8tion.jda.core.entities.TextChannel; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.springframework.context.ApplicationContext; import java.io.IOException; import java.util.List; @@ -16,6 +19,14 @@ import java.util.List; * Daily Listener for DailyMadame */ public class DailyMadame implements NewDayListener{ + + private GuildPreferenceRepository guildPreferenceRepository; + + public DailyMadame() { + ApplicationContext context = SpringContext.getAppContext(); + guildPreferenceRepository = (GuildPreferenceRepository) context.getBean("guildPreferenceRepository"); + } + private Logger logger = LogManager.getLogger(); @Override public void onNewDay() { @@ -29,44 +40,47 @@ public class DailyMadame implements NewDayListener{ boolean error=false; int errorCp=0; logger.debug(guild.getName()); - for(TextChannel iterator : guild.getTextChannels()) - { - if(iterator.isNSFW()){ - chanel = iterator; - logger.debug("break: " + chanel.getName()); - break; - } - } - if(chanel != null){ - while(!success && !error) + if(guildPreferenceRepository.findByGuildId(guild.getId()).get(0).isDailyMadame()){ + for(TextChannel iterator : guild.getTextChannels()) { - try { - - String url = redirect.get("http://dites.bonjourmadame.fr/random"); - logger.debug("URL: "+url); - if(Madame.scanPageForTipeee(url, logger)){ - logger.debug("Advertisement detected! Retry! ("+url+")"); - } - else{ - chanel.sendMessage("Le Daily Madame mes petits cochons :kissing_heart:\n" + url).queue(); - success=true; - } - } catch (IOException e) { - errorCp++; - logger.warn("Erreur de redirection. (Essais n°"+errorCp+")"); - if(errorCp>5) - { - logger.error("5 Erreur de redirection."); - error=true; - - } - + if(iterator.isNSFW()){ + chanel = iterator; + logger.debug("break: " + chanel.getName()); + break; } } + if(chanel != null){ + while(!success && !error) + { + try { + + String url = redirect.get("http://dites.bonjourmadame.fr/random"); + logger.debug("URL: "+url); + if(Madame.scanPageForTipeee(url, logger)){ + logger.debug("Advertisement detected! Retry! ("+url+")"); + } + else{ + chanel.sendMessage("Le Daily Madame mes petits cochons :kissing_heart:\n" + url).queue(); + success=true; + } + } catch (IOException e) { + errorCp++; + logger.warn("Erreur de redirection. (Essais n°"+errorCp+")"); + if(errorCp>5) + { + logger.error("5 Erreur de redirection."); + error=true; + + } + + } + } + } + else { + logger.info("No NSFW chanel found for " + guild.getName() + ", ignoring it!"); + } } - else { - logger.info("No NSFW chanel found for " + guild.getName() + ", ignoring it!"); - } + } diff --git a/src/main/java/net/Broken/Tools/EmbedMessageUtils.java b/src/main/java/net/Broken/Tools/EmbedMessageUtils.java index 98b2591..d5e0938 100644 --- a/src/main/java/net/Broken/Tools/EmbedMessageUtils.java +++ b/src/main/java/net/Broken/Tools/EmbedMessageUtils.java @@ -117,7 +117,9 @@ public class EmbedMessageUtils { .addField("> Default Role ID", "Role id for auto move\n```java\n" + guildPref.getDefaultRoleId() + "```Edit: :unlock:\nKey: default_role_id", false) .addField("> Welcome", "Activate welcome message\n```java\n" + String.valueOf(guildPref.isWelcome()) + "```Edit: :unlock:\nKey: welcome", false) .addField("> Welcome chanel ID", "Chane id for welcome message\n```" + guildPref.getWelcomeChanelID() + "```Edit: :unlock:\nKey: welcome_chanel_id", false) - .addField("> Welcome message", "Welcome message (@name for mention)\n```markdown\n" + guildPref.getWelcomeMessage() + "```Edit: :unlock:\nKey: welcome_message", false); + .addField("> Welcome message", "Welcome message (@name for mention)\n```markdown\n" + guildPref.getWelcomeMessage() + "```Edit: :unlock:\nKey: welcome_message", false) + .addField("> Daily Madame", "Activate daily madame message\n```java\n" + String.valueOf(guildPref.isWelcome()) + "```Edit: :unlock:\nKey: daily_madame", false); + return buildStandar(messageB); }