【发布时间】:2021-04-24 21:21:00
【问题描述】:
我正在尝试制作一个简单的注册功能,但我无法弄清楚问题所在。这是代码:
fasz.on('messageReactionAdd', async (msg, guild, reaction, user) =>{
let registered = msg.guild.roles.find(role => role.name === "Regisztrált");
if(reaction.message.partial) await reaction.message.fetch();
if(reaction.partial) await reaction.fetch();
if(user.bot) return;
if(!reaction.message.guild) return;
if(reaction.message.channel.id === '718990681745522728'){
if(reaction.emoji.name === '????'){
await reaction.message.guild.members.cache.get(user.id).roles.add(registered)
return user.send('Sikeres regisztráció! Üdvözlünk a szerveren!')
}
}
})
这是得到的错误信息:
C:\Users\god\Documents\GitHub\discord.js\main.js:74
let registered = msg.guild.roles.find(role => role.name === "Regisztrált");
^
TypeError: Cannot read property 'roles' of undefined
at Client.<anonymous> (C:\Users\god\Documents\GitHub\discord.js\main.js:74:32)
at Client.emit (node:events:376:20)
at MessageReactionAdd.handle (C:\Users\god\Documents\GitHub\discord.js\node_modules\discord.js\src\client\actions\MessageReactionAdd.js:49:17)
at Object.module.exports [as MESSAGE_REACTION_ADD] (C:\Users\god\Documents\GitHub\discord.js\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_REACTION_ADD.js:4:37)
at WebSocketManager.handlePacket (C:\Users\god\Documents\GitHub\discord.js\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\god\Documents\GitHub\discord.js\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\god\Documents\GitHub\discord.js\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\god\Documents\GitHub\discord.js\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (node:events:376:20)
at Receiver.receiverOnMessage (C:\Users\god\Documents\GitHub\discord.js\node_modules\ws\lib\websocket.js:835:20)
【问题讨论】:
-
你应该直接尝试使用
msg.guild.roles.find(),而不是guild.roles.find()。 -
现在我收到此错误消息,我尝试获取,并取而代之找到,但它们都不起作用。让已注册 = guild.roles.find(role => role.name === "Regisztrált"); ^ 类型错误:无法读取未定义的属性“查找”
-
经过一番调查,我发现
Client#messageReactionAdd事件只发出MessageReaction和user。这意味着您不能将四个变量传递给您的函数,只能传递两个。
标签: javascript discord.js