From 2d8cc5d6d588dbfad3d1419f9fda7c778d1f4bb9 Mon Sep 17 00:00:00 2001 From: Alexandre64 Date: Tue, 1 Dec 2020 23:28:44 +0100 Subject: [PATCH] Added new command for channels review --- .../net/Broken/Commands/ChannelsReview.java | 50 +++++++++++++++++++ .../net/Broken/Tools/EmbedMessageUtils.java | 5 ++ .../resources/Help/ChannelsReview/en/main.md | 2 + .../resources/Help/ChannelsReview/fr/main.md | 3 ++ 4 files changed, 60 insertions(+) create mode 100644 src/main/java/net/Broken/Commands/ChannelsReview.java create mode 100644 src/main/resources/Help/ChannelsReview/en/main.md create mode 100644 src/main/resources/Help/ChannelsReview/fr/main.md diff --git a/src/main/java/net/Broken/Commands/ChannelsReview.java b/src/main/java/net/Broken/Commands/ChannelsReview.java new file mode 100644 index 0000000..00d172d --- /dev/null +++ b/src/main/java/net/Broken/Commands/ChannelsReview.java @@ -0,0 +1,50 @@ +package net.Broken.Commands; + +import net.Broken.Commande; +import net.Broken.Tools.EmbedMessageUtils; +import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; + +import java.time.format.DateTimeFormatter; + +public class ChannelsReview implements Commande { + @Override + public void action(String[] args, MessageReceivedEvent event) { + StringBuilder messageToSend= new StringBuilder(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd LLLL yyyy"); + for( TextChannel textChannel: event.getGuild().getTextChannels()){ + if(textChannel.hasLatestMessage()){ + messageToSend.append("\nChannel : ").append(textChannel.getName()).append(" Date :").append((textChannel.retrieveMessageById(textChannel.getLatestMessageId()).complete().getTimeCreated()).toLocalDate().format(formatter)); + } + else{ + messageToSend.append("\nChannel : ").append(textChannel.getName()).append(" was never used."); + } + } + event.getTextChannel().sendMessage(EmbedMessageUtils.getLastMessageFromTextChannel(messageToSend.toString())).queue(); + } + + @Override + public boolean isPrivateUsable() { + return false; + } + + @Override + public boolean isAdminCmd() { + return true; + } + + /** + * Determines if the command is usable only by bot level admin user + * + * @return boolean + */ + @Override + public boolean isBotAdminCmd() { + return false; + } + + @Override + public boolean isNSFW() { + return false; + } +} diff --git a/src/main/java/net/Broken/Tools/EmbedMessageUtils.java b/src/main/java/net/Broken/Tools/EmbedMessageUtils.java index 23a504a..0a90dad 100644 --- a/src/main/java/net/Broken/Tools/EmbedMessageUtils.java +++ b/src/main/java/net/Broken/Tools/EmbedMessageUtils.java @@ -108,6 +108,11 @@ public class EmbedMessageUtils { return new EmbedBuilder().setTitle("Bot Command ("+role+")").setDescription(message).setFooter("Use '//help ' for more info",MainBot.jda.getSelfUser().getAvatarUrl()).setTimestamp(Instant.now()).setColor(Color.green).setThumbnail(MainBot.jda.getSelfUser().getAvatarUrl()).build(); } + public static MessageEmbed getLastMessageFromTextChannel(String message) { + EmbedBuilder temp = new EmbedBuilder().setTitle("Channel uses checker").setDescription(message).setColor(Color.green); + return buildStandar(temp); + } + public static MessageEmbed searchResult(SearchResult result){ EmbedBuilder builder = new EmbedBuilder() .setColor(Color.CYAN) diff --git a/src/main/resources/Help/ChannelsReview/en/main.md b/src/main/resources/Help/ChannelsReview/en/main.md new file mode 100644 index 0000000..45ec863 --- /dev/null +++ b/src/main/resources/Help/ChannelsReview/en/main.md @@ -0,0 +1,2 @@ +This command allow you to see which text channel is used by +returning the date from the last message sent in every text channel. \ No newline at end of file diff --git a/src/main/resources/Help/ChannelsReview/fr/main.md b/src/main/resources/Help/ChannelsReview/fr/main.md new file mode 100644 index 0000000..e06d5e9 --- /dev/null +++ b/src/main/resources/Help/ChannelsReview/fr/main.md @@ -0,0 +1,3 @@ +Cette commande permet de verifier quels channels textes ne sont +pas utilisés en remontant la date du dernier message envoyé +dans tout les channels. \ No newline at end of file