From a06a7d447f867c184c7c75b5818d8054830b7fda Mon Sep 17 00:00:00 2001 From: Yukai Shan Date: Wed, 12 Apr 2023 21:40:26 -0700 Subject: Fixed bug where Channel Feed was not being cleared for hours Channels were not being cleared if a channel did not have a specific update (i.e new upcoming or currently live) leaving old streams in feed for hours --- src/main/java/Main.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 78a2f4d..6fdaf1e 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -30,12 +30,9 @@ public class Main extends ListenerAdapter{ commandManager = new CommandManager(fileDataProcessor.readCredential("holodexAPIKey")); jdaBuilder = JDABuilder.createDefault(fileDataProcessor.readCredential("discordToken")); jdaBuilder.addEventListeners(commandManager); + jdaBuilder.addEventListeners(this); try { jda = jdaBuilder.build(); - statusHandler = new StatusHandler(jda); - statusHandler.updateSlashCommands(); - System.out.println("Bot is ready!"); - initializeAutoRefresh(); } catch (LoginException e) { System.out.println("Unable to login with the provided token. Please check your token and try again."); @@ -56,18 +53,19 @@ public class Main extends ListenerAdapter{ } for (OrgChannelTuple orgChannelTuple : refreshChannels) { System.out.println("Refreshing " + orgChannelTuple.getType() + " " + orgChannelTuple.getName()); + jda.getTextChannelById(orgChannelTuple.getDiscordChannelId()).purgeMessages( + jda.getTextChannelById(orgChannelTuple.getDiscordChannelId()).getIterableHistory().complete()); List messageEmbeds = commandManager.updateUpcomingChannel(orgChannelTuple.getName(), orgChannelTuple.getType()); if (messageEmbeds.size() == 0) { continue; } - jda.getTextChannelById(orgChannelTuple.getDiscordChannelId()).purgeMessages( - jda.getTextChannelById(orgChannelTuple.getDiscordChannelId()).getIterableHistory().complete()); for (MessageEmbed messageEmbed : messageEmbeds) { jda.getTextChannelById(orgChannelTuple.getDiscordChannelId()).sendMessageEmbeds(messageEmbed).queue(); } } } catch(NullPointerException ex){ + System.out.println(ex); System.out.println("Channel is empty. Skipping refresh there"); } catch (Exception e) { @@ -85,6 +83,15 @@ public class Main extends ListenerAdapter{ String msg = message.getContentDisplay(); } + + @Override + public void onReady(net.dv8tion.jda.api.events.ReadyEvent event) { + System.out.println("Logged in as " + event.getJDA().getSelfUser().getAsTag()); + statusHandler = new StatusHandler(jda); + statusHandler.updateSlashCommands(); + initializeAutoRefresh(); + System.out.println("Bot is ready!"); + } public static void main(String args[]) { Main main = new Main(); main.initializeBot(); -- cgit v1.2.3