From 0b8d4e34e064a847bed236808c0873ce727bccf0 Mon Sep 17 00:00:00 2001 From: "Alex Pooley (@zuedev)" Date: Wed, 15 Jul 2026 14:11:57 +0100 Subject: refactor createTicket function to accept options object for role access and ticket name prefix --- 174bg/discord-bot/commands/requisition.js | 5 ++++- 174bg/discord-bot/utilities/createTicket.js | 9 ++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/174bg/discord-bot/commands/requisition.js b/174bg/discord-bot/commands/requisition.js index 51d4ba4..02c7699 100644 --- a/174bg/discord-bot/commands/requisition.js +++ b/174bg/discord-bot/commands/requisition.js @@ -17,7 +17,10 @@ export default { execute: async (interaction) => { const contents = interaction.options.getString("contents"); - const ticket = await createTicket(interaction, ["quartermaster"]); + const ticket = await createTicket(interaction, { + roleNamesWithAccess: ["quartermaster"], + ticketNamePrefix: "req-", + }); await ticket.send({ content: `**New requisition request from <@${interaction.user.id}>**: ${contents}`, diff --git a/174bg/discord-bot/utilities/createTicket.js b/174bg/discord-bot/utilities/createTicket.js index 9b573d6..6289715 100644 --- a/174bg/discord-bot/utilities/createTicket.js +++ b/174bg/discord-bot/utilities/createTicket.js @@ -1,6 +1,9 @@ import { ChannelType, PermissionFlagsBits } from "discord.js"; -export default async (interaction, roleNamesWithAccess) => { +export default async ( + interaction, + options = { roleNamesWithAccess: [], ticketNamePrefix: "ticket-" }, +) => { const ticketsCategory = interaction.guild.channels.cache.find( (channel) => channel.name.toLowerCase() === "tickets" && @@ -11,7 +14,7 @@ export default async (interaction, roleNamesWithAccess) => { return await interaction.reply("Tickets category not found."); // get the roles that should have access to this ticket - const rolesWithAccess = roleNamesWithAccess.map((roleName) => { + const rolesWithAccess = options.roleNamesWithAccess.map((roleName) => { return interaction.guild.roles.cache.find( (role) => role.name.toLowerCase() === roleName.toLowerCase(), ); @@ -23,7 +26,7 @@ export default async (interaction, roleNamesWithAccess) => { .replace(/[-:.T]/g, "") .slice(2, 16); - const channelName = `ticket-${timestamp}`; + const channelName = `${options.ticketNamePrefix}${timestamp}`; const newChannel = await interaction.guild.channels.create({ name: channelName, -- cgit v1.2.3