ReferenceError:尝试放入let公会时未定义消息

时间:2020-04-20 22:27:11

标签: bots discord discord.js message

我正在开发我的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));
        }
    }
});

2 个答案:

答案 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