【问题标题】:Java Discord Api Moving usersJava Discord Api 移动用户
【发布时间】:2018-02-25 15:41:27
【问题描述】:

我正忙于使用 Java Discord Api 处理一个不和谐机器人。

如果它不起作用或它是一个错误,我有点陷入困境。我想将人们转移到语音频道。但是在某个地方,代码没有走得更远,也没有从编译器/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)));

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

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

感谢我的帮助和问候!

【问题讨论】:

    标签: java discord


    【解决方案1】:
    System.out.print(channel.getMembers().contains(event.getMessage().getMentionedUsers().get(0)));
    

    控制台写错了。

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

    看看If - Nuts and Bolts

    【讨论】:

      猜你喜欢
      • 2021-02-24
      • 2018-03-04
      • 2018-07-30
      • 2021-02-02
      • 2021-05-07
      • 2018-08-19
      • 2020-12-27
      • 2021-05-10
      • 1970-01-01
      相关资源
      最近更新 更多