我忙于使用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)));
控制台写错误。甚至当我进入其中一个频道时。
所以,如果它是一个bug或者我只是愚蠢的话,我有点烦心。
感谢我的帮助和问候!答案 0 :(得分:0)
System.out.print(channel.getMembers().contains(event.getMessage().getMentionedUsers().get(0)));
控制台写错误。
相同的值用作if
控件中的条件,并且由于if
条件的计算结果为false
,if
内的块显而易见}(在您的查询中打印行)将不会被执行。因此,包含打印行的行似乎不会触发。