50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
const { AkairoClient, CommandHandler, ListenerHandler } = require('discord-akairo');
|
|
const LanguageHandler = require('./LanguageHandler');
|
|
const path = require('path');
|
|
|
|
class CompilerClient extends AkairoClient {
|
|
constructor(config) {
|
|
super({
|
|
ownerID: config.owner
|
|
}, {
|
|
disabledEveryone: true,
|
|
disabledEvents: ['TYPING_START']
|
|
});
|
|
|
|
this.commandHandler = new CommandHandler(this, {
|
|
directory: path.join(__dirname, '../commands'),
|
|
prefix: config.prefix,
|
|
allowMention: true,
|
|
commandUtil: true,
|
|
commandUtilLifetime: 3e5,
|
|
handleEdits: true
|
|
});
|
|
|
|
this.listenerHandler = new ListenerHandler(this, {
|
|
directory: path.join(__dirname, '../listeners')
|
|
});
|
|
|
|
this.languageHandler = new LanguageHandler(this, {
|
|
directory: path.join(__dirname, '../languages')
|
|
});
|
|
|
|
this.config = config;
|
|
}
|
|
|
|
async start() {
|
|
this.commandHandler.useListenerHandler(this.listenerHandler);
|
|
this.listenerHandler.setEmitters({
|
|
commandHandler: this.commandHandler,
|
|
listenerHandler: this.listenerHandler,
|
|
languageHandler: this.languageHandler
|
|
});
|
|
|
|
this.commandHandler.loadAll();
|
|
this.listenerHandler.loadAll();
|
|
this.languageHandler.loadAll();
|
|
await this.languageHandler.buildDocker();
|
|
return this.login(this.config.token);
|
|
}
|
|
}
|
|
|
|
module.exports = CompilerClient;
|