Files
JefferyBot/main.js
2018-05-20 01:18:47 +01:00

80 lines
2.2 KiB
JavaScript

const Logger = require('./logger');
const Config = require('./config');
const CommandManager = require('./commandmanager');
const http = require('http');
const ping = require('ping');
const fs = require('fs');
const Discord = require('discord.js');
const client = new Discord.Client();
/*checks if config exists*/
if (!fs.existsSync('resources/config.json')) {
Logger.log('Creating the config...');
try {
if (!fs.existsSync('resources/')) {
fs.mkdirSync('resources/');
}
Config.loadDefaults();
Config.writeToFile();
}
catch (e) {
Logger.failed(`Could not create the config: ${e.message}`);
}
}
/*loads config*/
Logger.log('Loading config...');
try {
Config.loadFromFile();
}
catch (e) {
Logger.failed(`Could not load the config: ${e.message}`);
}
/*connects to discord*/
try {
Logger.log("Starting discord client...");
client.login(Config.getconfig().Token);
} catch (e) {
Logger.failed(`Could not connect to discord: ${e.message}`)
}
/*once connected*/
client.on('ready', () => {
client.user.setPresence('online');
client.user.setActivity(Config.getconfig().NowPlaying);
Logger.log(`Logged in as ${client.user.tag}`);
Logger.log('Ready!')
console.log();
});
/*on message event*/
client.on('message', async (message) => {
/*if it starts with prefix*/
if (message.content.startsWith(Config.getconfig().Prefix)) {
Logger.logMSG(message);
var msg = message.content.substring(Config.getconfig().Prefix.length);
var args = msg.split(" ");
/*temp switch statement to manage commands*/
switch (args[0].toUpperCase()) {
case 'PING':
ping.promise.probe("discordapp.com", {
timeout: 10
}).then((output) => {
message.channel.send(`:white_check_mark: \`${output.avg}ms\``);
});
return;
case 'VERSION':
var em = new Discord.RichEmbed();
em.setColor('BLUE');
em.setTitle('Version:');
em.setDescription(Config.getconfig().Version);
message.channel.send(em);
return;
default:
message.channel.send(`:no_entry: \`The command '${args[0]}' does not exist...\``);
break;
}
}
});