运行此代码时不断收到此错误
Posted
技术标签:
【中文标题】运行此代码时不断收到此错误【英文标题】:Keep getting this error when running this code 【发布时间】:2020-10-03 15:44:11 【问题描述】:我正在尝试创建验证通道,用户将在其中使用反应验证自己。 我尝试从验证通道获取消息并尝试执行此代码:
const mReaction = new Discord.MessageReaction();
const message = mReaction.message;
const verified = 'verifiedID';
const unverified = 'unverifiedID';
if(message.reactions.cache.find(r => r.emoji === '✅') || message.channel.id == 'channelID')
message.member.roles.add(verified);
message.member.roles.remove(unverified);
当我运行代码时,我不断得到:
TypeError: Cannot read property 'me' of undefined
at new MessageReaction (D:\Users\Rastik\Desktop\discord bot\node_modules\discord.js\src\structures\MessageReaction.js:35:20)
at Object.<anonymous> (D:\Users\Rastik\Desktop\discord bot\main.js:98:20)
at Module._compile (internal/modules/cjs/loader.js:1200:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1049:32)
at Function.Module._load (internal/modules/cjs/loader.js:937:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
所以我想请你们帮助我,如果有人愿意帮助我,我将不胜感激。
【问题讨论】:
我认为您没有显示正确的代码,在代码块中没有对.me
的调用,显示第 98 行(如错误所示)和 98 周围的行相关的。
在第 98 行开始独立代码块,该代码块是我发送的整个代码块。
【参考方案1】:
错误是您正在凭空创建MessageReaction
,
const mReaction = new Discord.MessageReaction();
如果您查看文档,就会发现您需要客户端、数据和消息。
https://discord.js.org/#/docs/main/stable/class/MessageReaction
const message = mReaction.message
它如何知道反应指的是哪条消息?你没有定义任何东西
总而言之,这些代码毫无意义。
如果你想做一个验证消息反应系统,你需要监听messageReactionAdd
事件,但由于该事件只监听缓存的消息,你需要使用raw
事件或部分
我将展示部分方式。
主文件:
const client = new Client( partials: ["REACTION", "MESSAGE"]);
然后你需要以某种方式处理messageReactionAdd
事件,
client.on("messageReactionAdd", async (reaction, user) =>
if(reaction.partial) await reaction.fetch();
//you should have one message with the checkmark emoji, that users need to press
//to join, insert the msg id here
if(reaction.message.id !== "id") return;
//now you validate the user, if they have the role already return if not add.
);
【讨论】:
感谢您的回答,我在注意到您的评论前几个小时就知道了,但仍然非常感谢您尝试帮助我:)以上是关于运行此代码时不断收到此错误的主要内容,如果未能解决你的问题,请参考以下文章
运行.kv文件时,我不断收到语法错误。我该如何解决? [关闭]