Perm levels fixed, guild create/delete

This commit is contained in:
Emily 2020-04-04 20:16:05 +11:00
parent a82c054ce3
commit 4b66acc01d
11 changed files with 49 additions and 12 deletions

View File

@ -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 {

View File

@ -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}).`)

View File

@ -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\`)`

View File

@ -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) {

21
events/guildDelete.js Normal file
View File

@ -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)
}
}

View File

@ -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

View File

@ -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)
}

View File

@ -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)

View File

@ -24,6 +24,6 @@ module.exports = mongoose.model('Guild', new Schema({
adminRole: {
type: String,
default: defaults.modRole
default: defaults.adminRole
}
}))

View File

@ -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
}

4
version.json Normal file
View File

@ -0,0 +1,4 @@
{
"number": "2.0",
"changelog": "uwu"
}