2016-07-25 8 views
-1

Hallo ich mache ein Plugin für meine Minecraft-Server, aber jetzt habe ich ein Problem, ich bleibe mit und wenn sonst Anweisung während der Aktualisierung. Ich habe in vielen Foren gesucht, aber es hat nicht geholfen, jetzt bin ich hier. Ich benutze Eclipse.JAVA: Syntax-Fehler einfügen else-Anweisung zu vervollständigen if-Anweisung

 if(commandName.equals("t")){ 

     } 
      if(!player.hasPermission("Clans.teamchat")) { 
       player.sendMessage(ChatColor.RED + "You do not have permission to use this command."); 
       return true; 
      } 
      if(!tPlayer.hasTeam()) { 
       player.sendMessage(ChatColor.RED + "You are not on a team."); 
       return true; 
      } 
      else if(!getRank(PlayerName).canTeamChat()) { 
       player.sendMessage(ChatColor.RED + "You lack sufficient permissions to talk in team chat."); 
       return true; 
      } 
      else if (args.length < 1) { 
       player.sendMessage(ChatColor.RED + "You did not enter a message to send."); 
       return true; 
      } 
      else if (args[0].equalsIgnoreCase("@loc")) { 
      return true; 
      } 
+1

die IDE, die Sie verwenden, ist nicht relevant. Aber sehen Sie, warum dies redundant ist: if (commandName.equals ("t")) { }? hast du eine return statement nach dem letzten else if hinzugefügt? Wenn nicht, gibt es keine Rückgabe für alle möglichen Fälle – Stultuske

+1

Was/wo ist der Syntaxfehler, mit dem Sie Hilfe benötigen? – smarx

Antwort

1

Nicht sicher, dass alle relevanten Code ist könnte aber sein, dass Sie eine endgültige return Aussage nach diesen if fehlen. Der Grund dafür ist, dass Sie mit Ihrem Code, wie er jetzt ist, nicht den Fall behandeln, dass er keiner Ihrer Bedingungen entspricht, aber Sie müssen immer noch einen Rückgabewert für Ihre Methode angeben.

+0

In diesem Fall ist der Fehler "fehlende Rückgabeanweisung", aber der obige Fehler ist völlig anders. –

0

Sie müssen hier fleißiger sein; Es beginnt mit Formatierung und Klammern. Sie möchten wirklich, dass jeder Block nach einem if, sogar Stuff wie

wie Block innerhalb von {und} kommt wie

. Und dann formatieren Sie Ihren Code diszipliniert (Sie wissen, jede anständige IDE kann das für Sie tun) - um einfach den "Inhalt" zu erfassen, den Sie erstellen.

Mit anderen Worten: Ihr Problem ist einfach, dass Sie Syntaxregeln verletzen. Und der einfachste Weg, dies zu vermeiden ist, indem Sie Quellcode schreiben, der eine Struktur führt, die Sie führt.

Sie sehen, wahrscheinlich fehlt Ihnen eine endgültige Return-Anweisung, oder Sie legen zwei elses nacheinander - all das würde offensichtlich werden, wenn Sie nur Ihren Code mit den gleichen Regeln und Formatierung ständig aufschreiben würde.

Die andere Sache natürlich: solche langen If/Else-Ketten sind immer etwas, das Sie vermeiden wollen, indem Sie richtige OO-Designs machen. Sie fragen nicht nach Objekteigenschaften, um dann Entscheidungen zu treffen; stattdessen verwenden Sie Schnittstellen, die mit verschiedenen Implementierungen kommen; Also, später, rufen Sie nur diese Methoden (siehe here für eine detaillierte Erklärung davon).