我正试图从一个通道中获取所有消息,然后从这些消息中记录内容,有没有办法做到这一点?
我已经尝试过了,但是不起作用:
const fetched = await client.channels.get("505989241600213012")
.fetchMessages({limit: 1})
.then(message => console.log(`[${message.author.name}]${message.content}`));
这是我得到的结果:
Undefined
,
和[${message.author.name}]
它甚至不返回任何内容,因为您无法从undefined
中读取任何内容。
答案 0 :(得分:1)
fetchMessages
将始终返回集合,即使您使用limit: 1
也是如此。因此,如果要访问集合的第一个元素,则需要
const fetched = await client.channels.get("505989241600213012")
.fetchMessages({limit: 1})
.then(messages => console.log(`[${messages.first().author.name}]${messages.first().content}`));
如果您打算将消息保存在Discord之外,则可能要考虑使用cleanContent。结合使用await
和then
也不是一个好习惯。选择一个可能是个好主意。