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

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

陆翔飞
2023-03-14

共有1个答案

陆烨烁
2023-03-14

对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]);

传递给队列的回调不会立即运行。任何依赖于回调代码的代码都应该在回调中:

channel.sendMessage(content).queue((message) -> {
    long messageId = message.getIdLong();
    System.out.println(messageId);
});
 类似资料:
  • 我有:作者(BOT)、令牌和频道号。 我的问题是:如何在没有事件的情况下将消息发送到这个通道?

  • 问题内容: 我有自己的基于JDA的Discord BOT。我需要向特定频道发送短信。我知道如何将消息作为onEvent响应发送,但是在我的情况下,我没有此类事件。 我有:作者(BOT),令牌和通道号。 我的问题是:如何在 没有事件的情况下 将消息发送到此频道? 问题答案: 好吧,我想我知道你的意思。您无需进行任何事件即可获取频道ID和发送消息。您唯一需要做的就是实例化JDA,调用awaitRead

  • 我的机器人不能发送嵌入或常规文本信息,代码执行,但没有什么是发送在不和谐的通道。我遵循了JDA维基的设置,我不知道我做错了什么。 机器人登录码

  • 我对discord.js比较陌生,我已经开始构建一个bot项目,它允许用户通过命令创建一个消息,将该消息存储在我的专用服务器上的一个隐藏通道中,然后可以通过消息ID提取所述消息。 我使用了write,它返回在隐藏通道中发送的消息的消息ID,但我完全被get命令难住了。我试过在网上搜索,但我尝试的每个方法都会返回错误,如“无法读取未定义的属性'fetch'”或“'channel'未定义”。这里是我尝

  • 我试图使用Discord JDA API发送消息,但是每当我发送一条消息时,它就会无限地发送。 JDA版本:4.2.1_255 我尝试过什么: 使用GuildMessageReceivedEvent而不是MessageReceivedEvent来研究此问题 伪代码: SendPrivate ateMessage():