2017-09-16 3 views
2

Ich bin mit einem Discord Bot mit dem Java Discord Api bussy.Java Discord Api Moving Benutzer

ich bin irgendwie dazwischen, wenn es nicht funktioniert oder es ist ein Fehler. Ich möchte Leute zu einem Sprachkanal bewegen. Aber irgendwo geht der Code nicht weiter und gibt keine Ausnahme oder ein Break-Ereignis vom Compiler/IDE zurück.

@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(); 
    } 
} 

Die Zeile mit der enthaltenden Druckzeile scheint nicht ausgelöst zu werden.

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

, aber wenn ich diese debuggen wie

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

die Konsole schreibt falsch. und sogar wenn ich in einem der Kanäle bin.

so im irgendwie stören, wenn es ein Fehler oder ich bin nur dumm.

thx für helfende und grüße von mir!

Antwort

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

die Konsole schreibt falsch.

Der gleiche Wert wird als Bedingung in Ihrer if Kontrolle verwendet, und da der if Zustand false auswertet, ist es offensichtlich, dass der Block innerhalb der if (in der Abfrage der Druckzeile) nicht ausgeführt werden. Daher scheint die Zeile mit der enthaltenden Druckzeile nicht zu triggern.

Werfen Sie einen Blick auf If - Nuts and Bolts