forked from embee/woomy
124 lines
3.9 KiB
JavaScript
124 lines
3.9 KiB
JavaScript
exports.run = async (client, message, [action, ...member]) => {
|
|
const settings = message.settings;
|
|
|
|
if(settings.blacklisted == "ARRAY") {
|
|
await client.settings.set(message.guild.id, [], "blacklisted");
|
|
}
|
|
|
|
if(!action) {
|
|
return message.channel.send(
|
|
`<:error:466995152976871434> You didn't tell me if I was meant to add or remove someone from the blocklist! Usage: \`${client.commands.get(`blocklist`).help.usage}\``
|
|
)
|
|
}
|
|
|
|
member = member.join(" ")
|
|
|
|
if(!member) {
|
|
return message.channel.send(
|
|
`<:error:466995152976871434> You didn't tell me who to add to the blocklist! Usage: \`${client.commands.get(`blocklist`).help.usage}\``
|
|
);
|
|
};
|
|
|
|
let user = message.mentions.members.first();
|
|
|
|
if(action == "add") {
|
|
if (!user) {
|
|
let users;
|
|
users = client.searchForMembers(message.guild, member);
|
|
if (users.length > 1)
|
|
return message.channel.send(
|
|
"<:error:466995152976871434> Found multiple users! Please be more specific or mention the user instead."
|
|
);
|
|
else if (users.length == 0)
|
|
return message.channel.send(
|
|
"<:error:466995152976871434> That user doesn't seem to exist. Try again!"
|
|
);
|
|
user = users[0];
|
|
};
|
|
|
|
if(user.id === client.user.id) {
|
|
return message.channel.send('lol no');
|
|
};
|
|
|
|
if (user.id === message.guild.owner.id) {
|
|
return message.channel.send("<:error:466995152976871434> You can't add the owner to the blocklist!")
|
|
};
|
|
|
|
let admin = message.guild.member(message.author)
|
|
if (user.roles.highest.position >= admin.roles.highest.position && admin.user.id !== message.guild.ownerID) {
|
|
return message.channel.send(
|
|
`<:error:466995152976871434> You can't add people higher ranked than yourself to the blocklist!`
|
|
);
|
|
};
|
|
|
|
if(user.id === message.member.id) {
|
|
return message.channel.send('<:error:466995152976871434> You can\'t add yourself to the blocklist!');
|
|
};
|
|
|
|
let blacklisted = false;
|
|
|
|
if(settings.blacklisted.length > 0) {
|
|
settings.blacklisted.forEach(function(ID) {
|
|
if(ID == user.id) {
|
|
blacklisted = true;
|
|
}
|
|
});
|
|
|
|
if(blacklisted == true) {
|
|
return message.channel.send('<:error:466995152976871434> This person is already on the blocklist!');
|
|
};
|
|
};
|
|
|
|
client.settings.push(message.guild.id, user.id, "blacklisted")
|
|
|
|
return message.channel.send(`<:success:466995111885144095> Added \`${user.user.tag}\` to the blocklist.`)
|
|
};
|
|
|
|
|
|
if (action == "remove") {
|
|
if (!user) {
|
|
let users;
|
|
users = client.searchForMembers(message.guild, member);
|
|
if (users.length > 1)
|
|
return message.channel.send(
|
|
"<:error:466995152976871434> Found multiple users! Please be more specific or mention the user instead."
|
|
);
|
|
else if (users.length == 0)
|
|
return message.channel.send(
|
|
"<:error:466995152976871434> That user doesn't seem to exist. Try again!"
|
|
);
|
|
user = users[0];
|
|
};
|
|
|
|
let blacklisted = false;
|
|
|
|
settings.blacklisted.forEach(function(ID) {
|
|
if(ID == user.id) {
|
|
blacklisted = true;
|
|
}
|
|
});
|
|
|
|
if(blacklisted != true) {
|
|
return message.channel.send('<:error:466995152976871434> This user isn\'t on the blocklist!');
|
|
};
|
|
|
|
client.settings.remove(message.guild.id, user.id, "blacklisted")
|
|
|
|
return message.channel.send(`<:success:466995111885144095> Removed \`${user.user.tag}\` from the blocklist.`)
|
|
};
|
|
};
|
|
|
|
exports.conf = {
|
|
enabled: true,
|
|
guildOnly: true,
|
|
aliases: ['bl'],
|
|
permLevel: "Administrator",
|
|
requiredPerms: []
|
|
};
|
|
|
|
exports.help = {
|
|
name: "blocklist",
|
|
category: "Moderation",
|
|
description: "Allows you to configure Woomy's blocklist. Users on the blocklist cannot use commands.",
|
|
usage: "blocklist [add/remove] [member]"
|
|
};
|