diff --git a/src/main/java/net/Broken/Commands/ChannelsReview.java b/src/main/java/net/Broken/Commands/ChannelsReview.java index a88b78c..090f2ae 100644 --- a/src/main/java/net/Broken/Commands/ChannelsReview.java +++ b/src/main/java/net/Broken/Commands/ChannelsReview.java @@ -16,30 +16,43 @@ import java.util.Locale; public class ChannelsReview implements Commande { Logger logger = LogManager.getLogger(); + @Override public void action(String[] args, MessageReceivedEvent event) { HashMap result = new HashMap<>(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy").withLocale(Locale.ENGLISH); - for( TextChannel textChannel: event.getGuild().getTextChannels()){ - if(textChannel.hasLatestMessage()){ + int charCtl = 0; + for (TextChannel textChannel : event.getGuild().getTextChannels()) { + if (textChannel.hasLatestMessage()) { String lastMessageId = textChannel.getLatestMessageId(); - logger.debug("Last message in chanel " + textChannel.toString() + " is " + lastMessageId ); + logger.debug("Last message in channel " + textChannel.toString() + " is " + lastMessageId); + try { Message lastMessage = textChannel.retrieveMessageById(lastMessageId).complete(); String date = lastMessage.getTimeCreated().format(formatter); + charCtl += textChannel.getName().length() + date.length(); result.put(textChannel.getName(), date); - }catch (RuntimeException e){ + } catch (RuntimeException e) { logger.warn("Can't find message with id: " + lastMessageId); result.put(textChannel.getName(), "ERROR"); + charCtl += textChannel.getName().length() + 5; } - } - else{ + + } else { result.put(textChannel.getName(), "No message or access denied."); + charCtl += textChannel.getName().length() + 30; + } + if (charCtl > 3000) { + event.getTextChannel().sendMessage(EmbedMessageUtils.getLastMessageFromTextChannel(result)).queue(); + event.getTextChannel().sendTyping().queue(); + result = new HashMap<>(); + charCtl = 0; } } - event.getTextChannel().sendMessage(EmbedMessageUtils.getLastMessageFromTextChannel(result)).queue(); + if (charCtl != 0) + event.getTextChannel().sendMessage(EmbedMessageUtils.getLastMessageFromTextChannel(result)).queue(); } @Override