• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

Fehler Meldung "else without if"

pumpgun99

pumpgun99

Neues Mitglied
ich komm nicht voran es zeigt immer diese Fehler Meldung "else without if"
Bin für jede hilfe dankbar:

package de.pumpgun99.plugin1.commands;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class FlyCommand implements CommandExecutor {

@Override
public boolean onCommand(CommandSender s, Command cmd, String label, String[] args){
if(s.hasPermission("fly.own")){
if(s instanceof Player){
Player p = (Player)s;
if(!p.getAllowFlight()){
p.setAllowFlight(true);
p.setFlying(true);
p.sendMessage("Lets fly!");
}else{
p.setAllowFlight(false);
p.setFlying(false);
p.sendMessage("No fly");
}


} else {
s.sendMessage("§c Du bist ein kein Spieler bitte Logge dich ein ");

}else {
s.sendMessage("§c Du hast keine Rechte ");

return false;
}

}
}
}
 
L

LimDul

Top Contributor
Code bitte in Code-Tags, dann bleiben die Einrückungen erhalten:
Code:
package de.pumpgun99.plugin1.commands;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class FlyCommand implements CommandExecutor {

    @Override
    public boolean onCommand(CommandSender s, Command cmd, String label, String[] args){
        if(s.hasPermission("fly.own")){
            if(s instanceof Player){
                Player p = (Player)s;
                if(!p.getAllowFlight()){
                    p.setAllowFlight(true);
                    p.setFlying(true);
                    p.sendMessage("Lets fly!");
                }else{
                    p.setAllowFlight(false);
                    p.setFlying(false);
                    p.sendMessage("No fly");
                }


        } else {
                s.sendMessage("§c Du bist ein kein Spieler bitte Logge dich ein  ");

            }else {
            s.sendMessage("§c Du hast keine Rechte  ");

        return false;
    }

    }
    }
}

Das erste was auffällt - die Einrückungen sind willkürlich. Daher ist es gerade extream schwer zu erkennen ,welches else zu welchem if gehört (Die Verschachtelungstiefe ist auf jeden Fall auch zu hoch, der Code ist kaum lesbar). Aber korrigieren wir mal die Einrückungen (Die erste und letzte öffenende Klammer von der Klasse lass ich mal weg)

Java:
public boolean onCommand(CommandSender s, Command cmd, String label, String[] args){
    if(s.hasPermission("fly.own")){
        if(s instanceof Player){
            Player p = (Player)s;
            if(!p.getAllowFlight()){
                p.setAllowFlight(true);
                p.setFlying(true);
                p.sendMessage("Lets fly!");
            }else{
                p.setAllowFlight(false);
                p.setFlying(false);
                p.sendMessage("No fly");
            }
        } else {
            s.sendMessage("§c Du bist ein kein Spieler bitte Logge dich ein  ");
    }else {
        s.sendMessage("§c Du hast keine Rechte  ");

       return false;
    }
}
}
Was fällt auf? Da ist eine schließende Klammer zu viel. Vermutlich muss die schließende Klammer hinter der "No Fly" Ausgabe weg, und dann sollte alles passen.

Bei sowas generell die Formatierung der IDE nutzen, dass kann jede gute IDE - dann merkt man schnell, das mit den Klammern was im Argen liegt.
 
kneitzel

kneitzel

Top Contributor
Was auf jeden fall auch nicht gehen kann (und wohl den Fehler vervorruft:
Java:
} else {
    s.sendMessage("§c Du bist ein kein Spieler bitte Logge dich ein  ");
} else

Zwei else hintereinander geht natürlich nicht. ==> Die }, die am Ende zu viel ist, fehlt da wohl.

Hier ist meine generelle Forderung:
Teile und Herrsche!

Also mach mehr Methoden! Gerade als Anfänger sollte man Methoden kurz und prägnant halten mit guten Namen. Dann hat man auch automatisch eine Chance, seinen eigenen Code nachzuvollziehen.

Und sowas kann man schnell kürzen / aufteilen:

Ursprünglicher Code - mit verbesserter } und das return false ans Ende gestellt, denn alle Durchgänge müssen einen Wert zurück geben!:
Java:
public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
    if(s.hasPermission("fly.own")){
        if(s instanceof Player){
            Player p = (Player)s;
            if(!p.getAllowFlight()){
                p.setAllowFlight(true);
                p.setFlying(true);
                p.sendMessage("Lets fly!");
            }else{
                p.setAllowFlight(false);
                p.setFlying(false);
                p.sendMessage("No fly");
            }
        } else {
            s.sendMessage("§c Du bist ein kein Spieler bitte Logge dich ein  ");
        }
    } else {
        s.sendMessage("§c Du hast keine Rechte  ");
    }
    return false;
}

