// import { TextChannel } from 'discord.js'; // import { BushClient } from '../extensions/BushClient'; // import chalk from 'chalk'; // export class Logger { // private client: BushClient; // public constructor(client: BushClient) { // this.client = client; // } // private stripColor(text: string): string { // return text.replace( // // eslint-disable-next-line no-control-regex // /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, // '' // ); // } // public getChannel(channel: 'log' | 'error' | 'dm'): Promise { // return this.client.channels.fetch(this.client.config.channels[channel]) as Promise; // } // public async log(message: string, sendChannel = false): Promise { // console.log(chalk`{bgCyan LOG} ` + message); // if (sendChannel) { // const channel = await this.getChannel('log'); // await channel.send('[LOG] ' + this.stripColor(message)); // } // } // public async verbose(message: string, sendChannel = false): Promise { // if (!this.client.config.verbose) return; // console.log(chalk`{bgMagenta VERBOSE} ` + message); // if (sendChannel) { // const channel = await this.getChannel('log'); // await channel.send('[VERBOSE] ' + this.stripColor(message)); // } // } // public async error(message: string, sendChannel = false): Promise { // console.log(chalk`{bgRed ERROR} ` + message); // if (sendChannel) { // const channel = await this.getChannel('error'); // await channel.send('[ERROR] ' + this.stripColor(message)); // } // } // }