Discord.js TypeError:无法读取未定义的属性“缓存”
Posted
技术标签:
【中文标题】Discord.js TypeError:无法读取未定义的属性“缓存”【英文标题】:Discord.js TypeError: Cannot read property 'cache' of undefined 【发布时间】:2021-02-27 05:03:02 【问题描述】:首先对不起我的英语, 我正在开发一个 Discord 机器人,但我遇到了一些问题,每当我在聊天中写任何单词时,我都会看到很多错误。谁能帮我?谢谢你。 这是我的代码;
const Discord = require('discord.js');
const client = new Discord.Client();
var set = require('./settings.json');
client.once('ready', () =>
console.log('Ready!');
client.user.setActivity ("Deneme");
);
client.on('message', message =>
const role = client.roles.cache.find(role => role.name === 'Pascal');
const member = message.mentions.members.first();
member.roles.add(role);
if (message.content === 'Hi')
message.channel.send('Hi!');
);
client.login(set.token);
这就是我在终端上的错误代码;
Visual Studio Code terminal
【问题讨论】:
client
没有 roles
属性。您需要找出原因。
把client
改成message
就可以了。
我确实像这样编辑过 const role = message.roles.cache.find(role => role.name === 'Pascal');但还是一样
哦,我的错,也加入一个公会。 message.guild.roles.cache.find
@WorthyAlpaca 它工作正常,但我像往常一样有新错误member.roles.add(role); ^ TypeError: Cannot read property 'roles' of undefined
我经常将其视为“未定义”。我一般如何解决这个问题。你有资料吗?
【参考方案1】:
别这样
const role = client.roles.cache.find(role => role.name === 'Pascal');
试试这个代码
const role = message.guild.roles.cache.find((role) => role.name === rolename);
关于会员的其他错误,请使用以下代码初始化会员。
const member = msg.mentions.members.first();
【讨论】:
以上是关于Discord.js TypeError:无法读取未定义的属性“缓存”的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:无法读取未定义的“获取”函数(discord.js)
Discord.js:TypeError:无法读取未定义的属性“删除”
(Discord.js)TypeError:无法读取未定义的属性“添加”
Discord.js:TypeError:无法读取未定义的属性“get”