如何在 JDA 中编辑嵌入
How to edit an Embed in JDA
所以我想知道如果我用我的 Bot 发送一个嵌入的东西,我可以在之后用 Bot 编辑它吗?
如果可以的话,请教我怎么做。
这是我目前得到的代码,但不知道如何编辑 EmbedBuilder:
public class Giveaway extends ListenerAdapter {
@Override
public void onMessageReceived(MessageReceivedEvent event) {
if (event.getMessage().getContentDisplay().startsWith("+giveaway")) {
if (event.getMessage().getContentDisplay().substring(10, 11) != null) {
long msgid = event.getMessageIdLong();
String count = event.getMessage().getContentDisplay().substring(10, 11);
EmbedBuilder eb = new EmbedBuilder();
eb.setTitle("It's GIVEAWAY-TIME!");
eb.setDescription("Prize: " + "\n Winners: " + count);
eb.setColor(Color.BLUE);
event.getTextChannel().sendMessage(eb.build()).queue();
}
}
}
}
明确地说,我想做的是在之后为消息添加页脚并在某些情况下更改描述。
我已经尝试了一些方法,但我还没有想出解决方案。
如果你能回答就太好了。
亲切的问候,
lxxrxtz
您可以保留嵌入生成器并创建新的嵌入:
eb.setFooter(...);
MessageEmbed embed = eb.build();
然后您所要做的就是使用您要编辑的消息调用 message.editMessage(embed).queue()
。您可以从 sendMessage
:
中的回调访问消息
channel.sendMessage(embed).queue(message -> {
eb.setFooter(...);
message.editMessage(eb.build()).queue();
});
所以我想知道如果我用我的 Bot 发送一个嵌入的东西,我可以在之后用 Bot 编辑它吗? 如果可以的话,请教我怎么做。
这是我目前得到的代码,但不知道如何编辑 EmbedBuilder:
public class Giveaway extends ListenerAdapter {
@Override
public void onMessageReceived(MessageReceivedEvent event) {
if (event.getMessage().getContentDisplay().startsWith("+giveaway")) {
if (event.getMessage().getContentDisplay().substring(10, 11) != null) {
long msgid = event.getMessageIdLong();
String count = event.getMessage().getContentDisplay().substring(10, 11);
EmbedBuilder eb = new EmbedBuilder();
eb.setTitle("It's GIVEAWAY-TIME!");
eb.setDescription("Prize: " + "\n Winners: " + count);
eb.setColor(Color.BLUE);
event.getTextChannel().sendMessage(eb.build()).queue();
}
}
}
}
明确地说,我想做的是在之后为消息添加页脚并在某些情况下更改描述。
我已经尝试了一些方法,但我还没有想出解决方案。
如果你能回答就太好了。
亲切的问候, lxxrxtz
您可以保留嵌入生成器并创建新的嵌入:
eb.setFooter(...);
MessageEmbed embed = eb.build();
然后您所要做的就是使用您要编辑的消息调用 message.editMessage(embed).queue()
。您可以从 sendMessage
:
channel.sendMessage(embed).queue(message -> {
eb.setFooter(...);
message.editMessage(eb.build()).queue();
});