const { Discord, MessageEmbed } = require("discord.js");
module.exports = {
name: "ban",
description: "bans user from guild",
execute(client, message, cmd, args, Discord) {
const member = message.mentions.users.first();
const user = message.mentions.members.first();
let admin = message.author.username;
let server = message.guild.name;
const memberTarget = message.guild.members.cache.get(member.id);
let reason = args.join(" ").slice(22);
if (!reason) reason = "No reason provided";
const embed = new MessageEmbed().setDescription("`Please remember to mention the user **(Members, UserID)**`").setColor("YELLOW");
const embed1 = new MessageEmbed().setDescription("You dont have enough permissions to execute this command!").setColor("RED");
const embed2 = new MessageEmbed().setDescription("`Sorry But this User is not Bannable`").setColor("RED");
const embed4 = new MessageEmbed().setTitle(`You have been banned from ${server}!`).setThumbnail(`${message.guild.iconURL()}`).addField("Reason:", `${reason}`).setFooter(`you were banned by ${admin}`).setTimestamp().setColor("RED");
const embed5 = new MessageEmbed().setDescription(`**${admin}**, You Cannot Ban Yourself`);
if (user.id === message.author.id) {
message.channel.send({ embeds: [embed5] });
}
if (
message.member.roles.cache.some((role) => role.name === "Administrator") ||
message.member.roles.cache.some((role) => role.name === "Admin") ||
message.member.roles.cache.some((role) => role.name === "Moderator") ||
message.member.roles.cache.some((role) => role.name === "Mod")
) {
message.channel.send(`Sorry I cannot ban Admins/Mods`);
} else {
if (!message.mentions.users.first()) return message.channel.send({ embeds: [embed] });
if (!message.member.permissions.has("KICK_MEMBERS")) return message.channel.send({ embeds: [embed1] });
if (!user.kickable) return message.channel.send({ embeds: [embed2] });
if (!!message.mentions.users.first() && message.member.permissions.has("KICK_MEMBERS")) {
const embed3 = new MessageEmbed()
.setColor("BLACK")
.setThumbnail(message.mentions.users.first().displayAvatarURL())
.setDescription(`<@${memberTarget.user.id}> has been banned!`)
.addField("Reason", `${reason}`)
.setFooter(`Banned by ${admin}`)
.setTimestamp();
user.send({ embeds: [embed4] });
setTimeout(function () {
user.ban()
.catch((err) => console.log(err))
.then(() => {
message.channel.send({ embeds: [embed3] });
message.channel.bulkDelete(1);
}, 20000);
});
}
}
},
};
所以我正在尋找一種方法讓我的機器人不禁止管理員或 Mod 角色,但是,我目前設定它的方式相信每個成員都說過角色。
我想看看是否有更好的方法來尋找角色,或者我是否必須移動東西。
幫助將不勝感激,因為我正在盡我最大的努力盡快修補這個補丁。提前致謝!
uj5u.com熱心網友回復:
你缺少一個else之間
if(user.id === message.author.id){
message.channel.send({ embeds: [embed5] })
}
和
if (message.member
使這樣的事情更明顯的一種方法是自動格式化您的代碼。
uj5u.com熱心網友回復:
const { Discord, MessageEmbed } = require("discord.js")
module.exports = {
name: 'ban',
description: "bans user from guild",
execute(client, message, cmd, args, Discord){
const member = message.mentions.users.first();
const user = message.mentions.members.first();
let admin = message.author.username;
let server = message.guild.name;
let reason = args.join(" ").slice(22);
if(!reason) reason = "No reason provided";
const embed = new MessageEmbed()
.setDescription("`Please remember to mention the user **(Members, UserID)**`")
.setColor("YELLOW")
const embed1 = new MessageEmbed()
.setDescription("You dont have enough permissions to execute this command!")
.setColor("RED")
const embed2 = new MessageEmbed()
.setDescription("`Sorry But this User is not Bannable`")
.setColor("RED")
const embed4 = new MessageEmbed()
.setTitle(`You have been banned from ${server}!`)
.setThumbnail(`${message.guild.iconURL()}`)
.addField('Reason:', `${reason}`)
.setFooter(`you were banned by ${admin}`)
.setTimestamp()
.setColor('RED')
const embed5 = new MessageEmbed()
.setDescription(`**${admin}**, You Cannot Ban Yourself`)
if(!message.member.permissions.has('KICK_MEMBERS')) return message.channel.send({ embeds: [embed1] })
if(!message.mentions.users.first()) return message.channel.send({ embeds: [embed] })
if(user.id === message.author.id){
message.channel.send({ embeds: [embed5] })
} else if (user.roles.cache.some(role => ['Administrator', 'Admin', 'Moderator', 'Mod'].includes(role.name))){
message.channel.send(`Sorry I cannot ban Admins/Mods`)
} else {
if(!user.kickable) return message.channel.send({ embeds: [embed2] })
if(!!message.mentions.users.first() && message.member.permissions.has('BAN_MEMBERS')) {
const memberTarget = message.guild.members.cache.get(member.id)
const embed3 = new MessageEmbed()
.setColor("BLACK")
.setThumbnail(message.mentions.users.first().displayAvatarURL())
.setDescription(`<@${memberTarget.user.id}> has been banned!`)
.addField('Reason', `${reason}` )
.setFooter(`Banned by ${admin}`)
.setTimestamp()
user.send({ embeds: [embed4] })
setTimeout(function(){
user.ban().catch(err => console.log(err)).then(() => {
message.channel.send({ embeds: [embed3] })
message.channel.bulkDelete(1);
}, 20000);
})
}
}
}
}
結果我想看看我是否有角色,message.member所以我從中洗掉message并更改member為user并將角色轉換為陣列以清理代碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/399838.html
標籤:javascript 节点.js 不和谐 不和谐.js
上一篇:在Python中使用Selenium時保護用戶帳戶憑據的最佳方法
下一篇:獲取正文資料為空的帖子
