mirror of
				https://github.com/keanuplayz/TravBot-v3.git
				synced 2024-08-15 02:33:12 +00:00 
			
		
		
		
	Added BotClient.
This commit is contained in:
		
							parent
							
								
									350c83df83
								
							
						
					
					
						commit
						14da5977b3
					
				
					 3 changed files with 54 additions and 4 deletions
				
			
		|  | @ -2,7 +2,7 @@ | ||||||
|   "name": "d.js-v12-bot", |   "name": "d.js-v12-bot", | ||||||
|   "version": "0.0.1", |   "version": "0.0.1", | ||||||
|   "description": "A Discord bot built on Discord.JS v12", |   "description": "A Discord bot built on Discord.JS v12", | ||||||
|   "main": "index.js", |   "main": "src/index", | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "test": "echo \"Error: no test specified\" && exit 1" |     "test": "echo \"Error: no test specified\" && exit 1" | ||||||
|   }, |   }, | ||||||
|  |  | ||||||
|  | @ -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); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | }; | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| const BotClient = require("./Structures/BotClient"); | const BotClient = require('./Structures/BotClient'); | ||||||
| const config = require("../config.json"); | const config = require('../config.json'); | ||||||
| 
 | 
 | ||||||
| const client = new BotClient(config); | const client = new BotClient(config); | ||||||
| client.login(); | client.login(); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue