92 lines
2.8 KiB
JavaScript
92 lines
2.8 KiB
JavaScript
const Discord = require("discord.js");
|
|
module.exports = {
|
|
name: 'ban',
|
|
description: '[ 🚫 Ban ] Ban User',
|
|
options: [
|
|
{
|
|
name: "user",
|
|
description: "Select an user",
|
|
type: Discord.ApplicationCommandOptionType.User,
|
|
required: true
|
|
},
|
|
{
|
|
name: "reason",
|
|
description: "Ban Reason",
|
|
type: Discord.ApplicationCommandOptionType.String,
|
|
required: true
|
|
}
|
|
],
|
|
|
|
run: async(client, interaction) => {
|
|
let nopermission = new Discord.EmbedBuilder()
|
|
.setColor('Red')
|
|
.setTitle('Command Error!')
|
|
.setDescription(`
|
|
**Discord BOT**
|
|
|
|
🚫 Access Denied! 🚫
|
|
|
|
|
|
${interaction.user}`);
|
|
|
|
if (!interaction.member.permissions.has(Discord.PermissionsBitField.Flags.BanMembers)) {
|
|
interaction.reply({embeds: [nopermission], ephemeral: true})
|
|
} else {
|
|
let member = interaction.options.getUser("user");
|
|
let reason = interaction.options.getString("reason");
|
|
let staff = interaction.user.displayName
|
|
|
|
let userInv = new Discord.EmbedBuilder()
|
|
.setColor('Red')
|
|
.setTitle("Ban Failed")
|
|
.setDescription(`**Invalid User | Please insert a valid User.**`)
|
|
.setTimestamp(new Date());
|
|
if (!member)
|
|
return interaction.reply({ embeds: [userInv], ephemeral: true });
|
|
|
|
let banreply = new Discord.EmbedBuilder()
|
|
.setColor('Red')
|
|
.setTitle(`**New Ban**`)
|
|
.setDescription(`**${member} was banned successfully \n Reason: ${reason}**`)
|
|
.setFooter({ text: `Responsible: ${staff}`, iconURL: interaction.user.displayAvatarURL({ format: "png" }) })
|
|
.setTimestamp(new Date())
|
|
|
|
|
|
let errban = new Discord.EmbedBuilder()
|
|
.setColor('DarkRed')
|
|
.setTitle('Ban Failed')
|
|
.setDescription(`Error while banning ${member.user}`)
|
|
.setTimestamp(new Date());
|
|
|
|
|
|
try {
|
|
if(!member){
|
|
return;
|
|
} else {
|
|
|
|
|
|
|
|
|
|
if(member.bot){
|
|
interaction.guild.bans.create(member, {reason});
|
|
interaction.reply({ embeds: [banreply], ephemeral: true })
|
|
} else {
|
|
setTimeout(() => {
|
|
interaction.guild.bans.create(member, {reason});
|
|
interaction.reply({ embeds: [banreply], ephemeral: true })
|
|
|
|
}, 1000);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
catch (err) {
|
|
if (err) {
|
|
interaction.reply({ embeds: [errban], ephemeral: true });
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
} |