JDA 正确发送嵌入,但显示“应用程序未响应”

问题描述 投票:0回答:1

我一直在 Discord 上开发《命运 2》Raidbot。在这里我遇到了一个问题,我还没有找到解决方案。

我的问题:正确嵌入但出现错误消息, 输入 / 命令后,嵌入会立即发送。

到目前为止我的代码:

event.getChannel().sendMessageEmbeds(mb) // Mb is a simple created MessageEmbed
                .setActionRow(List.of(          // Here are normally some buttons as you see in the image above
                        
                )).queue(message -> {   // Here I want to extract the messageId from the freshly created message by the Discord bot
                    String messageId = message.getId();
                    postMap.put(messageId, new Post(event.getUser().getId(), raid.getPlayerCount()));   // messageId gets saved in a map for later use
                }
        );

作为可能导致问题的进一步信息:我有一个保存代码的 SlashHandler (希望)结构清晰且可读(=.

public Listener(List<Slash> slashList) {
        slashList.forEach(v -> SLASHMAP.put(v.getName(), v));
    }
    @Override
    public void onSlashCommandInteraction(@NotNull SlashCommandInteractionEvent event) {
        SLASHMAP.get(event.getName()).onSlashCommandEvent(event, POSTMAP);
    }

我已经尝试过:

  1. 使用 event.event.replyEmbeds() -> 似乎没有好的方法来提取 messageID
  2. 尝试使用 hook() 和 deferReply() -> 也许还有更多需要回复的内容
java discord-jda
1个回答
0
投票

我添加了第二个 event.reply()。这阻止了交互失败/不响应。

event.reply("").queue();
event.getChannel().sendMessageEmbeds(mb).queue(message -> {   // Here I want to extract the messageId from the freshly created message by the Discord bot
                String messageId = message.getId();

});

这不是一个优雅的解决方案,但目前似乎可行。

© www.soinside.com 2019 - 2024. All rights reserved.