33 lines
1.4 KiB
JavaScript
33 lines
1.4 KiB
JavaScript
const DayzR = require('./structures/DayzRBot');
|
|
const config = require('./config/config');
|
|
const { GatewayIntentBits } = require('discord.js');
|
|
|
|
const path = require("path");
|
|
const fs = require('fs');
|
|
const { HandleActivePlayersList } = require('./util/LogsHandler');
|
|
|
|
// Log all uncaught exceptions before killing process.
|
|
process.on('uncaughtException', async (error) => {
|
|
let d = new Date();
|
|
// Asynchronously write the error message to a log file using Promises
|
|
await new Promise((resolve, reject) => {
|
|
if (HandleActivePlayersList.lastSendMessage) HandleActivePlayersList.lastSendMessage.delete().catch(error => client.sendError(channel, `HandleActivePlayersList Error: \n${error}`)); // Remove previous embed message before closing
|
|
fs.appendFile(path.join(__dirname, "./logs/Logs.log"),
|
|
`{"level":"error","message":"${d.getHours()}:${d.getMinutes()} - ${d.getMonth()+1}:${d.getDate()}:${d.getFullYear()} | uncaughtException: ${error.stack}"}`, (logErr) => {
|
|
if (logErr) {
|
|
console.error('Error writing uncaughtException to log file:', logErr);
|
|
reject(logErr);
|
|
process.exit()
|
|
} else {
|
|
resolve();
|
|
}
|
|
});
|
|
});
|
|
|
|
// Now gracefully close the program
|
|
process.exit()
|
|
});
|
|
|
|
let client = new DayzR({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.GuildMembers] }, config);
|
|
client.build()
|