Javascript Discord.js bot:我如何检查ping的人是否具有特定角色
我试图创建关于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();
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()
删除发送的邮件。