JDA如何用同一方法检查两种不同的事件类型?

问题描述

我知道这听起来非常简单和愚蠢,但老实说对Java来说是新的,并且很难弄清楚。

我有一个Reacts类,用于检查反应,还有onGameStart方法,用于启动我制作(或将制作)的“游戏”

@Override
public void onMessageReactionAdd(MessageReactionAddEvent e) {
    Game start = new Game();
    TextChannel pOneChannel = e.getGuild().getTextChannelsByName("player-1",true).get(0);
    TextChannel pTwoChannel = e.getGuild().getTextChannelsByName("player-2",true).get(0);
    
    if(e.getTextChannel().getIdLong() == channelID) {
        pOneChannel.sendMessage(playerOne()).queue();
        pTwoChannel.sendMessage(playerTwo()).queue();
    }
    if(e.getTextChannel() == pOneChannel) {
        if(e.getTextChannel() != pTwoChannel)
            printMessage("Waiting for players...",e);
        else
            start.onGameStart();
    }
    else if(e.getTextChannel() == pTwoChannel) {
        if(e.getTextChannel() != pOneChannel)
            printMessage("Waiting for players...",e);
        else
            start.onGameStart();
    }   
}

之前,我有Game类需要MessageReceivedEvent。但这当然意味着我需要将其作为上述类中的参数。当将其添加到上述类中时,我不能再覆盖并且它不起作用。 因此,然后让我的Game类具有一个方法,该方法与MessageReceivedEvent一起运行,该方法刚刚传入空值。但是,当然这行不通,我需要真正的价值。有人知道如何做到这一点吗?

我还有另一个错误是,我想在播放器1和播放器两个通道中检查表情响应。当两者都存在响应时,开始游戏。我试图在上面写,但是每次都运行Waiting....。感谢您的任何帮助,谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)