Make trivia support slash commands too
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package wtf.beatrice.hidekobot.commands.slash;
|
||||
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import wtf.beatrice.hidekobot.Cache;
|
||||
import wtf.beatrice.hidekobot.commands.base.Trivia;
|
||||
import wtf.beatrice.hidekobot.objects.MessageResponse;
|
||||
import wtf.beatrice.hidekobot.objects.commands.SlashCommandImpl;
|
||||
|
||||
public class TriviaCommand extends SlashCommandImpl
|
||||
{
|
||||
@Override
|
||||
public CommandData getSlashCommandData()
|
||||
{
|
||||
|
||||
return Commands.slash("trivia",
|
||||
"Start a Trivia session and play with others!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void runSlashCommand(@NotNull SlashCommandInteractionEvent event)
|
||||
{
|
||||
MessageChannel channel = event.getChannel();
|
||||
|
||||
if(!(channel instanceof TextChannel))
|
||||
{
|
||||
event.reply(Trivia.getNoDMsError()).queue();
|
||||
return;
|
||||
}
|
||||
|
||||
if(Trivia.channelsRunningTrivia.contains(channel.getId()))
|
||||
{
|
||||
event.reply(Trivia.getTriviaAlreadyRunningError()).setEphemeral(true).queue();
|
||||
return;
|
||||
}
|
||||
|
||||
MessageResponse response = Trivia.generateMainScreen();
|
||||
|
||||
event.replyEmbeds(response.embed()).addActionRow(response.components()).queue(interaction ->
|
||||
{
|
||||
interaction.retrieveOriginal().queue(message -> {
|
||||
Cache.getDatabaseSource().trackRanCommandReply(message, event.getUser());
|
||||
Cache.getDatabaseSource().queueDisabling(message);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user