我想知道如何使bot忽略其他bot动作(角色更新,删除)并停止对其进行记录。这是我的代码:
let messagechannel = oldMember.guild.channels.find(r => r.name === config.logsChannel);
if (!messagechannel) return 'Canalul respectiv nu există!'
if (oldMember.roles.size < newMember.roles.size) {
const embed = new Discord.RichEmbed()
.setColor('#383b3d')
.setDescription(`${oldMember.user.tag} (${oldMember.user}) a fost actualizat.`)
.setAuthor(`${oldMember.user.tag}`, oldMember.user.avatarURL)
.addField(`ID`, oldMember.id)
.setFooter(`${bot.user.tag}`, bot.user.avatarURL)
.setTimestamp();
for (const role of newMember.roles.map(x => x.id)) {
if (!oldMember.roles.has(role)) {
embed.addField(`Schimbări`, "➕ " + `${newMember.guild.roles.get(role)}`);
}
}
messagechannel.send(embed);
}
if (oldMember.roles.size > newMember.roles.size) {
const embed = new Discord.RichEmbed()
.setColor('#383b3d')
.setDescription(`${oldMember.user.tag} (${oldMember.user}) a fost actualizat.`)
.setAuthor(`${oldMember.user.tag}`, oldMember.user.avatarURL)
.addField(`ID`, oldMember.id)
.setFooter(`${bot.user.tag}`, bot.user.avatarURL)
.setTimestamp()
for (const role of oldMember.roles.map(x => x.id)) {
if (!newMember.roles.has(role)) {
embed.addField( `Schimbări`, "❌ " + `${oldMember.guild.roles.get(role)}`);
}
}
messagechannel.send(embed);
}
if (newMember.nickname != oldMember.nickname) {
const embed = new Discord.RichEmbed()
.setColor('#383b3d')
.setDescription(`${oldMember.user.tag} (${oldMember.user}) a fost actualizat.`)
.setAuthor(`${oldMember.user.tag}`, oldMember.user.avatarURL)
.addField(`ID`, oldMember.id)
.addField(`Numele vechi`, `${oldMember.displayName}`)
.addField(`Numele nou`, `${newMember.displayName}`)
.setFooter(`${bot.user.tag}`, bot.user.avatarURL)
.setTimestamp()
messagechannel.send(embed);
}
});
有人可以帮助我吗?我对这些事情不太了解,所以我的一些代码可能派上用场。
答案 0 :(得分:0)
有一种简单的存档方法,只需对现有代码进行少量更改即可。
User
(newMember / oldMember)的GuildMember
属性具有属性bot
如果该用户不是机器人用户,则返回Boolean。
所以您可以在此if (oldMember.user.bot || newMember.user.bot) return
做
到刚发送的代码的最顶端。
有关bot
属性的更多信息,您可以找到here