Added BotClient.

This commit is contained in:
Keanu Timmermans 2020-05-21 20:44:53 +02:00
parent 350c83df83
commit 14da5977b3
3 changed files with 54 additions and 4 deletions

View file

@ -2,7 +2,7 @@
"name": "d.js-v12-bot",
"version": "0.0.1",
"description": "A Discord bot built on Discord.JS v12",
"main": "index.js",
"main": "src/index",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},

View file

@ -0,0 +1,50 @@
const { Client } = require('discord.js');
module.exports = class BotClient extends Client {
constructor(options = {}) {
super({
disableMentions: 'everyone'
});
this.validate(options);
this.once('ready', () => {
console.log(`Logged in as ${this.user.username}.`);
});
this.on('message', async (message) => {
const mentionRegex = RegExp(`^<@!${this.user.id}>$`);
const mentionRegexPrefix = RegExp(`^<@!${this.user.id}> `);
if (!message.guild || message.author.bot) return;
if (message.content.match(mentionRegex)) message.channel.send(`My prefix for ${message.guild.name} is \`${this.prefix}\`.`);
const prefix = message.content.match(mentionRegexPrefix) ?
message.content.match(mentionRegexPrefix)[0] : this.prefix;
// eslint-disable-next-line no-unused-vars
const [cmd, ...args] = message.content.slice(prefix.length).trim().split(/ +/g);
if (cmd.toLowerCase() === 'hello') {
message.channel.send('Hello!');
}
});
}
validate(options) {
if (typeof options !== 'object') throw new TypeError('Options should be a type of Object.');
if (!options.token) throw new Error('You must pass a token for the client.');
this.token = options.token;
if (!options.prefix) throw new Error('You must pass a prefix for the client.');
if (typeof options.prefix !== 'string') throw new TypeError('Prefix should be a type of String.');
this.prefix = options.prefix;
}
async login(token = this.token) {
super.login(token);
}
};

View file

@ -1,5 +1,5 @@
const BotClient = require("./Structures/BotClient");
const config = require("../config.json");
const BotClient = require('./Structures/BotClient');
const config = require('../config.json');
const client = new BotClient(config);
client.login();
client.login();