aboutsummaryrefslogtreecommitdiff
path: root/174bg/discord-bot/source/commands/requisition.js
diff options
context:
space:
mode:
Diffstat (limited to '174bg/discord-bot/source/commands/requisition.js')
-rw-r--r--174bg/discord-bot/source/commands/requisition.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/174bg/discord-bot/source/commands/requisition.js b/174bg/discord-bot/source/commands/requisition.js
new file mode 100644
index 0000000..02c7699
--- /dev/null
+++ b/174bg/discord-bot/source/commands/requisition.js
@@ -0,0 +1,42 @@
+import { SlashCommandBuilder } from "discord.js";
+import createTicket from "../utilities/createTicket.js";
+import notifyRoleByName from "../utilities/notifyRoleByName.js";
+
+export default {
+ data: new SlashCommandBuilder()
+ .setName("requisition")
+ .setDescription(
+ "Request items from the quartermaster. A new requisition ticket will be created.",
+ )
+ .addStringOption((option) =>
+ option
+ .setName("contents")
+ .setDescription("What are you requesting? Be as specific as possible.")
+ .setRequired(true),
+ ),
+ execute: async (interaction) => {
+ const contents = interaction.options.getString("contents");
+
+ const ticket = await createTicket(interaction, {
+ roleNamesWithAccess: ["quartermaster"],
+ ticketNamePrefix: "req-",
+ });
+
+ await ticket.send({
+ content: `**New requisition request from <@${interaction.user.id}>**: ${contents}`,
+ });
+
+ // reply to the user
+ await interaction.reply({
+ content: `Your requisition ticket has been created: <#${ticket.id}>`,
+ ephemeral: true,
+ });
+
+ // notify quartermasters
+ await notifyRoleByName(
+ interaction.guild,
+ "quartermaster",
+ `New requisition request from <@${interaction.user.id}>: ${contents}`,
+ );
+ },
+};