From d662ed636688fa0dcf47f4944d4aefced529362b Mon Sep 17 00:00:00 2001 From: plane000 Date: Mon, 21 May 2018 11:34:33 +0100 Subject: [PATCH] Added all rule commands and dog command --- commandmanager.js | 1 + commands/commands.js | 17 ++++++++-- commands/rulecommands.js | 71 +++++++++++++++++++++++++++++++++++----- config.js | 2 +- main.js | 13 ++++---- 5 files changed, 86 insertions(+), 18 deletions(-) diff --git a/commandmanager.js b/commandmanager.js index ea2775d..443793b 100644 --- a/commandmanager.js +++ b/commandmanager.js @@ -31,6 +31,7 @@ module.exports.loadCommands = function() { addCommand('Version', 'version', undefined, 'version', 'returns the version', false, Commands.version); addCommand('Ping', 'ping', undefined, 'ping', 'returns round trip to discords servers', false, Commands.ping); addCommand('Cat', 'cat', undefined, 'cat', 'returns a picture of a cat', false, Commands.cat); + addCommand('Dog', 'dog', undefined, 'dog', 'returns a picture of a dog', false, Commands.dog); //rule commands addCommand('Rules', 'rules', undefined, 'rules', 'returns all the rules for the server the command was issued on', false, RuleCommands.rules); diff --git a/commands/commands.js b/commands/commands.js index 7092f6a..22887d6 100644 --- a/commands/commands.js +++ b/commands/commands.js @@ -27,8 +27,8 @@ module.exports.ping = async function(message, msg, args, discordclient) { } module.exports.cat = async function(message, msg, args, discordclient) { - var input = 'http://thecatapi.com/api/images/get?format=xml&results_per_page=1&api_key=MzA1Njcz'; - var result = await Helper.requestPromise(input); + var url = 'http://thecatapi.com/api/images/get?format=xml&results_per_page=1&api_key=MzA1Njcz'; + var result = await Helper.requestPromise(url); var output = result.match(/(.*?)<\/url>/)[1]; var em = new Discord.RichEmbed(); @@ -38,5 +38,16 @@ module.exports.cat = async function(message, msg, args, discordclient) { } module.exports.dog = async function(message, msg, args, discordclient) { - + var url = 'https://dog.ceo/api/breeds/image/random'; + try { + var result = await Helper.requestPromise(url); + var output = JSON.parse(result).message; + } catch (e) { + message.channel.send(`:no_entry_sign: \`Somthing went wrong\``); + return; + } + var em = new Discord.RichEmbed(); + em.setColor('BLUE'); + em.setImage(output); + message.channel.send(em); } diff --git a/commands/rulecommands.js b/commands/rulecommands.js index 419bee8..8f7064f 100644 --- a/commands/rulecommands.js +++ b/commands/rulecommands.js @@ -4,7 +4,6 @@ const fs = require('fs'); const Config = require('../config.js'); const Helper = require('../helper.js'); - /*message object, messaage full, message args, discord client*/ module.exports.rules = async function(message, msg, args, discordclient) { @@ -30,8 +29,8 @@ module.exports.rule = async function(message, msg, args, discordclient) { var serversConfig = Config.getservers(); var Rules = serversConfig[serverID].rules; - var rule = Rules[args[1]]; try { + var rule = Rules[args[1]]; message.channel.send(`Rule ${args[1]}: ${rule}`); } catch (e) { message.channel.send(`:no_entry_sign: \`That is not a valid rule\``) @@ -39,22 +38,78 @@ module.exports.rule = async function(message, msg, args, discordclient) { } module.exports.addrule = async function(message, msg, args, discordclient) { + var serverName = message.guild.name; var serverID = message.guild.id; - var serversConfig = Config.getservers; - message.channel.send(`AddRule`); + var serversConfig = Config.getservers(); + var Rules = serversConfig[serverID].rules; + var newRule = args[1] + ' '; + for (var i = 2; i < args.length; i++) { + newRule += args[i] + ' '; + } + + try { + Rules.push(newRule); + serversConfig[serverID].rules = Rules; + Config.writeToFile(); + } catch (e) { + message.channel.send(`:no_entry_sign: \`Somthing went wrong\``); + return; + } + + var em = new Discord.RichEmbed(); + em.setColor('BLUE'); + em.setTitle('Rule successfully added!'); + em.addField(`Rule ${Rules.length - 1}:`, newRule); + message.channel.send(em); } module.exports.delrule = async function(message, msg, args, discordclient) { + var serverName = message.guild.name; var serverID = message.guild.id; - var serversConfig = Config.getservers; - message.channel.send(`DelRule`); + var serversConfig = Config.getservers(); + var Rules = serversConfig[serverID].rules; + var toDelete = args[1]; + + try { + Rules.splice(toDelete, 1); + serversConfig[serverID].rules = Rules; + Config.writeToFile(); + } catch (e) { + message.channel.send(`:no_entry_sign: \`That is not a valid rule\``) + return; + } + + var em = new Discord.RichEmbed(); + em.setColor('BLUE'); + em.setTitle('Rule successfully deleted!'); + em.addField(`Rule ${toDelete} deleted`, 'All subsiquent rules pushed one space to the left'); + message.channel.send(em); } module.exports.editrule = async function(message, msg, args, discordclient) { + var serverName = message.guild.name; var serverID = message.guild.id; - var serversConfig = Config.getservers; - message.channel.send(`EditRule`); + var serversConfig = Config.getservers(); + var Rules = serversConfig[serverID].rules; + var newRule = args[2] + ' '; + for (var i = 3; i < args.length; i++) { + newRule += args[i] + ' '; + } + + try { + Rules[args[1]] = newRule; + serversConfig[serverID].rules = Rules; + Config.writeToFile(); + } catch (e) { + message.channel.send(`:no_entry_sign: \`That is not a valid rule\``) + return; + } + var em = new Discord.RichEmbed(); + em.setColor('BLUE'); + em.setTitle('Rule successfully edited!'); + em.addField(`Rule ${args[1]}:`, newRule); + message.channel.send(em); } diff --git a/config.js b/config.js index 3be8e9c..ca44392 100644 --- a/config.js +++ b/config.js @@ -22,7 +22,7 @@ module.exports.setservers = function(con) { module.exports.addServer = function(guild) { servers[guild.id] = { name: guild.name, - rules: [], + rules: ["Oh yeah, arrays start at 0"], adminroles: [] } } diff --git a/main.js b/main.js index ffe93d5..4364805 100644 --- a/main.js +++ b/main.js @@ -88,8 +88,9 @@ client.on('message', async (message) => { /*if it starts with prefix loaded from config*/ if (message.content.startsWith(Config.getconfig().Prefix)) { Logger.logMSG(message); - var msg = message.content.toLowerCase().substring(Config.getconfig().Prefix.length).toLowerCase(); - var args = msg.toLowerCase().split(" "); + var msg = message.content.toLowerCase().substring(Config.getconfig().Prefix.length); + var args = message.content.substring(Config.getconfig().Prefix.length).split(" "); + args[0] = args[0].toLowerCase(); /*command manager checks if command exists*/ if (CommandManager.commands[args[0]]) { @@ -103,12 +104,12 @@ client.on('message', async (message) => { /*on join server event*/ client.on('guildCreate', async (guild) => { - Logger.log(`JefferyBot was invited to the ${guild.name} server!`); + Logger.log(`JefferyBot was invited to the \'${guild.name}\' server!`); try { - Logger.log(`Setting up the config for ${guild.name}`) + Logger.log(`Setting up the config for \'${guild.name}\'`) Config.addServer(guild); Config.writeToFile(); - Logger.success(`Set up the config for the ${guild.name} server`) + Logger.success(`Set up the config for the \'${guild.name}\' server`) } catch (e) { Logger.failed('Could not set up the server config'); } @@ -116,7 +117,7 @@ client.on('guildCreate', async (guild) => { /*on leave server event*/ client.on('guildDelete', async (guild) => { - Logger.log(`JefferyBot left the ${guild.name} server!`) + Logger.log(`JefferyBot left the \'${guild.name}\' server!`) }); client.on('error', async (error) => {