从特定渠道获取特定消息

时间:2020-03-18 14:04:28

标签: bots discord discord.js

目的:我正在尝试让机器人检查特定消息的反应。

我已经阅读了这篇文章:Get Message By ID: Discord.js 但这根本没有帮助。

我已经在互联网上搜索了如何正确使用.fetchMessage。但不幸的是没有找到任何结果。

这是我的代码:

client.channels.get('CHANNEL ID').fetchMessage('MESSAGE ID').then(async msg => { *CODE HERE* });

这是我得到的错误:

TypeError: client.channels.get is not a function

我确实意识到client.channels.get is not a function,应该在函数中使用它,但我不知道该怎么做。

Discord.js version: 12.0.2

Node.js verison: 12.13

2 个答案:

答案 0 :(得分:4)

该答案适用于v11,在v12中已更改为:

client.channels.cache.get(chid).messages.cache.fetch(mesid)

但是,请务必注意,client.channels.cache可能包含非文本通道,如果要检索您知道为TextChannel类型的ID,就可以了,但是如果您需要通过编程方式检索ID,以确保它是TextChannel的实例。

答案 1 :(得分:0)

在v12中,它已更改并使用管理器,并将此命令添加到我的机器人中并进行了修复。

let channelMessage = client.channels.cache.get(channel_id) // Grab the channel
channelMessage.messages.fetch(message_id).then(messageFeteched => messageFeteched.delete({timeout: 5000})); // Delete the message after 5 seconds