From bc0463dd3839e445259180c74b9835b4be9c0f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beatrice=20Dellac=C3=A0?= Date: Tue, 20 Dec 2022 23:03:07 +0100 Subject: [PATCH] Add a MessageResponse class for mixed-type content --- .../hidekobot/commands/base/DiceRoll.java | 2 + .../commands/slash/DiceRollCommand.java | 54 +++++++++++++++++++ .../hidekobot/objects/MessageResponse.java | 28 ++++++++++ 3 files changed, 84 insertions(+) create mode 100644 src/main/java/wtf/beatrice/hidekobot/commands/base/DiceRoll.java create mode 100644 src/main/java/wtf/beatrice/hidekobot/commands/slash/DiceRollCommand.java create mode 100644 src/main/java/wtf/beatrice/hidekobot/objects/MessageResponse.java diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/base/DiceRoll.java b/src/main/java/wtf/beatrice/hidekobot/commands/base/DiceRoll.java new file mode 100644 index 0000000..07b1e38 --- /dev/null +++ b/src/main/java/wtf/beatrice/hidekobot/commands/base/DiceRoll.java @@ -0,0 +1,2 @@ +package wtf.beatrice.hidekobot.commands.base;public class DiceRoll { +} diff --git a/src/main/java/wtf/beatrice/hidekobot/commands/slash/DiceRollCommand.java b/src/main/java/wtf/beatrice/hidekobot/commands/slash/DiceRollCommand.java new file mode 100644 index 0000000..f72da75 --- /dev/null +++ b/src/main/java/wtf/beatrice/hidekobot/commands/slash/DiceRollCommand.java @@ -0,0 +1,54 @@ +package wtf.beatrice.hidekobot.commands.slash; + +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.DefaultMemberPermissions; +import net.dv8tion.jda.api.interactions.commands.OptionMapping; +import net.dv8tion.jda.api.interactions.commands.OptionType; +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.commands.base.Say; +import wtf.beatrice.hidekobot.objects.commands.SlashCommandImpl; + +public class SayCommand extends SlashCommandImpl +{ + @Override + public CommandData getSlashCommandData() + { + + return Commands.slash("say", "Make the bot say something.") + .addOption(OptionType.STRING, "text", + "The message to send.", + true, + false) + .setDefaultPermissions(DefaultMemberPermissions.enabledFor(Say.getPermission())); + } + + @Override + public void runSlashCommand(@NotNull SlashCommandInteractionEvent event) + { + MessageChannel channel = event.getChannel(); + + // get the text to send + OptionMapping textOption = event.getOption("text"); + String messageContent = ""; + if(textOption != null) + { + messageContent = textOption.getAsString(); + } + + if(textOption == null || messageContent.isEmpty()) + { + event.reply("\uD83D\uDE20 Hey, you have to tell me what to say!") + .setEphemeral(true) + .queue(); + return; + } + + channel.sendMessage(messageContent).queue(); + event.reply("Message sent! ✨") + .setEphemeral(true) + .queue(); + } +} diff --git a/src/main/java/wtf/beatrice/hidekobot/objects/MessageResponse.java b/src/main/java/wtf/beatrice/hidekobot/objects/MessageResponse.java new file mode 100644 index 0000000..9188cd9 --- /dev/null +++ b/src/main/java/wtf/beatrice/hidekobot/objects/MessageResponse.java @@ -0,0 +1,28 @@ +package wtf.beatrice.hidekobot.objects; + +import net.dv8tion.jda.api.entities.MessageEmbed; +import org.jetbrains.annotations.Nullable; + +public class MessageResponse +{ + private final String content; + private final MessageEmbed embed; + + public MessageResponse(String content, MessageEmbed embed) + { + this.content = content; + this.embed = embed; + } + + @Nullable + public String getContent() + { + return content; + } + + @Nullable + public MessageEmbed getEmbed() + { + return embed; + } +}