java - 如何让我的 Discord 机器人编辑其消息?
问题描述
我有 2Message
秒(特别是 2EmbedBuilder
秒),我希望机器人发送第一个,然后在单击按钮Message
时将其编辑为第二个。Message
EmbedBuilder one = new EmbedBuilder();
EmbedBuilder two = new EmbedBuilder();
one.setTitle("1");
two.setTitle("2");
机器人将sendMessage(one.build()).queue()
,然后它会在嵌入中添加一个按钮(在我的情况下),如果用户单击该按钮,嵌入将被编辑为two
.
我已经阅读了文档,但没有得到太多信息,所以我认为 Stack Overflow 会有所帮助。
解决方案
这可以通过发送消息并为ButtonClickEvent
.
- 使用按钮发送消息
public void sendMenu(MessageChannel channel) {
channel.sendMessage("Page 1")
.setActionRow(Button.secondary("page:2", "Next")) // add a button with id "page:2" which we can use later
.queue();
}
- 侦听具有该自定义 ID 的按钮
public class MyListener extends ListenerAdapter {
@Override
public void onButtonClick(ButtonClickEvent event) {
if (event.getComponentId().equals("page:2")) {
event.editMessage("Page 2")
.setActionRow(Button.secondary("page:3", "Next")) // update button id
.queue();
}
}
}
您应该阅读此页面以获取更多详细信息:交互
推荐阅读
- javascript - 如何让我的 NPM 模块正确安装其依赖项?
- c# - 比较字符串值并拆分它们
- maps - 为什么 openlayers 4 hasrsineDistance 距离的计算方式不同
- wso2 - WSO2 APIM 应用程序注册 urn:未找到批准操作
- r - 使用 textInput 选项在 R Shiny 中对数据框进行子集化
- typo3 - 我在哪里可以安全地下载旧的 TYPO3 版本?
- wso2 - WSO2 EI 6.1.1 发布请求正文未发送
- python-3.x - GraphFactory 找不到 gremlin.graph 属性配置
- vue.js - 使用 vuex-persistedstate 重定向到 fecth/asyncData 不能 100% 工作
- python - Python - 微软的 Face Api - 没有持久的人脸