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

缓存消息不一致。js

许远航
2023-03-14

我想做一些反应。但为此,我必须缓存在bot启动之前发送的消息。我用频道试过了。信息。获取,但到目前为止还没有成功。

我当前的代码:

client.on('messageReactionAdd', async(reaction, user) => {
    client.channels.cache.get("689034237672030230");
    channel.messages.fetch('708428887612194979');
    // When we receive a reaction we check if the reaction is partial or not
    if (reaction.partial) {
        // If the message this reaction belongs to was removed the fetching might result in an API error, which we need to handle
        try {
            await message.reaction.fetch();
        } catch (error) {
            console.log('Something went wrong when fetching the message: ', error);
            // Return as `reaction.message.author` may be undefined/null
            return;
        }
    }
    // Now the message has been cached and is fully available
    console.log(`${reaction.message.author}'s message "${reaction.message.id}" gained a reaction!`);
    // The reaction is now also fully available and the properties will be reflected accurately:
    console.log(`${reaction.count} user(s) have given the same reaction to this message!`);
});

共有3个答案

叶茂
2023-03-14

你需要做的是首先获取通道所在的公会,然后从公会获取通道(因此它会返回一个GuildChannel)。然后从那里取信息。

完整的代码是:

client.on('ready', async () => {
  const guild = await client.guilds.fetch('guild-id-here');
  const channel = guild.channels.cache.get('channel-id-here');
  const message = await channel.messages.fetch('message-id-here');
});

client.on('message', message => {
  //rest of your code

});
  
卢俭
2023-03-14

当client#ready启动时,缓存消息:

client.on('ready', () => {
    client.channels.cache.get(CHANNEL_ID).message.cache.get(MSG_ID)
})
姜鹏程
2023-03-14

频道。信息。fetch()不工作,因为未定义频道。您需要将前两行定义为变量:

const channel = client.channels.cache.get("689034237672030230");
const msg = channel.messages.cache.get('708428887612194979');

 类似资料:
  • 我有简单的代码,检查用户是否有特定的角色: 现在的问题是,当我改变角色时,所以在机器人运行时删除特定角色,用户仍然拥有权限。所以在机器人缓存中,用户仍然拥有特定的角色。 当用户角色改变时,有没有办法更新机器人缓存? 提前感谢

  • 我对discord机器人和python有点陌生,所以我在理解哪里出了问题时遇到了一些困难。基本上我想让我的机器人锁定一条消息。我找到了一个python代码的文档,上面说要使用pin_message(),所以我有: 但我得到以下错误AttributeError:“TextChannel”对象没有属性“pin_message” 当我查看Discord文档时,它会显示PUT/channels/{chan

  • 我正在尝试让JMS消费者致力于ActiveMQ服务器,但是我遇到了一些问题,这些解决方案似乎只会导致更多问题。 我正在使用Spring的DMLC(cacheLeve设置为CACHE\u连接)和CachingConnectionFactory(cachingConsumers设置为true),将Activemq自己的连接工厂包装在部署在Jboss AS中的Webapp中。 据此http://acti

  • 我可以在命令行上针对Kafka位置安装发送和接收消息。我也可以通过Java代码发送消息。这些消息显示在Kafka命令提示符中。我还有一个Kafka消费者的Java代码。代码昨天收到了消息。但是今天早上没有收到任何消息。代码没有更改。我想知道属性配置是否不太正确。这是我的配置: 制片人: 生产记录设置为 消费者: 对于Java代码: 少了什么?

  • bot发送嵌入消息,但仅发送文本而不发送gif。我有一个单独的gif文件。json文件,因此当有人使用该命令时,会有不同的GIF。但由于某种原因,它不起作用。也许是因为天气原因。json文件?我真的不知道,请帮帮我。我的代码: 该代码为。json文件: (我知道,它只有一个gif。) 当两个文件都在一个文件夹中时,我在控制台中出现的错误:图片:https://i.stack.imgur.com/8

  • 我对javascript和discord非常陌生。js,有人能帮我,告诉我如何设置做出反应的用户的角色吗?我自己做这件事有困难。