Java Discord Api 移动用户

Java Discord Api Moving users

我正忙于 Java Discord Api 的 Discord 机器人。

如果它不起作用或它是一个错误,我有点陷入困境。我想将人们转移到语音频道。但是在某个地方,代码没有更进一步,也没有 return 来自编译器的异常或中断事件 / ide.

@Override
public boolean called(String[] args, MessageReceivedEvent event)
{
    if(args.length < 2 || event.getMessage().getMentionedUsers().size() < 1 || Permissions.GetPermissions(event) == 0)
    {
        System.out.print("you dont have the permissions");
        return false;
    }

    boolean channelexists = false;
    boolean userexists = false;

    for(VoiceChannel channel : event.getGuild().getVoiceChannels())
    {
        if(channel.getName().equalsIgnoreCase(args[1]))
        {
            System.out.print("found ---> " + channel.getName() + "\n");
            channelexists = true;
            break;
        }
    }

    for(VoiceChannel channel : event.getGuild().getVoiceChannels())
    {
        if(channel.getMembers().contains(event.getMessage().getMentionedUsers().get(0)))
        {
            System.out.print("found ---> " + channel.getMembers().contains(event.getMessage().getMentionedUsers().get(0).getName()) + "\n");
            userexists = true;
            break;
        }
    }

    return channelexists && userexists;
}

@Override
public void action(String[] args, MessageReceivedEvent event) 
{
    GuildController controller = new GuildController(event.getGuild());
    VoiceChannel voicechannel = null;

    for(VoiceChannel channel : event.getGuild().getVoiceChannels())
    {
        if(channel.getName().equalsIgnoreCase(args[1]))
        {
            voicechannel = channel;
            break;
        }
    }

    try
    {
        controller.moveVoiceMember((Member) event.getMessage().getMentionedUsers().get(0), voicechannel);
    }
    catch(Exception ex)
    {
        ex.printStackTrace();
    }
}

包含打印行的行似乎没有触发。

System.out.print("found ---> " + channel.getMembers().contains(event.getMessage().getMentionedUsers().get(0).getName()) + "\n");

但是当我这样调试时

System.out.print(channel.getMembers().contains(event.getMessage().getMentionedUsers().get(0)));

控制台显示错误。甚至当我在其中一个频道时。

所以我有点烦,如果它是一个错误或者我只是愚蠢。

感谢我的帮助和问候!

System.out.print(channel.getMembers().contains(event.getMessage().getMentionedUsers().get(0)));

the console writes false.

相同的值被用作 if 控件中的条件,并且由于 if 条件的计算结果为 false,很明显 if(在您的查询中,打印行)不会被执行。因此包含打印行的行似乎没有触发。

看看If - Nuts and Bolts