Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Discord Api移动用户_Java_Discord - Fatal编程技术网

Java Discord Api移动用户

Java Discord Api移动用户,java,discord,Java,Discord,我正忙于使用Java discord Api的discord机器人 如果它不起作用或者是一个bug,我就有点进退两难了。我想把人们转到一个语音频道。但是在某些地方,代码不会进一步,也不会从编译器/ide返回异常或中断事件 @Override public boolean called(String[] args, MessageReceivedEvent event) { if(args.length < 2 || event.getMessage().getMentionedUs

我正忙于使用Java discord Api的discord机器人

如果它不起作用或者是一个bug,我就有点进退两难了。我想把人们转到一个语音频道。但是在某些地方,代码不会进一步,也不会从编译器/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(channel.getMembers().contains(event.getMessage().getMentionedUsers().get(0)));
控制台写入false。甚至当我在其中一个频道时

所以我有点担心这是一个错误还是我太愚蠢了

谢谢我的帮助和问候

System.out.print(channel.getMembers().contains(event.getMessage().getMentionedUsers().get(0)));
控制台写入false

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

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

控制台写入false

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

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