diff options
Diffstat (limited to 'src/commands/dev/reloadCommand.ts')
-rw-r--r-- | src/commands/dev/reloadCommand.ts | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/commands/dev/reloadCommand.ts b/src/commands/dev/reloadCommand.ts new file mode 100644 index 0000000..64e5745 --- /dev/null +++ b/src/commands/dev/reloadCommand.ts @@ -0,0 +1,44 @@ +import { BushCommand } from '../../lib/extensions/BushCommand'; +import { stripIndent } from 'common-tags'; +import { Message } from 'discord.js'; +import { CommandInteraction } from 'discord.js'; + +export default class ReloadCommand extends BushCommand { + constructor() { + super('reload', { + aliases: ['reload'], + category: 'dev', + description: { + content: 'Reloads the bot', + usage: 'reload', + examples: ['reload'] + }, + ownerOnly: true, + typing: true + }); + } + + private async getResponse(): Promise<string> { + try { + await this.client.util.shell('yarn rimraf dist/'); + await this.client.util.shell('yarn tsc'); + this.client.commandHandler.reloadAll(); + this.client.listenerHandler.reloadAll(); + this.client.inhibitorHandler.reloadAll(); + return '🔁 Successfully reloaded!'; + } catch (e) { + return stripIndent` + An error occured while reloading: + ${await this.client.util.haste(e.stack)} + `; + } + } + + public async exec(message: Message): Promise<void> { + await message.util.send(await this.getResponse()); + } + + public async execSlash(message: CommandInteraction): Promise<void> { + await message.reply(await this.getResponse()); + } +} |