如何让Discord.js V14机器人忽略管理员的@everyone消息
解决Discord机器人忽略管理员@everyone消息的问题
你只需要在判断消息包含@everyone之前,先检查发送消息的成员是否拥有管理员权限,如果有就直接跳过后续逻辑,这样管理员发的@everyone消息就不会被删除了。
修改后的代码如下:
module.exports = { name: "messageCreate", async execute(message) { if (!message.guild || message.author.bot) return; // 检查用户是否有管理员权限,有则直接返回 if (message.member.permissions.has('ADMINISTRATOR')) return; if (message.content.includes("@everyone")) { message.delete(); message.channel.send({ content: `${message.author}, you don't have permission to tag everyone!`}); } } }
关键说明
message.member.permissions.has('ADMINISTRATOR')会验证当前消息发送者在服务器内是否拥有管理员权限,返回布尔值- 把这个判断放在最前面,管理员发送的任何消息都会直接跳过后续处理,自然也不会触发
@everyone的删除逻辑
内容的提问来源于stack exchange,提问作者Illanser
相关产品推荐
相关产品推荐

