所以我试图发出一个命令来使人们静音和取消静音,他们在添加静音角色和删除静音角色方面工作得很好,但是当我将某人静音时,他们不会被静音,他们仍然可以说话,但我可以看到他们对他们有静音角色,我禁用了所有通话权限,当有人发送静音/取消静音命令而没有人名时,机器人会收到错误消息,说无法读取属性 'roles' of undefined
这里是代码:
else if (parts[0] === Prefix + 'mute') {
const args = message.content.trim().split(/ +/g);
const target = message.mentions.members.first();
const mutedRole = message.guild.roles.cache.find(
(role) => role.name === 'Muted'
);
// if there is no `Muted` role, send an error
if (!mutedRole)
return message.channel.send('There is no Muted role on this server');
target.roles.add(mutedRole);
console.log(User + ' used the command ".mute ' + target + '"')
} else if (parts[0] === Prefix + 'unmute') {
const target = message.mentions.members.first();
const args = message.content.trim().split(/ +/g);
const mutedRole = message.guild.roles.cache.find(
(role) => role.name === 'Muted'
);
// if there is no `Muted` role, send an error
if (!mutedRole)
return message.channel.send('There is no Muted role on this server');
target.roles.add(mutedRole);
setTimeout(() => {
target.roles.remove(mutedRole); // remove the role
}, ms(args[1]))
console.log(User + ' used the command ".unmute ' + target + '"')
当我在控制台日志中看到它时,我看不到被静音/取消静音的人的名字,但我看到了 ID 号
答案 0 :(得分:0)
对于“未正确静音”,这可能是 Discord 权限问题,因此我们无法在此处帮助您解决该问题。
对于没有人名的命令,您尝试执行 target.roles
而 target
未定义,因此出现错误。您需要确保 target
不是未定义的,如果是,则向用户抛出错误(就像 mutedRole
一样)。