So man nur Commands erlaubt, wenn die Rechte stimmen und ein Spieler vorliegt, dann wäre eine Vereinfachung, dies an den Anfang zu ziehen:
Java:
public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
    if(!s.hasPermission("fly.own")) {
        s.sendMessage("§c Du hast keine Rechte  ");
        return false;
    }
    
    if(!(s instanceof Player) {
        s.sendMessage("§c Du bist ein kein Spieler bitte Logge dich ein  ");
        return false;
    }
    
    // Restlicher code ...
}

Das ist dann sozusagen eine Validierung am Anfang der Methode ...

Aber ansonsten werden Funktionalitäten raus gezogen, also z.B. mit einer Methode flyPlayer oder so:
Java:
public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
    if(!s.hasPermission("fly.own")) {
        s.sendMessage("§c Du hast keine Rechte  ");
        return false;
    }

    if(!(s instanceof Player) {
        s.sendMessage("§c Du bist ein kein Spieler bitte Logge dich ein  ");
        return false;
    }

    return flyPlayer((Player) s);
}

public boolean flyPlayer(Player p) {
    if(!p.getAllowFlight()){
        p.setAllowFlight(true);
        p.setFlying(true);
        p.sendMessage("Lets fly!");
    }else{
        p.setAllowFlight(false);
        p.setFlying(false);
        p.sendMessage("No fly");
    }
    return true;
}

So in der Art. Auch die Methode könnte man noch unterteilen oder umstrukturieren, aber ich wollte er nur einmal vom Prinzip her zeigen....
 
temi

temi

