【发布时间】:2020-12-01 13:57:24
【问题描述】:
我找不到我的问题的解决方案。我想检查成员是否已经添加了特定反应 (✅)。如果他已经对那个反应产生了反应,他就不能把它去掉,也不能把它放回去。有人能帮助我吗 ?谢谢。
这是我的代码,也许它会帮助你:
头等舱:
public class TimingStart extends ListenerAdapter{
public static long ID;
public static long begin;
public static long end;
public void onGuildMessageReceived(GuildMessageReceivedEvent event) {
String[] args = event.getMessage().getContentRaw().split("\\s");
Random value = new Random();
int time = value.nextInt(25);
time += 5;
if (args[0].equals("!timing")) {
if (!event.getChannel().getId().equals("730784510932811859")) {
event.getChannel().sendMessage(event.getMember().getAsMention() + ", if you want to play, go to " + event.getGuild().getTextChannelById(730784510932811859l).getAsMention()).queue();
} else if (event.getChannel().getId().equals("730784510932811859")) {
EmbedBuilder eb = new EmbedBuilder();
eb.setColor(0xfcdf03);
eb.setTitle(Integer.toString(time) + " seconds");
eb.setDescription("React with ✅ when you think the time is up !");
event.getChannel().sendMessage(eb.build()).queue(msg -> {
msg.addReaction("✅").queue();
ID = msg.getIdLong();
});
begin = System.currentTimeMillis();
}
}
}
}
二等,这里我要看看他有没有反应:
public class TimingReaction extends ListenerAdapter {
public void onGuildMessageReactionAdd(GuildMessageReactionAddEvent event) {
if (event.getMessageIdLong() == TimingStart.ID && event.getReactionEmote().getName().equals("✅")) {
TimingStart.end = System.currentTimeMillis();
double tempsEcoule = ( (double) (TimingStart.end - TimingStart.begin) ) / 1000;
event.getChannel().sendMessage(event.getMember().getAsMention() + ", you reacted after " + tempsEcoule + " seconds !").queue();
// If the user already reacted, he can't remove the reaction and put it back.
}
}
}
【问题讨论】:
-
欢迎来到 Stackoverflow。请编辑您的问题并附加您到目前为止编写的代码并遇到问题。
-
我刚刚编辑添加了代码。
标签: java discord bots discord-jda