diff --git a/src/main/java/com/denizenscript/ddiscordbot/DiscordConnection.java b/src/main/java/com/denizenscript/ddiscordbot/DiscordConnection.java index 148c2f6..5a06e22 100644 --- a/src/main/java/com/denizenscript/ddiscordbot/DiscordConnection.java +++ b/src/main/java/com/denizenscript/ddiscordbot/DiscordConnection.java @@ -9,25 +9,18 @@ import net.dv8tion.jda.api.events.Event; import net.dv8tion.jda.api.events.channel.ChannelCreateEvent; import net.dv8tion.jda.api.events.channel.ChannelDeleteEvent; -import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; -import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; -import net.dv8tion.jda.api.events.guild.member.GuildMemberRoleAddEvent; -import net.dv8tion.jda.api.events.guild.member.GuildMemberRoleRemoveEvent; +import net.dv8tion.jda.api.events.channel.update.ChannelUpdateArchivedEvent; +import net.dv8tion.jda.api.events.guild.member.*; import net.dv8tion.jda.api.events.guild.member.update.GuildMemberUpdateNicknameEvent; import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent; -import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent; -import net.dv8tion.jda.api.events.interaction.command.MessageContextInteractionEvent; -import net.dv8tion.jda.api.events.interaction.command.UserContextInteractionEvent; +import net.dv8tion.jda.api.events.interaction.command.*; import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent; -import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.events.interaction.component.GenericSelectMenuInteractionEvent; import net.dv8tion.jda.api.events.message.MessageDeleteEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageUpdateEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; -import net.dv8tion.jda.api.events.thread.ThreadHiddenEvent; -import net.dv8tion.jda.api.events.thread.ThreadRevealedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import org.bukkit.Bukkit; @@ -175,13 +168,8 @@ public void onChannelDelete(ChannelDeleteEvent event) { } @Override - public void onThreadRevealed(ThreadRevealedEvent event) { - autoHandle(event, DiscordThreadRevealedScriptEvent.instance); - } - - @Override - public void onThreadHidden(ThreadHiddenEvent event) { // TODO: Is 'hidden' the same as 'archived'? - autoHandle(event, DiscordThreadArchivedScriptEvent.instance); + public void onChannelUpdateArchived(ChannelUpdateArchivedEvent event) { + autoHandle(event, event.getNewValue() ? DiscordThreadArchivedScriptEvent.instance : DiscordThreadRevealedScriptEvent.instance); } public void autoHandle(Event event, DiscordScriptEvent scriptEvent) { diff --git a/src/main/java/com/denizenscript/ddiscordbot/events/DiscordThreadArchivedScriptEvent.java b/src/main/java/com/denizenscript/ddiscordbot/events/DiscordThreadArchivedScriptEvent.java index 832b753..2eedd15 100644 --- a/src/main/java/com/denizenscript/ddiscordbot/events/DiscordThreadArchivedScriptEvent.java +++ b/src/main/java/com/denizenscript/ddiscordbot/events/DiscordThreadArchivedScriptEvent.java @@ -4,7 +4,8 @@ import com.denizenscript.ddiscordbot.objects.DiscordChannelTag; import com.denizenscript.ddiscordbot.objects.DiscordGroupTag; import com.denizenscript.denizencore.objects.ObjectTag; -import net.dv8tion.jda.api.events.thread.ThreadHiddenEvent; +import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; +import net.dv8tion.jda.api.events.channel.update.ChannelUpdateArchivedEvent; public class DiscordThreadArchivedScriptEvent extends DiscordScriptEvent { @@ -18,8 +19,6 @@ public class DiscordThreadArchivedScriptEvent extends DiscordScriptEvent { // // @Triggers when a Discord thread is archived. // - // @Warning Not currently function. Will likely function in the future. - // // @Plugin dDiscordBot // // @Group Discord @@ -38,8 +37,8 @@ public DiscordThreadArchivedScriptEvent() { registerSwitches("group", "parent"); } - public ThreadHiddenEvent getEvent() { - return (ThreadHiddenEvent) event; + public ChannelUpdateArchivedEvent getEvent() { + return (ChannelUpdateArchivedEvent) event; } @Override @@ -47,7 +46,7 @@ public boolean matches(ScriptPath path) { if (!tryGuild(path, getEvent().getGuild())) { return false; } - if (!tryChannel(path, getEvent().getThread().getParentChannel(), "parent")) { + if (!tryChannel(path, ((ThreadChannel) getEvent().getChannel()).getParentChannel(), "parent")) { return false; } return super.matches(path); @@ -55,12 +54,10 @@ public boolean matches(ScriptPath path) { @Override public ObjectTag getContext(String name) { - switch (name) { - case "group": - return new DiscordGroupTag(botID, getEvent().getGuild()); - case "thread": - return new DiscordChannelTag(botID, getEvent().getThread()); - } - return super.getContext(name); + return switch (name) { + case "group" -> new DiscordGroupTag(botID, getEvent().getGuild()); + case "thread" -> new DiscordChannelTag(botID, getEvent().getChannel()); + default -> super.getContext(name); + }; } } diff --git a/src/main/java/com/denizenscript/ddiscordbot/events/DiscordThreadRevealedScriptEvent.java b/src/main/java/com/denizenscript/ddiscordbot/events/DiscordThreadRevealedScriptEvent.java index 41eaed9..e973929 100644 --- a/src/main/java/com/denizenscript/ddiscordbot/events/DiscordThreadRevealedScriptEvent.java +++ b/src/main/java/com/denizenscript/ddiscordbot/events/DiscordThreadRevealedScriptEvent.java @@ -4,7 +4,8 @@ import com.denizenscript.ddiscordbot.objects.DiscordChannelTag; import com.denizenscript.ddiscordbot.objects.DiscordGroupTag; import com.denizenscript.denizencore.objects.ObjectTag; -import net.dv8tion.jda.api.events.thread.ThreadRevealedEvent; +import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; +import net.dv8tion.jda.api.events.channel.update.ChannelUpdateArchivedEvent; public class DiscordThreadRevealedScriptEvent extends DiscordScriptEvent { @@ -18,8 +19,6 @@ public class DiscordThreadRevealedScriptEvent extends DiscordScriptEvent { // // @Triggers when a Discord thread is pulled out of archive. // - // @Warning Not currently function. Will likely function in the future. - // // @Plugin dDiscordBot // // @Group Discord @@ -38,8 +37,8 @@ public DiscordThreadRevealedScriptEvent() { registerSwitches("group", "parent"); } - public ThreadRevealedEvent getEvent() { - return (ThreadRevealedEvent) event; + public ChannelUpdateArchivedEvent getEvent() { + return (ChannelUpdateArchivedEvent) event; } @Override @@ -47,7 +46,7 @@ public boolean matches(ScriptPath path) { if (!tryGuild(path, getEvent().getGuild())) { return false; } - if (!tryChannel(path, getEvent().getThread().getParentChannel(), "parent")) { + if (!tryChannel(path, ((ThreadChannel) getEvent().getChannel()).getParentChannel(), "parent")) { return false; } return super.matches(path); @@ -55,12 +54,10 @@ public boolean matches(ScriptPath path) { @Override public ObjectTag getContext(String name) { - switch (name) { - case "group": - return new DiscordGroupTag(botID, getEvent().getGuild()); - case "thread": - return new DiscordChannelTag(botID, getEvent().getThread()); - } - return super.getContext(name); + return switch (name) { + case "group" -> new DiscordGroupTag(botID, getEvent().getGuild()); + case "thread" -> new DiscordChannelTag(botID, getEvent().getChannel()); + default -> super.getContext(name); + }; } }