繁体   English   中英

如何从 Discord.js v14 中的消息中嵌入

[英]How to get a embed from a message in Discord.js v14

我收到一条用表情符号做出反应的消息,想将其发送到另一个频道,但我无法从该消息reaction.message.embeds中获取嵌入信息。message.embeds 为空。

我是否需要设置一些意图才能读取该数据? 类似于消息的GatewayIntentsBits.MessageContent

想要重新发送嵌入到另一个频道的消息

[编辑] 当我做一些奇怪的事情时: reaction.message.channel.messages.fetch(reaction.message.id) embeds标签似乎有效,有什么办法或原因吗? 或者我应该使用这种奇怪的方式,有人可以向我解释为什么第一个示例不起作用吗?

关于意图:

对于未提及客户端的消息,此属性需要 GatewayIntentBits.MessageContent 公会中的特权意图。 ( https://discord.js.org/#/docs/discord.js/main/class/Message?scrollTo=embeds )

返回是一个嵌入数组。 因此,您需要使用reaction.message.embeds[0]来访问它。 当然,如果您的reaction.message.embeds完全为空,这将无济于事。

检查信息的一个好方法是console.log(reaction.message)

您也可以直接 fetch() 反应以获得完整的 MessageReaction 信息。

reaction.fetch().then((fetchedReaction) => {
    fetchedReaction.message.embeds[0]; //or
    fetchedReaction.message.embeds;
});

您的解决方案

reaction.message.channel.messages.fetch(reaction.message.id) 

如果消息可能不在缓存中,这确实是最好和正确的方法。 这样它仍然被检索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM