forked from Supositware/Haha-Yes
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
const { Listener } = require('discord-akairo');
|
|
const mkdirp = require('mkdirp');
|
|
const fs = require('fs');
|
|
const { errorChannel } = require('../../config.json');
|
|
|
|
class errorListener extends Listener {
|
|
constructor() {
|
|
super('error', {
|
|
emitter: 'commandHandler',
|
|
event: 'error'
|
|
});
|
|
}
|
|
|
|
async exec(error, message, command) {
|
|
console.error(`Error happened on the command: ${command.id}\n${error}\nOn the message: ${message}`);
|
|
const channel = this.client.channels.resolve(errorChannel);
|
|
const errorEmbed = this.client.util.embed()
|
|
.setColor('RED')
|
|
.setTitle('Shit happened!')
|
|
.addField('Command', command.id, true)
|
|
.addField('Error', error, true)
|
|
.addField('Message', message, true);
|
|
|
|
if (message.author) errorEmbed.addField('Author', `${message.author.tag} (${message.author.id})`);
|
|
if (message.guild) errorEmbed.addField('Guild', `${message.guild.name} (${message.guild.id})`);
|
|
|
|
channel.send(errorEmbed);
|
|
|
|
//Get current date
|
|
let today = new Date();
|
|
let dd = today.getDate();
|
|
let mm = today.getMonth() + 1; //January is 0!
|
|
|
|
let yyyy = today.getFullYear();
|
|
if (dd < 10) {
|
|
dd = '0' + dd;
|
|
}
|
|
if (mm < 10) {
|
|
mm = '0' + mm;
|
|
}
|
|
today = dd + '/' + mm + '/' + yyyy;
|
|
//Get current hour
|
|
let time = new Date();
|
|
let currentTime = time.getHours() + '_' + time.getMinutes() + '_' + time.getSeconds();
|
|
//Create folder with current date
|
|
mkdirp(`./error/${today}`, function (err){
|
|
if (err) {
|
|
console.error(err);
|
|
}
|
|
//Create txt with the current time
|
|
fs.writeFile(`./error/${today}/${currentTime}.txt`, `Error happenend on the command: ${command.id}\n${error}\nOn the message: ${message}`, function (err) {
|
|
if (err) {
|
|
console.error(err);
|
|
}
|
|
console.log(`Logged error succesfully in /error/${today}/${currentTime}.txt`);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
module.exports = errorListener; |