aboutsummaryrefslogtreecommitdiff
path: root/src/commands/owner/reload.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/owner/reload.ts')
-rw-r--r--src/commands/owner/reload.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/commands/owner/reload.ts b/src/commands/owner/reload.ts
new file mode 100644
index 0000000..2311424
--- /dev/null
+++ b/src/commands/owner/reload.ts
@@ -0,0 +1,34 @@
+import { BotCommand } from '../../lib/extensions/BotCommand';
+import { stripIndent } from 'common-tags';
+import { BotMessage } from '../../lib/extensions/BotMessage';
+
+export default class ReloadCommand extends BotCommand {
+ constructor() {
+ super('reload', {
+ aliases: ['reload'],
+ description: {
+ content: 'Reloads the bot',
+ usage: 'reload',
+ examples: ['reload']
+ },
+ ownerOnly: true,
+ typing: true
+ });
+ }
+
+ public async exec(message: BotMessage): Promise<void> {
+ 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();
+ await message.util.send('🔁 Successfully reloaded!');
+ } catch (e) {
+ await message.util.send(stripIndent`
+ An error occured while reloading:
+ ${await this.client.util.haste(e.stack)}
+ `);
+ }
+ }
+}