我正在开发我的Discord机器人,并试图使它在公会仅成为message.guild的地方进行,在这样做的过程中,我得到了让guild = message.guild;的错误。 ^
ReferenceError:消息未定义
我的代码是:
client.on('messageReactionAdd', (reaction, user) => {
if(reaction.emoji.name === 'ticket2') {
{
let guild = message.guild;
guild.channels.create(`${message.author.username}s-ticket`, {
type: 'text',
permissionOverwrites: [
{
allow: 'VIEW_CHANNEL',
id: message.author.id
},
{
deny: 'VIEW_CHANNEL',
id: guild.id
},
{
allow: 'VIEW_CHANNEL',
id: '691669966998601788'
}
]
}).then(ch => {
userTickets.set(message.author.id, ch.id);
message.channel.send('Ok! Your ticket will be created shortly');
}).catch(err => console.log(err));
}
}
});
答案 0 :(得分:0)
这很简单,因为回调仅接受用户的反应(您之前根本没有声明过消息),所以没有定义消息对象或变量。
我建议您阅读Discord.js rawEvents的this指南
答案 1 :(得分:0)
您从未如前所述定义变量message
。为了获得公会,因为您不在message事件中,可以通过其他属性来获得公会。在您的情况下,要获取响应的消息来自的行会,可以执行reaction.message.guild
。
参考链接:
1. https://discord.js.org/#/docs/main/stable/class/MessageReaction?scrollTo=message
2. https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=guild