aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Plugins/settings.js65
-rw-r--r--bot.js2
-rw-r--r--commands/Moderation/setLogs.js36
-rw-r--r--events/guildMemberAdd.js16
-rw-r--r--events/guildMemberRemove.js8
-rw-r--r--events/messageDelete.js7
-rw-r--r--events/messageDeleteBulk.js5
-rw-r--r--events/messageUpdate.js5
8 files changed, 122 insertions, 22 deletions
diff --git a/Plugins/settings.js b/Plugins/settings.js
new file mode 100644
index 0000000..d458c9c
--- /dev/null
+++ b/Plugins/settings.js
@@ -0,0 +1,65 @@
+/** **************************************
+ *
+ * Settings: Plugin for PokeBot that enables settings features.
+ * Copyright (C) 2018 TheEdge, jtsshieh, Alee
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ * *************************************/
+
+const db = require('quick.db');
+exports.getInt = async (key, guildID) => {
+ const value = await db.fetch(`settings_${guildID}_${key}`);
+ if (value) {
+ return value;
+ }
+ else {
+ await db.set(`settings_${guildID}_${key}`, 0);
+ return await db.fetch(`settings_${guildID}_${key}`);
+ }
+};
+
+exports.getStr = async (key, guildID) => {
+ const value = await db.fetch(`settings_${guildID}_${key}`);
+ if (value) {
+ return value;
+ }
+ else {
+ await db.set(`settings_${guildID}_${key}`, '');
+ return await db.fetch(`settings_${guildID}_${key}`);
+ }
+};
+
+exports.getBool = async (key, guildID) => {
+ const value = await db.fetch(`settings_${guildID}_${key}`);
+ if (value) {
+ return value;
+ }
+ else {
+ await db.set(`settings_${guildID}_${key}`, false);
+ return await db.fetch(`settings_${guildID}_${key}`);
+ }
+};
+
+exports.setInt = async (key, value, guildID) => {
+ await db.set(`settings_${guildID}_${key}`, parseInt(value));
+};
+
+exports.setStr = async (key, value, guildID) => {
+ await db.set(`settings_${guildID}_${key}`, value);
+};
+
+exports.setBool = async (key, value, guildID) => {
+ await db.set(`settings_${guildID}_${key}`, (value == true));
+};
diff --git a/bot.js b/bot.js
index f97343f..42e29c1 100644
--- a/bot.js
+++ b/bot.js
@@ -7,7 +7,7 @@ bot.commands = new Discord.Collection();
bot.aliases = new Discord.Collection();
bot.categories = new Discord.Collection();
bot.queue = new Discord.Collection();
-bot.plugins = { music : require('./Plugins/Music.js') , economy : require('./Plugins/Economy.js')};
+bot.plugins = { music : require('./Plugins/Music.js') , economy : require('./Plugins/Economy.js'), settings : require('./Plugins/settings.js')};
cmdLoader();
async function cmdLoader() {
diff --git a/commands/Moderation/setLogs.js b/commands/Moderation/setLogs.js
new file mode 100644
index 0000000..a354085
--- /dev/null
+++ b/commands/Moderation/setLogs.js
@@ -0,0 +1,36 @@
+/** **************************************
+ *
+ * Set Log: Plugin for PokeBot that performs moderation actions.
+ * Copyright (C) 2018 TheEdge, jtsshieh, Alee
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ * *************************************/
+
+exports.run = async (bot, msg, args) => {
+ if (!msg.member.hasPermission('MANAGE_MESSAGES')) return msg.reply('You don\'t have permission to manage messages.');
+ bot.plugins.settings.setStr('logs', args[0], msg.guild.id);
+ msg.reply('Alright, I have set the log channel to ' + args[0]);
+};
+
+exports.conf = {
+ aliases: [],
+ guildOnly: true,
+};
+
+exports.help = {
+ name: 'setLogs',
+ description: 'Set\'s the Log Channel.',
+ usage: '<channelID>',
+};
diff --git a/events/guildMemberAdd.js b/events/guildMemberAdd.js
index f324e73..20b61b6 100644
--- a/events/guildMemberAdd.js
+++ b/events/guildMemberAdd.js
@@ -18,10 +18,10 @@
*
* *************************************/
-module.exports = (bot, member) => {
+module.exports = async (bot, member) => {
const { RichEmbed } = require('discord.js');
- bot.channels.find('name', 'welcome').send(`Welcome to the server **${member.user.tag}**! Make sure to read the rules! We now have ${member.guild.memberCount} members.`);
- bot.channels.find('name', 'logs').send(
+ const logChannel = await bot.plugins.settings.getStr('logs', member.guild.id);
+ bot.channels.find('id', logChannel).send(
new RichEmbed()
.setColor(0x00ae86)
.setTitle(`:arrow_right: ${member.user.tag}`)
@@ -31,14 +31,8 @@ module.exports = (bot, member) => {
.setTimestamp()
.setFooter(member.user.tag, member.user.avatarURL)
);
+ if (member.guild.id != '417088992329334792') return;
+ bot.channels.find('name', 'welcome').send(`Welcome to the server **${member.user.tag}**! Make sure to read the rules! We now have ${member.guild.memberCount} members.`);
const role = member.guild.roles.find('name', 'Trainers');
member.addRole(role);
-
- const DMMember = 'Hello, Alee is still working on this feature...';
- member.user.send(
- new RichEmbed()
- .setColor(0x00ae86)
- .setTitle('Pokebot')
- .setDescription(DMMember)
- );
};
diff --git a/events/guildMemberRemove.js b/events/guildMemberRemove.js
index 2fc1760..7693372 100644
--- a/events/guildMemberRemove.js
+++ b/events/guildMemberRemove.js
@@ -18,10 +18,10 @@
*
* *************************************/
-module.exports = (bot, member) => {
+module.exports = async (bot, member) => {
const { RichEmbed } = require('discord.js');
- bot.channels.find('name', 'welcome').send(`**${member.user.tag}** just left. We now have ${member.guild.memberCount} members left. Aww man...`);
- bot.channels.find('name', 'logs').send(
+ const logChannel = await bot.plugins.settings.getStr('logs', member.guild.id);
+ bot.channels.find('id', logChannel).send(
new RichEmbed()
.setColor(0x00ae86)
.setTitle(`:arrow_left: ${member.user.tag}`)
@@ -32,4 +32,6 @@ module.exports = (bot, member) => {
.setTimestamp()
.setFooter(member.user.tag, member.user.avatarURL)
);
+ if (member.guild.id != '417088992329334792') return;
+ bot.channels.find('name', 'welcome').send(`**${member.user.tag}** just left. We now have ${member.guild.memberCount} members left. Aww man...`);
};
diff --git a/events/messageDelete.js b/events/messageDelete.js
index 627b2e0..2823e7f 100644
--- a/events/messageDelete.js
+++ b/events/messageDelete.js
@@ -18,9 +18,9 @@
*
* *************************************/
-module.exports = (bot, msg) => {
+module.exports = async (bot, msg) => {
const { RichEmbed } = require('discord.js');
- if(!msg.content) return;
+ if (!msg.content) return;
try {
const embed = new RichEmbed()
.setColor(0x00ae86)
@@ -29,7 +29,8 @@ module.exports = (bot, msg) => {
.addField('Deleted Message', msg.content)
.setTimestamp()
.setFooter(`Deleted message orginally created by: ${msg.author.tag}`, msg.author.avatarURL);
- msg.guild.channels.find('name', 'logs').send({ embed });
+ const logChannel = await bot.plugins.settings.getStr('logs', msg.guild.id);
+ msg.guild.channels.find('id', logChannel).send({ embed });
}
catch (err) {
console.error(err.stack);
diff --git a/events/messageDeleteBulk.js b/events/messageDeleteBulk.js
index 1a5d1d1..0d0c345 100644
--- a/events/messageDeleteBulk.js
+++ b/events/messageDeleteBulk.js
@@ -18,7 +18,7 @@
*
* *************************************/
-module.exports = (bot, msgs) => {
+module.exports = async (bot, msgs) => {
const { RichEmbed } = require('discord.js');
try {
const embed = new RichEmbed()
@@ -27,7 +27,8 @@ module.exports = (bot, msgs) => {
.setDescription(`${msgs.size} messages in *${msgs.first().channel}* were bulk deleted.`)
.setTimestamp()
.setFooter('Messages purged');
- msgs.first().guild.channels.find('name', 'logs').send({ embed });
+ const logChannel = await bot.plugins.settings.getStr('logs', msgs.first().guild.id);
+ msgs.first().guild.channels.find('id', logChannel).send({ embed });
}
catch (err) {
console.error(err.stack);
diff --git a/events/messageUpdate.js b/events/messageUpdate.js
index 59133cb..ed0565b 100644
--- a/events/messageUpdate.js
+++ b/events/messageUpdate.js
@@ -18,7 +18,7 @@
*
* *************************************/
-module.exports = (bot, oldMsg, newMsg) => {
+module.exports = async (bot, oldMsg, newMsg) => {
const { RichEmbed } = require('discord.js');
if (oldMsg.content == newMsg.content) return;
try {
@@ -30,7 +30,8 @@ module.exports = (bot, oldMsg, newMsg) => {
.addField('New Message', newMsg.content)
.setTimestamp()
.setFooter(`Edited message originally created by: ${oldMsg.author.tag}`, oldMsg.author.avatarURL);
- newMsg.guild.channels.find('name', 'logs').send({ embed });
+ const logChannel = await bot.plugins.settings.getStr('logs', oldMsg.guild.id);
+ newMsg.guild.channels.find('id', logChannel).send({ embed });
}
catch (err) {
console.error(err.stack);