在 Discord.js 中,可以通过检查消息发送者是否具有所需角色来保护没有角色的人免受命令的影响。以下是一个示例代码,演示如何实现这一点:
const Discord = require('discord.js');
const client = new Discord.Client();
const requiredRole = 'Role Name'; // 所需角色的名称
client.on('message', (message) => {
if (message.author.bot) return; // 忽略机器人发送的消息
if (message.content.startsWith('!command')) {
if (!message.member.roles.cache.some(role => role.name === requiredRole)) {
// 如果消息发送者不具有所需角色
return message.reply('你没有权限执行此命令!');
}
// 执行命令的代码...
}
});
client.login('YOUR_BOT_TOKEN');
在上面的代码中,我们使用message.member.roles.cache.some()
方法来检查消息发送者是否具有所需角色。如果发送者不具有所需角色,我们将回复一条消息,告诉他们他们没有权限执行该命令。
请注意,上述代码假定您已经设置了所需的角色,并将其名称存储在requiredRole
变量中。确保在使用代码之前将其替换为您所需的角色名称。
此外,还请确保您的机器人具有正确的权限以查看和分配角色。