我有一个静音系统不和谐的问题



我的静音系统有问题。如果我发送+mute @member,它不会给出角色。

client.on('message', message => {
if (message.content === "+mute") {
if (!message.member.permissions.has("MANAGE_ROLES")) {
return message.reply({content: `You need permissions to use command`})
const mutedRole = message.guild.roles.cache.get('<986283559092359228>');
if (!mutedRole)
return message.reply('There is no Muted role on this server');
const member = message.mentions.members.first();
member.roles.add(role); 
message.channel.send(member + 'has Been Muted');
} else {
message.channel.send("You didn't mention the user to mute!")
}
}
})

您将静音角色定义为mutedRole,但是当您给成员一个角色时-您使用role,它不存在,因此解决方案很简单,将member.roles.add(role);更改为member.roles.add(mutedRole);

在定义muteRole时只需要写入角色ID,因此更改此

const mutedRole = message.guild.roles.cache.get('<986283559092359228>');

const mutedRole = message.guild.roles.cache.get('986283559092359228');

然后在role.add()中使用相同的名称mutedRole,并使用try/catch,因为bot不能提供高于其最高角色的角色,所以尝试:

try {
member.roles.add(mutedRole);
} catch (err) {
console.log(err)
message.channel.send({content: `Role is higher than my highest role!`})
} 

只是添加,您可以直接执行

message.channel.send({content: `${member} has Been Muted`});

您还需要检查用户是否已经拥有mutedRole

最新更新