From 4b66acc01d4eef5b2d67cec9aca0d9fd78de0509 Mon Sep 17 00:00:00 2001 From: mudkipscience Date: Sat, 4 Apr 2020 20:16:05 +1100 Subject: [PATCH] Perm levels fixed, guild create/delete --- commands/eval.js | 2 +- commands/level.js | 4 ++-- commands/ping.js | 2 +- events/guildCreate.js | 3 +-- events/guildDelete.js | 21 +++++++++++++++++++++ events/message.js | 5 ++--- events/ready.js | 12 ++++++++++++ index.js | 1 + models/guild.js | 2 +- util/functions.js | 5 +++-- version.json | 4 ++++ 11 files changed, 49 insertions(+), 12 deletions(-) create mode 100644 events/guildDelete.js create mode 100644 version.json diff --git a/commands/eval.js b/commands/eval.js index 1ea4b5d..a9fde3e 100644 --- a/commands/eval.js +++ b/commands/eval.js @@ -15,7 +15,7 @@ exports.help = { usage: 'eval [code]' } -exports.run = async (client, message, args) => { +exports.run = async (client, message, args, level, settings) => { const hastebin = require('hastebin-gen') const code = args.join(' ') try { diff --git a/commands/level.js b/commands/level.js index 1c53a7f..4e09980 100644 --- a/commands/level.js +++ b/commands/level.js @@ -2,7 +2,7 @@ exports.conf = { enabled: true, guildOnly: false, aliases: ['plevel', 'permlevel'], - permLevel: 'Administrator', + permLevel: 'User', requiredPerms: [], cooldown: 2000 } @@ -14,7 +14,7 @@ exports.help = { usage: 'level' } -exports.run = async (client, message, args, level) => { +exports.run = async (client, message, args, level, settings) => { try { const friendly = client.config.permLevels.find(l => l.level === level).name message.reply(`your permission level is ${level} (${friendly}).`) diff --git a/commands/ping.js b/commands/ping.js index 56c76a7..6384847 100644 --- a/commands/ping.js +++ b/commands/ping.js @@ -14,7 +14,7 @@ exports.help = { usage: 'ping' } -exports.run = async (client, message) => { +exports.run = async (client, message, args, level, settings) => { const msg = await message.channel.send('Pinging...') msg.edit( `Pong! \`${msg.createdTimestamp - message.createdTimestamp}ms\` (💗 \`${Math.round(client.ws.ping)}ms\`)` diff --git a/events/guildCreate.js b/events/guildCreate.js index 40cce63..6903c0f 100644 --- a/events/guildCreate.js +++ b/events/guildCreate.js @@ -5,8 +5,7 @@ module.exports = async (client, guild) => { // Create DB entry for newly joined guild try { const newGuild = { - guildID: guild.id, - guildName: guild.name + guildID: guild.id } await client.createGuild(newGuild) } catch (err) { diff --git a/events/guildDelete.js b/events/guildDelete.js new file mode 100644 index 0000000..80bfa91 --- /dev/null +++ b/events/guildDelete.js @@ -0,0 +1,21 @@ +const Discord = require('discord.js') +module.exports = async (client, guild) => { + if (!guild.available) return + + client.logger.info('Guild left.') + + // Delete this guild's data from our database + try { + await client.deleteGuild(guild) + } catch (err) { + client.logger.error('Failed to delete DB entry for guild: ' + err) + } + + if (client.devmode === false) { + const channel = client.channels.cache.get(client.config.support.serverLogs) + const embed = new Discord.MessageEmbed() + embed.setColor('#9494FF') + embed.setDescription(`Left a server. I'm now in \`${client.guilds.cache.size}\` servers.`) + channel.send(embed) + } +} diff --git a/events/message.js b/events/message.js index 01693fb..acc67ae 100644 --- a/events/message.js +++ b/events/message.js @@ -6,8 +6,7 @@ module.exports = async (client, message) => { } catch (err) { try { const newGuild = { - guildID: message.guild.id, - guildName: message.guild.name + guildID: message.guild.id } await client.createGuild(newGuild) } catch (err) { @@ -37,7 +36,7 @@ module.exports = async (client, message) => { if (message.guild && !message.member) await message.guild.fetchMember(message.author) - const level = client.permlevel(message) + const level = client.permlevel(message, settings) const cmd = client.commands.get(command) || client.commands.get(client.aliases.get(command)) if (!cmd) return diff --git a/events/ready.js b/events/ready.js index 02d66b7..2f581a2 100644 --- a/events/ready.js +++ b/events/ready.js @@ -1,3 +1,15 @@ module.exports = (client) => { + const activities = client.commands.keyArray() + let activity = activities.random() + + client.user.setActivity(`${client.config.defaultGuildSettings.prefix + activity} | v${client.version.number}`, { type: 'PLAYING' }) + + setInterval(() => { + activity = activities.random() + if (client.lockActivity === false) { + client.user.setActivity(`${client.config.defaultGuildSettings.prefix + activity} | v${client.version.number}`, { type: 'PLAYING' }) + }; + }, 30000) + client.logger.ready('Connected to Discord as ' + client.user.tag) } diff --git a/index.js b/index.js index 1340dda..9287de0 100644 --- a/index.js +++ b/index.js @@ -44,6 +44,7 @@ client.cooldown = new Discord.Collection() client.aliases = new Discord.Collection() client.config = require('./config') +client.version = require('./version.json') client.db = require('./util/mongoose') require('./util/functions')(client) require('./util/music')(client) diff --git a/models/guild.js b/models/guild.js index d565018..f29838a 100644 --- a/models/guild.js +++ b/models/guild.js @@ -24,6 +24,6 @@ module.exports = mongoose.model('Guild', new Schema({ adminRole: { type: String, - default: defaults.modRole + default: defaults.adminRole } })) diff --git a/util/functions.js b/util/functions.js index d5922b4..05c0dc4 100644 --- a/util/functions.js +++ b/util/functions.js @@ -3,15 +3,16 @@ const Guild = require('../models/guild') module.exports = client => { // Permission level function - client.permlevel = message => { + client.permlevel = (message, settings) => { let permlvl = 0 const permOrder = client.config.permLevels.slice(0).sort((p, c) => p.level < c.level ? 1 : -1) + console.log(permOrder) while (permOrder.length) { const currentLevel = permOrder.shift() if (message.guild && currentLevel.guildOnly) continue - if (currentLevel.check(message)) { + if (currentLevel.check(message, settings)) { permlvl = currentLevel.level break } diff --git a/version.json b/version.json new file mode 100644 index 0000000..e1cffe8 --- /dev/null +++ b/version.json @@ -0,0 +1,4 @@ +{ + "number": "2.0", + "changelog": "uwu" +} \ No newline at end of file