require("dotenv").config(); require('./util'); global.config = require('./config'); if (config.testmode) console.log('TEST MODE'); global.exitHook = require('async-exit-hook'); global.Discord = require('discord.js'); global.fs = require('fs'); global.dClient = new Discord.Client({ disableMentions: 'everyone', restRequestTimeout: 5*60*1000 }); // error handling { let webhook = new Discord.WebhookClient(config.webhooks.error[0], config.webhooks.error[1]); global.onError = function logError(error, title) { let msg = error && (error.stack || error.message || error); console.error(title + ':\n', msg); try { webhook.send(`${title ? `**${title}:**` : ""}\`\`\`\n${msg}\n\`\`\``).catch(()=>{}); } catch(e) {} } process.on('unhandledRejection', error => onError(error, "Unhandled Rejection")); exitHook.uncaughtExceptionHandler(error => onError(error, "Uncaught Exception")); dClient.on('error', error => onError(error, "Discord Client Error")); dClient.on('warn', error => onError(error, "Discord Client Warning")); } dClient.login(config.DISCORD_TOKEN); dClient.once('ready', () => { console.log('Discord Client Ready'); dClient.defaultGuild = dClient.guilds.resolve(config.guildID); require('./local_events'); require('./commands'); require('./mppbridger'); require('./misc'); require('./ddpbridge'); require('./prbridge'); });