[Spigot] InventoryClickEvent Fehler?

2 Antworten

Guten Abend,

für dich als Tipp, wenn du keine Ausgabe erzeugt bekommst, dann wird es meistens daran liegen, dass der jeweilige Block der Ausgabe nicht aufgerufen wird. Da würde ich dir empfehlen zunächst die Ausgabe direkt in die Funktion zu setzen (ohne if oder sonst etwas), damit du sehen kannst, ob die Funktion aufgerufen wird. Danach kannst du die Ausgabe immer einen Block tiefer legen und sehen, ob diese dort immernoch funktioniert und damit dein Troubleshooting betreiben und sehen an welcher Stelle, die Ausgabe nicht mehr ausgegeben wird.

Ich würde dir auch raten für die Überprüfung eine seperate Ausgabe zu verwenden, wie einfach

player.sendMessage("t"); 

oder

Bukkit.getLogger().info("t");

MfG

Woher ich das weiß:Hobby – Erfahrung mit Minecraft und Programmierung von Plugins

Juboy6000 
Fragesteller
 05.10.2019, 22:58

Vielen Dank, habe das schon vorher mal getestet und ja eine Ausgabe ohne eine if bekomme ich

Bild: https://prnt.sc/pfcyol

0
G3RRanc3r  05.10.2019, 23:21
@Juboy6000

Könnte es sein, dass §6§lNavigator vielleicht der falsche Name ist und stattdessen dort einfach nur Navigator richtig wäre? Versuch am besten mal den Namen des Inventars in deiner Nachricht auszugeben, anstatt ein t, dann wirst du sehen, wie der Name definiert ist

0
G3RRanc3r  05.10.2019, 23:39
@Juboy6000

Versuche es mal mit

if(e.getInventory().getName().contains("Navigator")) { ..
0
Juboy6000 
Fragesteller
 05.10.2019, 23:54
@G3RRanc3r

Jo, wenn man es genau so macht geht es sobald man es mit §6§l macht nichtmehr obwohl der Name so ist, wie kann das sein?

MFG

0
G3RRanc3r  06.10.2019, 00:12
@Juboy6000

Es kann sein, dass eine andere Formatierung benutzt wird, als die §6§l, wie beispielsweise, dass die Farbe eigenständig ausgewählt wird, wodurch sich der String selbst natürlich ändert. Ich glaube du könntest eine genaue Ausgabe des Navigators haben, indem du es mit

Bukkit.getLogger().info(e.getInventory().getName());

versuchst, da es dort nicht formatiert wird. Dann könntest du diesen String auch mit contains angeben

0
Juboy6000 
Fragesteller
 06.10.2019, 00:15
@G3RRanc3r

Okay probiere ich auch gleich mal, habe es jetzt auch zum laufen bekommen indem ich Inventory ... = Bukkit.createNewInventory ... Einfach außerhalb der Methode gesetzt habe mit public static ... und dann einfach als Abfrage :

if(e.getInventory().equals(NavigatorInventory.NavigatorInv)) {

Und das geht

https://prnt.sc/pfdp91

0
Juboy6000 
Fragesteller
 06.10.2019, 00:33
@G3RRanc3r

Aber jetzt das Item abfragen geht auch wieder nicht :(

Und das Item kann ich ja nicht so abfragen wie das Inventory jetzt xD

0
G3RRanc3r  06.10.2019, 00:34
@Juboy6000

Das ist sehr interessant. Aber solange es funktioniert, ist es doch gut

0
Juboy6000 
Fragesteller
 06.10.2019, 15:14
@G3RRanc3r

Guten Mittag, habe nochmal was getestet, und alles lag nur an den Farbcodes, das heißt sobald ich einfach das Item ohne §6§l erstellt habe und dies abgefragt haben ohne Farbcode funktioniert alles einwandfrei sowohl das Inv wie das Item

0
G3RRanc3r  06.10.2019, 15:43
@Juboy6000

Das ist sehr gut. Dann viel Spaß und weiterhin viel Erfolg damit

0
Juboy6000 
Fragesteller
 06.10.2019, 15:56
@G3RRanc3r

Jo, vielen Dank mal schauen ob mit Farbcode auch irgendwie geht.

0

An welcher stelle ist dennn das if false?