diff options
| author | Alex Pooley (@zuedev) <zuedev@gmail.com> | 2026-07-22 15:32:57 +0100 |
|---|---|---|
| committer | Alex Pooley (@zuedev) <zuedev@gmail.com> | 2026-07-22 15:32:57 +0100 |
| commit | 72487019b3f255cece40a8073bbad8bc9968a3b7 (patch) | |
| tree | b6590e63039cdc8b1820bd345cdfe83f28ff839b /174bg/discord-bot/commands | |
| parent | da0509c91376f56f133872eddd2e4282d76f215e (diff) | |
| download | unnamed-group-72487019b3f255cece40a8073bbad8bc9968a3b7.tar unnamed-group-72487019b3f255cece40a8073bbad8bc9968a3b7.tar.gz unnamed-group-72487019b3f255cece40a8073bbad8bc9968a3b7.tar.bz2 unnamed-group-72487019b3f255cece40a8073bbad8bc9968a3b7.tar.xz unnamed-group-72487019b3f255cece40a8073bbad8bc9968a3b7.zip | |
major code refactor, add uex lookup
Diffstat (limited to '174bg/discord-bot/commands')
| -rw-r--r-- | 174bg/discord-bot/commands/_index.js | 7 | ||||
| -rw-r--r-- | 174bg/discord-bot/commands/close-ticket.js | 55 | ||||
| -rw-r--r-- | 174bg/discord-bot/commands/oncall-check.js | 51 | ||||
| -rw-r--r-- | 174bg/discord-bot/commands/requisition.js | 42 |
4 files changed, 0 insertions, 155 deletions
diff --git a/174bg/discord-bot/commands/_index.js b/174bg/discord-bot/commands/_index.js deleted file mode 100644 index 2421b4d..0000000 --- a/174bg/discord-bot/commands/_index.js +++ /dev/null @@ -1,7 +0,0 @@ -import requisition from "./requisition.js"; -import closeTicket from "./close-ticket.js"; -import oncallCheck from "./oncall-check.js"; - -export { requisition, closeTicket, oncallCheck }; - -export default [requisition, closeTicket, oncallCheck]; diff --git a/174bg/discord-bot/commands/close-ticket.js b/174bg/discord-bot/commands/close-ticket.js deleted file mode 100644 index ca3040e..0000000 --- a/174bg/discord-bot/commands/close-ticket.js +++ /dev/null @@ -1,55 +0,0 @@ -import { SlashCommandBuilder, PermissionFlagsBits } from "discord.js"; - -export default { - data: new SlashCommandBuilder() - .setName("close-ticket") - .setDescription( - "Closes the current ticket by logging the contents and deleting the channel.", - ) - .setDefaultMemberPermissions(PermissionFlagsBits.Administrator), - execute: async (interaction) => { - const channel = interaction.channel; - - if (!channel || !channel.name.startsWith("ticket-")) { - return await interaction.reply({ - content: "This command can only be used in a ticket channel.", - ephemeral: true, - }); - } - - // log the contents of the ticket and send to the logs channel if it exists - const messages = await channel.messages.fetch({ limit: 100 }); - const log = messages - .map((message) => `${message.author.tag}: ${message.content}`) - .reverse() - .join("\n"); - - console.log(`Ticket log for ${channel.name}:\n${log}`); - - const logsChannel = interaction.guild.channels.cache.find( - (ch) => ch.name === "logs" && ch.isTextBased(), - ); - - if (logsChannel) - await logsChannel.send({ - content: `# Ticket log for ${channel.name}`, - files: [ - { - name: `${channel.name}.txt`, - attachment: Buffer.from( - messages - .map( - (message) => - `${message.author.tag}/${message.author.id}: ${message.content}`, - ) - .reverse() - .join("\n"), - ), - }, - ], - }); - - // delete the channel - await channel.delete(); - }, -}; diff --git a/174bg/discord-bot/commands/oncall-check.js b/174bg/discord-bot/commands/oncall-check.js deleted file mode 100644 index 7a3886d..0000000 --- a/174bg/discord-bot/commands/oncall-check.js +++ /dev/null @@ -1,51 +0,0 @@ -import { SlashCommandBuilder, PermissionFlagsBits } from "discord.js"; -import { login } from "../controllers/pocketbase.js"; - -export default { - data: new SlashCommandBuilder() - .setName("oncall-check") - .setDescription("Returns a list of members who are currently on call.") - .setDefaultMemberPermissions(PermissionFlagsBits.Administrator), - execute: async (interaction) => { - const date = new Date(); - const dateUTCHours = date.getUTCHours(); - const dateUTCMinutes = date.getUTCMinutes(); - const dateUTCDay = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][date.getUTCDay()]; - - const pb = await login(); - - const members = await pb.collection("members").getFullList(); - - let membersOnCall = []; - - for (const member of members) { - try { - if (member.onCallSchedule) { - const available = member.onCallSchedule[dateUTCDay]?.available || false; - - if (available) { - const start = member.onCallSchedule[dateUTCDay].start; - const startHours = start.split(":")[0]; - const startMinutes = start.split(":")[1]; - const end = member.onCallSchedule[dateUTCDay].end; - const endHours = end.split(":")[0]; - const endMinutes = end.split(":")[1]; - - console.log(`Checking on-call schedule for member ${member.name}: ${start} - ${end} (UTC)`); - - if ((dateUTCHours > startHours || (dateUTCHours === startHours && dateUTCMinutes >= startMinutes)) && (dateUTCHours < endHours || (dateUTCHours === endHours && dateUTCMinutes <= endMinutes))) { - membersOnCall.push(member); - } - } - } - } catch (error) { - console.error(`Error checking on-call schedule for member ${member.name}:`, error); - } - } - - await interaction.reply({ - content: `${membersOnCall.map((member) => `- <@${member.discordId}>`).join("\n") || "No members are currently on call."}`, - ephemeral: true, - }); - }, -}; diff --git a/174bg/discord-bot/commands/requisition.js b/174bg/discord-bot/commands/requisition.js deleted file mode 100644 index 02c7699..0000000 --- a/174bg/discord-bot/commands/requisition.js +++ /dev/null @@ -1,42 +0,0 @@ -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}`, - ); - }, -}; |
