JDA - 获取自己消息的消息 ID

Posted

技术标签:

【中文标题】JDA - 获取自己消息的消息 ID【英文标题】:JDA - Get Message ID of own Message 【发布时间】:2020-10-20 19:17:12 【问题描述】:

我用 JDA 和我的 Questionist 编写了一个不和谐的机器人,我怎样才能获得我的机器人发送的消息的 ID?

channel.getLatestMessageIdLong()只给我用户发送的最新消息的 ID

【问题讨论】:

请提供您的代码以便进一步理解 【参考方案1】:

在 MessageAction 上使用队列回调:

channel.sendMessage(content).queue((message) -> 
    long messageId = message.getIdLong();
    // use messageId here
);

请记住,queue异步,这意味着您不能这样做

long[] messageId = new long[1];
channel.sendMessage(content).queue((message) -> 
    messageId[0] = message.getIdLong();
);
System.out.println(messageId[0]);

您传递给queue 的回调不会立即运行。任何依赖回调代码的代码都应该在回调内部:

channel.sendMessage(content).queue((message) -> 
    long messageId = message.getIdLong();
    System.out.println(messageId);
);

另见Using RestAction

【讨论】:

以上是关于JDA - 获取自己消息的消息 ID的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin discord jda 无法通过 id 获取消息

JDA - 发送消息

如何根据反应发送消息,然后根据用户消息发送另一个消息?使用 JDA

如何添加对嵌入消息 JDA 的反应

JDA - 如何等待下一条消息

JDA - 向特定频道发送消息