From 904ee80b50148317c0edaf71395a86138833ed7e Mon Sep 17 00:00:00 2001 From: IRONM00N <64110067+IRONM00N@users.noreply.github.com> Date: Fri, 5 Aug 2022 23:15:04 -0400 Subject: add support thread solved command --- src/commands/moulberry-bush/solved.ts | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/commands/moulberry-bush/solved.ts (limited to 'src') diff --git a/src/commands/moulberry-bush/solved.ts b/src/commands/moulberry-bush/solved.ts new file mode 100644 index 0000000..836d575 --- /dev/null +++ b/src/commands/moulberry-bush/solved.ts @@ -0,0 +1,44 @@ +import { BushCommand, clientSendAndPermCheck, emojis, mappings, type CommandMessage, type SlashMessage } from '#lib'; +import assert from 'assert'; + +export default class Solved extends BushCommand { + public constructor() { + super('solved', { + aliases: ['solved'], + category: "Moulberry's Bush", + description: 'A command to mark a support threads as solved.', + usage: ['solved'], + examples: ['solved'], + slash: true, + channel: 'guild', + clientPermissions: (m) => clientSendAndPermCheck(m), + userPermissions: [], + slashGuilds: [mappings.guilds["Moulberry's Bush"]], + restrictedGuilds: [mappings.guilds["Moulberry's Bush"]] + }); + } + + public override async exec(message: CommandMessage | SlashMessage) { + assert(message.inGuild()); + assert(message.channel); + + if (!message.channel.isThread()) return message.util.reply(`${emojis.error} This command can only be used in threads.`); + + if (message.channel.parentId !== mappings.channels['neu-support']) + return message.util.reply( + `${emojis.error} This command can only be used in thread that are created in <#${mappings.channels['neu-support']}>.` + ); + + if (message.channel.name.startsWith('[Solved]')) return message.util.reply(`${emojis.error} This thread is already solved.`); + + if (!message.channel.name.startsWith('Support')) + return message.util.reply(`${emojis.error} This thread is not a support thread.`); + + const newName = `[Solved] ${message.channel.name}`; + + await message.channel.setName(newName); + await message.util.reply(`${emojis.success} This thread has been marked as solved.`); + + await message.channel.setArchived(true, `${message.author.tag} (${message.author.id}) marked this support thread as solved.`); + } +} -- cgit