• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot [Fehler] for-Schleife

CLKXaTu

Minecrafter
Registriert
29 Januar 2022
Beiträge
15
Diamanten
260
Guten Tag, folgendes lässt mich schwitzen.

Egal wie ich die Sache angehe. Es wird immer die Naricht ausgegeben die nur ausgegeben werden soll wenn nichts gefunden wurde.
Hier ein kleiner Beispielcode der meinem ähnelt.


Java:
            for(BlockState blockState : chunk.getTileEntities()) {
                
                // If blockState instanceof Sign
                
                if(blockState instanceof Sign) {
                    
                    Sign sign = (Sign) blockState;
                    
                    if(sign.getLine(3).equalsIgnoreCase(lineString)) {
                        
                        player.sendMessage("Schild gefunden");
                        
                        break;
                        
                    } else {
                        
                        player.sendMessage("Konnte nicht gefunden werden");
                        return;
                        
                    }
                    
                }

Ich habe es schon in jeglichen Formen versucht. Eigentlich soll die for-Schleife nach dem gefundenen Schild beendet werden. Siehe break; | Das gleiche gilt für die else - Methode falls keines der Schilder diese Line besitzt.

Aber die Naricht dass das Schild nicht gefunden werden konnte kommt auch wenn das Schild gefunden wurde obwohl die Schleife abgebrochen wird.

Greets
 

Avankziar

Schafhirte
Registriert
12 Februar 2018
Beiträge
135
Alter
33
Diamanten
324
Minecraft
Avankziar
Ähm, verbessere mich falls das nicht stimmt, aber du suchst doch "alle" Schilder heraus richtig? Dann müsstest du doch in der "else" Anweisung keine "return" ausführen, weil du willst ja weiter suchen oder nicht?
Weil die "else" wird ja aufgerufen, wenn "sign.getLine(3).equalsIgnoreCase(lineString) != true" ist nicht?
Denn das return unterbricht ja jedwede weitere suche nach dem Schild. Und es kann ja sein, das dort mehrere Schilder sind oder.

Mfg Avan
 
Oben