(Discord.js)无法读取未定义的属性“ fetchMessage”

时间:2020-04-07 22:18:24

标签: javascript discord.js

我在编写模块时遇到麻烦。该模块应该只获取通道中的消息并对其计数。通道名称位于配置文件中。我试图从控制台访问它,并且可以正常工作。 这里的代码:

module.exports = {
    name: 'calcola',
    description: 'calcola i punti',
    async execute (message, client, config) {

        console.log("inizio start counting");

        await client.channels.get(config.canaleRisposte).fetchMessages({ limit: 50 }).then(async risposte =>{
            var conuter= 0;
            risposte.forEach(risposta => {
                counter ++;
            });

        })
        console.log("end counting");

}
}

我收到此错误:(节点:77497)UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性'fetchMessage'

在控制台中,我得到第一个console.log;因此,代码将一直工作到这一点。仅供参考,在我的主文件中,获得了以下行以获得模块:

if (message.content === config.prefix + "calcola") client.commands.get('calcola').execute(message, client, config);

谢谢您的帮助!

PS:我有found this website,但我不知道如何使它起作用。在该网站上,我添加了“限制”参数。

编辑: 我设法使其正常工作,不确定如何。如果有人能弄清楚,那将是不错的:D

module.exports = {
    name: 'calcola',
    description: 'calcola i punti',
    async execute (message, client, config) {
        console.log("inizio start counting");
        await client.channels.get(config.canaleRisposte).fetchMessages({ limit: 50 }).then(async risposte =>{
            var counter= 0;
            risposte.forEach(risposta => {
                counter ++;
            });
            console.log(counter);

        })


}
}

1 个答案:

答案 0 :(得分:0)

您需要使用频道的cache来使用其ID获得频道,然后您需要使用messages.cache而不是fetchMessages()

所以您的解决方案是:

client.channels.cache.get(config.canaleRisposte).messages.cache.first(50)

注意.first(50)获取集合中的前50个值。