From 4648caa22725bbcc6e0f8a25f521b545b4563949 Mon Sep 17 00:00:00 2001 From: Alee Date: Fri, 20 Apr 2018 16:58:07 -0400 Subject: Custom prefixes! --- bot_discord.js | 18 +++++++++++++++--- commands/changelog.js | 2 +- commands/setprefix.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 6 +++--- storage/prefixes.json | 1 + storage/settings.json | 2 +- update_dep.bat | 4 ++++ 7 files changed, 73 insertions(+), 8 deletions(-) create mode 100644 commands/setprefix.js create mode 100644 storage/prefixes.json create mode 100644 update_dep.bat diff --git a/bot_discord.js b/bot_discord.js index fd14c49..9252e3d 100644 --- a/bot_discord.js +++ b/bot_discord.js @@ -35,7 +35,7 @@ const log = message => { }; -console.log('AleeBot: Copyright (C) 2018 AleeCorp'); +console.log(`AleeBot ${settings.abVersion}: Copyright (C) 2018 AleeCorp`); console.log('This program comes with ABSOLUTELY NO WARRANTY; for details type `show w\'.'); console.log ('This is free software, and you are welcome to redistribute it'); console.log ('under certain conditions; type `show c\' for details.\n') @@ -126,8 +126,20 @@ client.on('guildDelete', guild => { client.on('message', (msg) => { if (msg.author.bot) return; - if (!msg.content.startsWith(settings.prefix)) return; - const args = msg.content.slice(settings.prefix.length).trim().split(/ +/g); + + let prefixes = JSON.parse(fs.readFileSync("./storage/prefixes.json", "utf8")); + + if(!prefixes[msg.guild.id]){ + prefixes[msg.guild.id] = { + prefixes: settings.prefix + }; + } + + let prefix = prefixes[msg.guild.id].prefixes + + + if (!msg.content.startsWith(prefix)) return; + const args = msg.content.slice(prefix.length).trim().split(/ +/g); const command = args.shift(); let cmd; diff --git a/commands/changelog.js b/commands/changelog.js index d719b53..d5d9584 100644 --- a/commands/changelog.js +++ b/commands/changelog.js @@ -22,7 +22,7 @@ module.exports.run = async (client, message) => { const embed = new Discord.RichEmbed() .setAuthor('AleeBot ' + require('../storage/settings.json').abVersion + ' Changelog', 'https://cdn.discordapp.com/avatars/282547024547545109/6c147a444ae328c38145ef1f74169e38.png?size=2048') .setDescription('What\'s new in AleeBot '+ require('../storage/settings.json').abVersion +'?') - .addField('1. Suggest a feature for AleeBot!', 'You can now suggest a feature for AleeBot!') + .addField('1. Setting a custom prefix for AleeBot!', 'We\'ve finally did it! You can now set a prefix!') .setColor('#1fd619'); message.channel.send({embed}); diff --git a/commands/setprefix.js b/commands/setprefix.js new file mode 100644 index 0000000..876f6e6 --- /dev/null +++ b/commands/setprefix.js @@ -0,0 +1,48 @@ +/**************************************** + * + * SetPrefix: Command for AleeBot + * Copyright (C) 2018 AleeCorp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * *************************************/ +module.exports.run = async (client, message, args) => { + const fs = require('fs'); + if(!message.member.hasPermission("ADMINISTRATOR")) return message.reply('Sorry you need admin to set my prefix') + if(!args[0] || args[0 == "help"]) return message.reply('Usage: ab:setprefix ') + + let prefixes = JSON.parse(fs.readFileSync("./storage/prefixes.json", "utf8")); + + prefixes[message.guild.id] = { + prefixes: args[0] + }; + + fs.writeFile("./storage/prefixes.json", JSON.stringify(prefixes), (err) =>{ + if (err) log(err) + }) + + message.reply(`AleeBot's Prefix in this guild is now \`${args[0]}\``); + }; + + exports.conf = { + aliases: [], + guildOnly: true, + }; + exports.help = { + name: 'setprefix', + description: 'Sets the guild prefix.', + usage: 'setprefix [prefix]', + category: '- General Commands', + }; + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 5ff0816..82225ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,9 +53,9 @@ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "moment": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.0.tgz", - "integrity": "sha512-1muXCh8jb1N/gHRbn9VDUBr0GYb8A/aVcHlII9QSB68a50spqEVLIGN6KVmCOnSvJrUhC0edGgKU5ofnGXdYdg==" + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz", + "integrity": "sha512-shJkRTSebXvsVqk56I+lkb2latjBs8I+pc2TzWc545y2iFnSjm7Wg0QMh+ZWcdSLQyGEau5jI8ocnmkyTgr9YQ==" }, "nan": { "version": "2.7.0", diff --git a/storage/prefixes.json b/storage/prefixes.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/storage/prefixes.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/storage/settings.json b/storage/settings.json index 2342656..9ab6590 100644 --- a/storage/settings.json +++ b/storage/settings.json @@ -1,4 +1,4 @@ { - "abVersion": "2.8.1", + "abVersion": "2.8.2", "prefix": "ab:" } diff --git a/update_dep.bat b/update_dep.bat new file mode 100644 index 0000000..7b993ec --- /dev/null +++ b/update_dep.bat @@ -0,0 +1,4 @@ +@echo off +title Installing/Updating Dependencies +npm install +exit \ No newline at end of file -- cgit v1.2.3