当前位置: 首页 > 知识库问答 >
问题:

不一致js:TypeError:无法读取未定义的属性“get”

杨和蔼
2023-03-14

有人能告诉我我做错了什么吗?

/*
bot.on('message', message =>{
    if(message.author.bot) return;

const TicketToolEmbed = new Discord.MessageEmbed()
    .setTitle("Creat a support Ticket")
    .setDescription("React to this message to open a support ticket with the Server Administrators")
    .setColor("#B900FF")
    .setTimestamp()
    .setFooter("Ticket Bot System")



    message.channel.send(TicketToolEmbed)
        .then(message => message.react('✅'))
            .catch(err => console.log(err));

}); */

bot.on('raw', async payload => {
    let eventname = payload.t;
    if (eventname === 'MESSAGE_REACTION_ADD') {
        let msgId = payload.d.message_id;
        if (msgId === '712016328189411348') {
            let channelId = payload.d.channelId;
            let channel = Client.channels.get(channelId);
            if (channel) {
                if (channel.message.has(msgId))
                    return;
                else {
                    try {
                        let msg = await channel.fetchMessage(msgId);
                        let reaction = msg.reaction.get('✅');
                        let user = Client.user.get(payload.d.user_id);
                        Client.emit('messageReactionAss', reaction, user);
                    }
                    catch (ex) {
                        console.log(ex);
                        return;
                    } 
                }
            }
        }
    }
});

bot.on('messageReactionAdd', (reaction, user) => {
    if(reaction.emoji.name === '✅') {
        console.log("Creating ticket...");
    }
    else {
        console.log("Wrong emoji");
    }
});

慰问:

(node:11924) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'get' of undefined
at Client.<anonymous> (C:\Users\sande\Desktop\discbot\index.js:65:43)
at Client.emit (events.js:310:20)
at WebSocketShard.onMessage (C:\Users\sande\Desktop\discbot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:287:27)
at WebSocket.onMessage (C:\Users\sande\Desktop\discbot\node_modules\ws\lib\event-target.js:125:16)
at WebSocket.emit (events.js:310:20)
at Receiver.receiverOnMessage (C:\Users\sande\Desktop\discbot\node_modules\ws\lib\websocket.js:800:20)
at Receiver.emit (events.js:310:20)
at Receiver.dataMessage (C:\Users\sande\Desktop\discbot\node_modules\ws\lib\receiver.js:436:14)
at Receiver.getData (C:\Users\sande\Desktop\discbot\node_modules\ws\lib\receiver.js:366:17)
at Receiver.startLoop (C:\Users\sande\Desktop\discbot\node_modules\ws\lib\receiver.js:142:22)

(节点:11924)未处理的PromisejectionWarning:未处理的promise拒绝。此错误源于在没有catch块的情况下抛出异步函数的内部,或者拒绝使用未处理的promise。catch()。要在未处理的promise拒绝时终止节点进程,请使用CLI标志--unhandled rejections=strict(请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)(拒绝id:1)(节点:11924)[DEP0018]弃用警告:未处理的promise拒绝已弃用。将来,未处理的promise拒绝将终止节点。具有非零退出代码的js进程。

共有1个答案

傅阿苏
2023-03-14

我相信您已经在所有代码示例中使用了Client而不是bot

尝试以下方法:

bot.on('raw', async payload => {
    let eventname = payload.t;
    if (eventname === 'MESSAGE_REACTION_ADD') {
        let msgId = payload.d.message_id;
        if (msgId === '712016328189411348') {
            let channelId = payload.d.channelId;
            let channel = bot.channels.get(channelId);
            if (channel) {
                if (channel.message.has(msgId))
                    return;
                else {
                    try {
                        let msg = await channel.fetchMessage(msgId);
                        let reaction = msg.reaction.get('✅');
                        let user = bot.user.get(payload.d.user_id);
                        bot.emit('messageReactionAdd', reaction, user); // Also corrected "messageReactionAss" to "messageReactionAdd".
                    }
                    catch (ex) {
                        console.log(ex);
                        return;
                    } 
                }
            }
        }
    }
});

bot.on('messageReactionAdd', (reaction, user) => {
    if(reaction.emoji.name === '✅') {
        console.log("Creating ticket...");
    }
    else {
        console.log("Wrong emoji");
    }
});
 类似资料:
  • 我刚开始使用Javascript和Discord进行开发。js,并收到以下错误: TypeError:无法读取未定义的属性“fetch” 我正在尝试执行轮询命令。这是代码(我删除了所有其他内容,只是想让它退出频道): 我已经试着把它放在Main.js工作: 但是我想要正确的文件。这就是我在客户上面所做的。在(‘消息’等)上。 当然,我谷歌了一下,看了看留档,但没有帮助。 正如我所说,我是编程新手,

  • 为什么我得到这个错误不能读取未定义的触摸属性? 为什么它不能读取,但它可以读取 当我们使用

  • 问题内容: 我正在制作非常简单的react应用。但是,当我尝试通过onChange事件调用父(实际上是祖父母)组件的方法时,我一直在获取。 这是触发事件的组件/表单(因此,在绑定的父组件上调用方法…是的,因为我通过道具将其从父组件传递下来,所以在方法上使用了.bound(this)。) 这是我如何通过大多数父(祖父母)组件中的props传递该方法的方法。 这是我作为父项(方法所有者和方法调用程序之

  • 我正在测试发送电子邮件与流星js和nodemailer插件: 流星添加捷运:流星NodeEmailer 当页面加载时,我在导航器的控制台上看到错误:无法读取未定义的属性“创建运输”。 那么问题是什么呢? 代码如下: /////////////////////////////////////////// ///////////////

  • 我知道这方面还有很多类似的问题,但没有一个答案是有效的。在我的例子中,我有下面的代码,我正在尝试按分数降序排列记录数组。 最后一个函数是什么给我的问题.如果用户运行以下: var web=[{url:“www.southanpton.ac.uk”,内容:“南安普敦大学提供学位课程和世界一流的研究测试。”,{url:“www.xyz.ac.uk”,内容:“另一种大学考试”},{url:“www”,内

  • 我一直试图让firebase与react一起工作,但出现了此错误 未经处理的拒绝(TypeError):无法读取未定义的fetch D:/Peti/Programming/node/coursewebpage/src/components/coursePage.js:12 9 | const db=firebase.firestore()10 | const myAuthLevel=(fireba