aboutsummaryrefslogtreecommitdiff
path: root/174bg/discord-bot/commands
diff options
context:
space:
mode:
Diffstat (limited to '174bg/discord-bot/commands')
-rw-r--r--174bg/discord-bot/commands/_index.js7
-rw-r--r--174bg/discord-bot/commands/close-ticket.js55
-rw-r--r--174bg/discord-bot/commands/oncall-check.js51
-rw-r--r--174bg/discord-bot/commands/requisition.js42
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}`,
- );
- },
-};