-
Notifications
You must be signed in to change notification settings - Fork 59
/
ban.js
59 lines (51 loc) · 2.05 KB
/
ban.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
const Discord = require('discord.js')
const colors = require('../lib/colors.json')
exports.run = async (client, message, args, level) => {
const language = client.getSettings(message.guild.id).language
const lang = require("../lib/languages/" + language + ".json")
try {
const user = message.mentions.users.first()
const settings = client.getSettings(message.guild.id)
const modRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).modRole.toLowerCase())
const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === client.getSettings(message.guild.id).adminRole.toLowerCase())
// Ensure mod/admin roles actually exist
if (!modRole) {
return message.channel.send(lang.NoModRole)
}
if (!adminRole) {
return message.channel.send(lang.NoAdminRole)
}
if (!message.member.roles.cache.has(modRole.id) && !message.member.permissions.has("MANAGE_MESSAGES") && !message.member.roles.cache.has(adminRole.id) && !message.member.permissions.has("ADMINISTRATOR")) {
return message.channel.send(lang.NoPermission)
}
if (user) {
const member = message.guild.member(user)
if (member) {
member.ban(args.slice(1).join(' ')).then(() => {
message.reply(`${lang.SuccessfullyBanned} ${user.tag}!`)
}).catch(err => {
message.reply(lang.UnableToBan)
})
} else {
message.reply(lang.NotInGuild)
}
} else {
message.reply(lang.NoUserSpecified)
}
} catch (err) {
const errors = require('../modules/errors.js')
errors.embedError(err, lang, message)
}
}
exports.conf = {
enabled: true,
aliases: ['b', 'forceban'],
guildOnly: true,
permLevel: 'User'
}
exports.help = {
name: 'ban',
category: 'Moderation',
description: 'Bans the specified user.',
usage: 'ban @<user> [reason]'
}