Top Contributor
So in der Art. Auch die Methode könnte man noch unterteilen oder umstrukturieren, aber ich wollte er nur einmal vom Prinzip her zeigen....
Ich würde die Hilfsmethoden allerdings "private" machen. Sie werden ja i. d. R. nicht von außerhalb der Klasse aufgerufen, bzw. sollen das auch nicht werden können: private boolean flyPlayer(Player p)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Compiler-Fehler Fehler Meldung java.lang.NumberFormatException: empty String Java Basics - Anfänger-Themen 2
K Fehler Meldung java.lang.NumberFormatException: empty String Java Basics - Anfänger-Themen 1
S Fehler Meldung und Runntimeexaption Java Basics - Anfänger-Themen 15
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
B Nicht reproduzierbarer Fehler bei Kompilierung - Shortcut "Bereinigung" Compiler ? Java Basics - Anfänger-Themen 4
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
P Was bedeutet dieser Fehler? Java Basics - Anfänger-Themen 31
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
N java.util.InputMismatchException Fehler Java Scanner Java Basics - Anfänger-Themen 1
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
R Ich sehe meinen fehler nicht Java Basics - Anfänger-Themen 8
Johannes_ece Fehler: Application Terminated (TypeError): var$0.$moveToolTo is not a function Java Basics - Anfänger-Themen 4
GermanPie Fehler in Putty (kein Hauptmanifestattribut, in jar) Java Basics - Anfänger-Themen 4
M Scannen von *.txt - Dateien; wo sind der oder die Fehler? Java Basics - Anfänger-Themen 4
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
B if Clause Fehler Java Basics - Anfänger-Themen 2
G Fibonacci Zahlenreihe Fehler Java Basics - Anfänger-Themen 4
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
B Fehler, aber ich weiß nicht warum Java Basics - Anfänger-Themen 3
C system cannot be resolved Fehler in Eclipse Java Basics - Anfänger-Themen 18
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
M Compiler-Fehler Fehler beim Ausführen des Codes Java Basics - Anfänger-Themen 25
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
N Fehler bei JUnit Test Java Basics - Anfänger-Themen 5
C Projekte in 2 versch. Arbeitsbereichen: auf ein Projekt verweisen (ohne Fehler zu bekommen) Java Basics - Anfänger-Themen 8
R Java SQL Fehler! Java Basics - Anfänger-Themen 4
L non-static Fehler Java Basics - Anfänger-Themen 16
C Fehler beim Speichern (Build projekt) Java Basics - Anfänger-Themen 42
L Methoden Wie Löse ich ext Methoden Aufruf Fehler? Java Basics - Anfänger-Themen 3
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
C Fehler bei der Compilierung Java Basics - Anfänger-Themen 1
T Mein Programm hat Fehler Java Basics - Anfänger-Themen 4
S Warum dieser Fehler? Java Basics - Anfänger-Themen 1
B Fehler bei Ausführung Java Basics - Anfänger-Themen 5
Kirby.exe Fehler beim Ausgeben Java Basics - Anfänger-Themen 2
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
L Wo ist der Fehler? Java Basics - Anfänger-Themen 87
J Fehler in Programm: Index -1 out of bounds for length 0 Java Basics - Anfänger-Themen 5
M JOptionPane Fehler bei "Abbrechen" des Fensters Java Basics - Anfänger-Themen 10
N Fehler bei string Attribut! Java Basics - Anfänger-Themen 18
W Wo liegt der Fehler? Java Basics - Anfänger-Themen 8
G Palindromtest mit Angabe WO der Fehler ist Java Basics - Anfänger-Themen 2
J Wo ist der Fehler im Programmcode? Java Basics - Anfänger-Themen 7
J Fehler den ich nicht kapiere Java Basics - Anfänger-Themen 9
H "AWT-EventQueue-0" Fehler Java Basics - Anfänger-Themen 3
S Brauche hilfe in Java [Fehler in mein Code]? Java Basics - Anfänger-Themen 2
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
C Fehler getMaxOf Java Basics - Anfänger-Themen 4
mars90 Fehler in der Variablen Deklaration Java Basics - Anfänger-Themen 8
M in Tik Tak Toe "KI" Fehler Java Basics - Anfänger-Themen 2
F ClassCastException Fehler bei Bounds Java Basics - Anfänger-Themen 3
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
L Fehler bei der AUsführung der .class Datei Java Basics - Anfänger-Themen 23
der_Schokomuffin Fehler bei Zufallsgeneration von Zahlen Java Basics - Anfänger-Themen 7
H Frage zu fehler Java Basics - Anfänger-Themen 24
F Swing - Fehler - Paint Methode Java Basics - Anfänger-Themen 7
C Überprüfen eines Queltextes auf Syntax-Fehler und Laufzeitfehler Java Basics - Anfänger-Themen 2
M java.util.scanner Fehler Java Basics - Anfänger-Themen 5
F Warum erhalte ich diese Fehler bei der Einbindung von SQLite JDBC in Eclipse? Java Basics - Anfänger-Themen 1
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
L Fehler im Programm bei Ausgabe Java Basics - Anfänger-Themen 21
F Type safety: A generic array of.. Fehler Java Basics - Anfänger-Themen 3
K Fehler beim Programmieren von TicTacToe Java Basics - Anfänger-Themen 12
S if_else Fehler Java Basics - Anfänger-Themen 9
P Fehler: Hauptklasse [Klassenname] konnte nicht gefunden oder gelad Java Basics - Anfänger-Themen 4
L Fehler beim laden eines Icons Java Basics - Anfänger-Themen 3
Z Montageberechnungs programm, finde leider den Fehler nicht Java Basics - Anfänger-Themen 13
D Xpath Fehler Java Basics - Anfänger-Themen 4
Harlequin Compiler-Fehler Text Adventure - "Long Output" Fehler Java Basics - Anfänger-Themen 3
W JavaFX import Fehler/Zellularautomaten Java Basics - Anfänger-Themen 1
N Abbrechen einer Eingabe endet im Fehler Java Basics - Anfänger-Themen 3
A Fehler bei .toArray Java Basics - Anfänger-Themen 5
I Unbekannter Array fehler Java Basics - Anfänger-Themen 10
Hanschyo If Bedingung Fehler Java Basics - Anfänger-Themen 7
T Komischer Fehler mit einer if-Bedingung Java Basics - Anfänger-Themen 3
S Finde den fehler nicht Java Basics - Anfänger-Themen 1
T Erste Schritte JAR import Fehler Java Basics - Anfänger-Themen 2
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
H 3 oder 4 Fehler im Code Java Basics - Anfänger-Themen 0
H 3 oder 4 Fehler im Code Java Basics - Anfänger-Themen 19
M F4 und Java - Fehler Java Basics - Anfänger-Themen 3
M Methoden Fehler und finde die Lösung nicht wirklich Java Basics - Anfänger-Themen 6
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
Y Caesar Verschlüsselung Fehler Java Basics - Anfänger-Themen 4
I Datentypen input.nextCharAt(0) wirft einen Fehler Java Basics - Anfänger-Themen 3
D Primzahlenprogramm-Fehler Java Basics - Anfänger-Themen 7
O Unerklärlicher Fehler Unresolved compilation problem Java Basics - Anfänger-Themen 2
M Was brauche ich für Java + Fehler Java Basics - Anfänger-Themen 2
M Array Summe- wo ist der Fehler ? Java Basics - Anfänger-Themen 13
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
H Wieso wird mir ein Fehler angezeigt? Java Basics - Anfänger-Themen 5
L Variablen Fehler bei der Entschlüsselung. Java Basics - Anfänger-Themen 5
L Variablen Unbekannter Fehler Java Basics - Anfänger-Themen 14
R Fehler bei ASCII Char zu Int Umwandlung Java Basics - Anfänger-Themen 2
M GUI - Fehler abfangen beim Dividieren Java Basics - Anfänger-Themen 8
P Fehler Behebung OOP Java Basics - Anfänger-Themen 2
J Fehler abfangen mit einer Bedingung Java Basics - Anfänger-Themen 3
T Input/Output Leerzeilen in Ausgabe -> finde den Fehler nicht Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Anzeige

Neue Themen


Oben