Frage von xDeron, 36

Warum führt sich auf dem ItemStack: "Abbrechen" nichts aus (siehe Beschreibung für den Code!)?

Code: http://pastebin.com/GAYNrPUm

Ein Fehler wurde in der Console nicht ausgegeben.


Sonstige Informationen:


Verwendete API: Spigot 1.8

Mit folgendem Programm programmiert: Eclipse

Folgende Java-Version wurde verwendet: Java 1.8 u77 (Update 77)

Expertenantwort
von regex9, Community-Experte für Programmierung, 19

Hast du denn schon einmal den Debugger angeworfen und nachgeschaut? Es kann mehrere Gründe haben: Der Eventhandler wird nicht aufgerufen, die jeweiligen if-Blöcke werden nicht angesprungen, eine NullPointerException wird ausgelöst, ....

Kommentar von xDeron ,

Ich weiß nicht, wie man debuggt....

Kannst du mir es erklären??

Kommentar von regex9 ,

Der Debugger ist ein Tool, mit dem du Haltepunkte in deinem Quellcode setzen kannst, um zur Laufzeit der Anwendung in diese Stellen hineinzuspringen und nachvollziehen zu können, welche Seiteneffekte die Ausdrücke auslösen und welchen Weg der Programmfluss nimmt.

Eclipse hat einen Debugger. Wie du ihn verwendest, beschreibt Lars Vogel sehr ausführlich: 

http://www.vogella.com/tutorials/EclipseDebugging/article.html

Letztendlich musst du nur einen Haltepunkt innerhalb des Eventhandlers setzen, den Debugger starten, die gewünschte Aktion in der Anwendung durchführen und dann, wenn der Fluss hineinspringt, Schritt für Schritt weitergehen, um den weiteren Ablauf nachzuvollziehen.

Kommentar von xDeron ,

Mir ist grad aufgefallen, das du schon mal ne Frage von mir beantwortet hast: 

https://www.gutefrage.net/frage/warum-oeffnet-sich-kein-inventar-wenn-ich-ein-re...

Antwort
von Tobihogh, 9

Über spring mal die Abfrage nach dem Namen des Items

Kommentar von xDeron ,

Ehm wozu denn bitte das?

Es muss abgefragt werden, damit auf jedem ItemStack eine einzelnde Funktion verfügbar ist.

(Bei mir zumindestens)

Ich möchte nicht, das mann auf irgent ein Item draufklickt, das dann immer wieder die selber Funktion vorkommt...

Kommentar von Tobihogh ,

Ich weiß nicht wie die Farbcodes im Hintergrund behandelt werden vielleicht werden sie aus dem Namen herrausgenommen und daher gibt es bei der Abfrage dann ein false. Oder versuch es mal mit contains. Sonst setzt dir ein paar Systemausgaben als flags.

Keine passende Antwort gefunden?

Fragen Sie die Community