如何解决没有提供参数时“无法读取未定义的属性'角色'”
当用户键入?stream <user>
时,我有这段代码可以添加/删除 streaming 角色
在输入整个命令时发生这种情况,但是只有?stream
if (!member.roles.cache.some(role => role.name === 'streaming')) {
^
TypeError: Cannot read property 'roles' of undefined
我不知道为什么吗?
这是代码:
client.on('message',message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).trim().split(' ');
const command = args.shift().toLowerCase();
const member = message.mentions.members.first();
if (command === 'stream') {
if(message.member.permissions.has("MANAGE_ROLES")){
if (!member.roles.cache.some(role => role.name === 'streaming')) {
member.roles.add('744292301874135122')
message.channel.send('`Added streaming role.`')
} else
member.roles.remove('744292301874135122') && message.channel.send('`Removed streaming role.`')
} else message.channel.send('`You dont have permission.`')
}
});
解决方法
Discord.js无法获取您在此方法中定义的成员:
const member = message.mentions.members.first();
因为当您键入?stream
时没有提及。因此,由于未定义成员,discord.js无法获得成员的角色。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。