31 lines
No EOL
1.8 KiB
JavaScript
31 lines
No EOL
1.8 KiB
JavaScript
const client = require("../utils/client.js");
|
|
|
|
exports.run = async (message, args) => {
|
|
if (!message.channel.guild) return `${message.author.mention}, this command only works in servers!`;
|
|
if (!message.member.permission.has("banMembers")) return `${message.author.mention}, you need to have the \`Ban Members\` permission on this server to ban people!`;
|
|
if (!message.channel.guild.members.get(client.user.id).permission.has("banMembers") && !message.channel.permissionsOf(client.user.id).has("banMembers")) return `${message.author.mention}, I don't have the \`Ban Members\` permission!`;
|
|
const member = message.mentions[0];
|
|
if (member) {
|
|
try {
|
|
await message.channel.guild.banMember(member.id, 0, `Ban command used by @${message.author.username}#${message.author.discriminator}`);
|
|
return `Successfully banned ${member.mention}.`;
|
|
} catch (e) {
|
|
return `${message.author.mention}, I was unable to ban the member. They might not exist or I don't have the permissions to do so.`;
|
|
}
|
|
} else if (args[0].match(/^<?[@#]?[&!]?\d+>?$/) && args[0] >= 21154535154122752) {
|
|
try {
|
|
const id = args[0].replace(/@/g, "").replace(/#/g, "").replace(/!/g, "").replace(/&/g, "").replace(/</g, "").replace(/>/g, "");
|
|
await message.channel.guild.banMember(id, 0, `Banned by ID, command used by @${message.author.username}#${message.author.discriminator}`);
|
|
return `Successfully banned user with ID \`${id}\`.`;
|
|
} catch (e) {
|
|
return `${message.author.mention}, I was unable to ban the member. They might not exist or I don't have the permissions to do so.`;
|
|
}
|
|
} else {
|
|
return `${message.author.mention}, you need to provide a member to ban!`;
|
|
}
|
|
};
|
|
|
|
exports.aliases = ["hackban", "prevent", "preban"];
|
|
exports.category = 2;
|
|
exports.help = "Bans a server member";
|
|
exports.params = "[mention/id]"; |