Javascript Discord.js bot:我如何检查ping的人是否具有特定角色

Javascript Discord.js bot:我如何检查ping的人是否具有特定角色,javascript,discord,discord.js,bots,Javascript,Discord,Discord.js,Bots,我试图创建关于ping员工的警告,我当前的代码是: const roleId = "761874957705674762"; client.on("message", async message => { if (message.author.bot) return false; if (message.mentions.has(roleId)) { await message.delete();

我试图创建关于ping员工的警告,我当前的代码是:

const roleId = "761874957705674762";

client.on("message", async message => {
    if (message.author.bot) return false;

    if (message.mentions.has(roleId)) {
        await message.delete();
        message.reply(`dont ping staff!`);
        message.delete(5000);
    };
});

我没有收到任何错误,但我也没有收到所需的响应“不要ping staff”

您可以通过角色ID检查用户的角色:

// assuming role.id is an actual ID of a valid role:
if(message.member.roles.cache.has(role.id)) {
  console.log(`Yay, the author of the message has the role!`);
} else {
  console.log(`Nope, noppers, nadda.`);
}
如果你想检查他是否有多个角色中的一个,你可以这样做:

// Check if they have one of many roles
if(message.member.roles.cache.some(r=>["Dev", "Mod", "Server Staff", "Proficient"].includes(r.name)) ) {
  // has one of the roles
} else {
  // has none of the roles
}

它应该很好用。那么角色ID一定是错误的。同样在回复
后,不要ping staff
message.delete()
将不起作用。您需要使用
.then()
删除发送的邮件。