Add getInteractionHook to InteractionContext abstraction
This commit is contained in:
1 parent
6f2ba795d4
commit
e0ef3f9915
5 files changed
+16
-21
No files matched your search
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -142,13 +142,17 @@ public interface Context {
|
||||
replyEphemeral(MessageCreateData.fromEmbeds(embeds));
|
||||
}
|
||||
|
||||
default void sendMessageInPrivate(MessageCreateData messageCreateData) {
|
||||
default void sendMessageInPrivate(MessageCreateData messageCreateData, List<LayoutComponent> 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));
|
||||
}
|
||||
|
||||
@@ -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 -> {});
|
||||
|
||||
Reference in new issue
Block a user