【发布时间】: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)));
控制台写入错误。甚至当我在其中一个频道中时。
如果它是一个错误或我只是愚蠢,我有点麻烦。
感谢我的帮助和问候!
【问题讨论】: