这是我的代码。我不断收到TypeError: Cannot read property ''
的未定义和类似错误。
const data = cache.actions[cache.index];
let varName = this.evalMessage(data.varName, cache);
let storage = parseInt(data.storage);
let info = parseInt(data.info);
let time = parseInt(data.time);
const { msg } = cache
const { guild } = cache
if (guild.varName === undefined) {
guild.varName = new Set();
}
if (message.guild.varName.has(msg.author.id)) {
channel.send("info");
console.log("Restriction active!");
} else {
message.guild.varName.add(msg.author.id);
setTimeout(() => {
message.guild.varName.delete(msg.author.id);
}, time);
}`
答案 0 :(得分:1)
这里似乎有两个主要问题。首先,此代码中的任何地方都没有消息收集器。消息收集器将类似于
client.on('message', function() {
//some code here
}
这将等待机器人接收到一条消息,然后执行该函数内部的所有操作。我看到的第二个问题是您有一个变量varName
,并且您正在尝试使用该变量访问guild
的属性。在您的代码中,您使用了点符号,但是在尝试使用变量访问属性时,点符号不起作用。无论何时"varName"
的值是,您的代码都将寻找名为varName
的行会属性(请注意,它是一个字符串)。为此,您可以使用guild[varName]
。