diff --git a/bot.js b/bot.js new file mode 100644 index 0000000..4a54896 --- /dev/null +++ b/bot.js @@ -0,0 +1,32 @@ +var Discordie = require('discordie'); // Requite Discord Libraries +var log4js = require('log4js'); // Require log4js for logging to files +var config = require('./config.json'); // require custom settings + +// Configure log4js +log4js.configure({ + appenders: [ + { type: 'console' }, + { type: 'file', filename: 'logs/console.log', category: 'console'}, + { type: 'file', filename: 'logs/activeusers.log', category: 'activeusers'}, + { type: 'file', filename: 'logs/channels.log', category: 'channels'} + ] +}); + +const Events = Discordie.Events; +const client = new Discordie(); + +client.connect({ + token: config.bot_token +}); + +client.Dispatcher.on(Events.GATEWAY_READY, e => { + var logcon = log4js.getLogger('console'); + var actcon = log4js.getLogger('activeusers'); + logcon.info('Connected as: ' + client.User.username); + setInterval(function() {actcon.info(config.guild_name + " Active Users: " + client.Users.onlineMembersForGuild(config.guild_id).length);}, 30000) +}); + +client.Dispatcher.on(Events.MESSAGE_CREATE, e => { + var chancon = log4js.getLogger('channels'); + chancon.info(e.message.guild.name + ":" + " #" + e.message.channel.name + ": " + "<" + e.message.displayUsername + ">: "+ e.message.content); +}); diff --git a/config.json.example b/config.json.example new file mode 100644 index 0000000..7e5675b --- /dev/null +++ b/config.json.example @@ -0,0 +1,5 @@ +{ + "bot_token": "", + "guild_id": "", + "guild_name": "" +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b9ce148 --- /dev/null +++ b/package.json @@ -0,0 +1,11 @@ +{ + "name": "discord-stats-bot", + "version": "1.0.0", + "description": "Discord Stats Bot (for exporting into ELK or other centralized logging)", + "main": "bot.js", + "scripts": { + "bot": "nodemon bot.js" + }, + "author": "Matt Burchett", + "license": "MIT" +}