diff --git a/src/main/java/me/bobert/netneutrality/context/SlashCommandContext.java b/src/main/java/me/bobert/netneutrality/context/SlashCommandContext.java index 16e8baa..3b1c2db 100644 --- a/src/main/java/me/bobert/netneutrality/context/SlashCommandContext.java +++ b/src/main/java/me/bobert/netneutrality/context/SlashCommandContext.java @@ -8,7 +8,6 @@ package me.bobert.netneutrality.context; import me.bobert.netneutrality.core.context.CommandContext; import me.bobert.netneutrality.core.context.InteractionContext; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; -import net.dv8tion.jda.api.interactions.InteractionHook; import net.dv8tion.jda.api.interactions.modals.Modal; public class SlashCommandContext extends CommandContext implements InteractionContext { @@ -24,14 +23,6 @@ public class SlashCommandContext extends CommandContext implements InteractionCo return event; } - @Override - public InteractionHook getInteractionHook() { - if (!event.isAcknowledged()) - throw new RuntimeException("Interaction isn't acknowledged yet"); - - return event.getHook(); - } - @Override public void deleteMessage() { // not implemented diff --git a/src/main/java/me/bobert/netneutrality/context/tasks/ButtonTaskContext.java b/src/main/java/me/bobert/netneutrality/context/tasks/ButtonTaskContext.java index 1b194e9..a8bbba2 100644 --- a/src/main/java/me/bobert/netneutrality/context/tasks/ButtonTaskContext.java +++ b/src/main/java/me/bobert/netneutrality/context/tasks/ButtonTaskContext.java @@ -8,7 +8,6 @@ package me.bobert.netneutrality.context.tasks; import me.bobert.netneutrality.core.context.InteractionContext; import me.bobert.netneutrality.core.context.TaskContext; import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent; -import net.dv8tion.jda.api.interactions.InteractionHook; public class ButtonTaskContext extends TaskContext implements InteractionContext { private final ButtonInteractionEvent event; @@ -28,8 +27,4 @@ public class ButtonTaskContext extends TaskContext implements InteractionContext return event.getComponentId(); } - @Override - public InteractionHook getInteractionHook() { - return event.getHook(); - } } diff --git a/src/main/java/me/bobert/netneutrality/context/tasks/ModalTaskContext.java b/src/main/java/me/bobert/netneutrality/context/tasks/ModalTaskContext.java index e4621ad..815bebf 100644 --- a/src/main/java/me/bobert/netneutrality/context/tasks/ModalTaskContext.java +++ b/src/main/java/me/bobert/netneutrality/context/tasks/ModalTaskContext.java @@ -8,7 +8,6 @@ package me.bobert.netneutrality.context.tasks; import me.bobert.netneutrality.core.context.InteractionContext; import me.bobert.netneutrality.core.context.TaskContext; import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent; -import net.dv8tion.jda.api.interactions.InteractionHook; public class ModalTaskContext extends TaskContext implements InteractionContext { private final ModalInteractionEvent event; @@ -28,8 +27,4 @@ public class ModalTaskContext extends TaskContext implements InteractionContext return event.getModalId(); } - @Override - public InteractionHook getInteractionHook() { - return event.getHook(); - } } diff --git a/src/main/java/me/bobert/netneutrality/core/context/Context.java b/src/main/java/me/bobert/netneutrality/core/context/Context.java index d6b7263..022d0fd 100644 --- a/src/main/java/me/bobert/netneutrality/core/context/Context.java +++ b/src/main/java/me/bobert/netneutrality/core/context/Context.java @@ -142,13 +142,17 @@ public interface Context { replyEphemeral(MessageCreateData.fromEmbeds(embeds)); } - default void sendMessageInPrivate(MessageCreateData messageCreateData) { + default void sendMessageInPrivate(MessageCreateData messageCreateData, List components) { User user = getDiscordUser(); if (user != null) { - user.openPrivateChannel().flatMap(channel -> channel.sendMessage(messageCreateData)).queue(); + user.openPrivateChannel().flatMap(channel -> channel.sendMessage(messageCreateData).setComponents(components)).queue(); } } + default void sendMessageInPrivate(MessageCreateData messageCreateData) { + sendMessageInPrivate(messageCreateData, List.of()); + } + default void sendMessageInPrivate(String message) { sendMessageInPrivate(MessageCreateData.fromContent(message)); } diff --git a/src/main/java/me/bobert/netneutrality/core/context/InteractionContext.java b/src/main/java/me/bobert/netneutrality/core/context/InteractionContext.java index 5f53bee..e73609b 100644 --- a/src/main/java/me/bobert/netneutrality/core/context/InteractionContext.java +++ b/src/main/java/me/bobert/netneutrality/core/context/InteractionContext.java @@ -8,6 +8,7 @@ package me.bobert.netneutrality.core.context; import me.bobert.netneutrality.context.AsyncContext; import net.dv8tion.jda.api.events.Event; import net.dv8tion.jda.api.interactions.Interaction; +import net.dv8tion.jda.api.interactions.InteractionHook; import net.dv8tion.jda.api.interactions.callbacks.IReplyCallback; import net.dv8tion.jda.api.interactions.components.LayoutComponent; import net.dv8tion.jda.api.utils.messages.MessageCreateData; @@ -17,6 +18,15 @@ import java.util.function.Consumer; public interface InteractionContext extends Context { + @Override + default InteractionHook getInteractionHook() { + if (!isAcknowledged()) { + throw new RuntimeException("Interaction isn't acknowledged yet"); + } + + return getReplyCallback(getEvent()).getHook(); + } + @Override default void ack(boolean ephemeral) { defer(ephemeral, asyncMessage -> {});