如何使漫游器忽略其他漫游器执行的其他操作?

时间:2020-04-18 09:56:09

标签: javascript node.js discord

我想知道如何使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);
    }
});

有人可以帮助我吗?我对这些事情不太了解,所以我的一些代码可能派上用场。

1 个答案:

答案 0 :(得分:0)

有一种简单的存档方法,只需对现有代码进行少量更改即可。
User(newMember / oldMember)的GuildMember属性具有属性bot
如果该用户不是机器人用户,则返回Boolean。

所以您可以在此if (oldMember.user.bot || newMember.user.bot) return
做 到刚发送的代码的最顶端。 有关bot属性的更多信息,您可以找到here