我的静音系统有问题。如果我发送+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