Bukkit Plugins Programmieren?
Hallo habe hier ein code der mit spigot 1.8.8 funktioniert aber mit 1.18.2 nicht mehr
else if (p.getItemInHand().getItemMeta().getDisplayName().equals("§cNavigator")) {
/* */
/* 67 */ final Inventory inv = Bukkit.createInventory(null, 54, "§cNavigator");
/* */
/* 69 */ Bukkit.getScheduler().runTaskLater((Plugin)Main.getInstance(), new Runnable()
/* */ {
/* */ public void run()
/* */ {
/* 73 */ inv.setItem(0, Items.createItem(Material.BLACK_STAINED_GLASS, 7, "§4", null));
/* 74 */ p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1.0F, 1.0F);
/* */ }
/* 77 */ }20L);
immer unten bei den 20L kommt eine fehlermeldung mit spigot 1.8.8 aber nicht verstehe den unterschied leider nicht bitte um hilfe
2 Antworten
- Zwischen 1.8. und 1.18 hat sich eine ganze Menge verändert.
- Was ich so auf den ersten Blick über den Java Code sagen kann:
else if (p.getItemInHand().getItemMeta().getDisplayName().equals("§cNavigator")) {
final Inventory inv = Bukkit.createInventory(null, 54, "§cNavigator");
// Mal hoffen dass diese Main classe existiert
Bukkit.getScheduler().runTaskLater( (Plugin) Main.getInstance(), new Runnable() {
public void run() {
inv.setItem(0, Items.createItem(Material.BLACK_STAINED_GLASS, 7, "§4", null));
p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1.0F, 1.0F);
}
} 20L); // Komma fehlt zwischen "}" und "20L"
// Hoffentlich schließt jemand die geschweifte Klammer von dem else if da oben
eine sache funktioniert immer noch nicht könnten sie mir vielleicht dbaei auch helfen ?
Kannst du mal bitte die Auto-Formatierung von IntelliJ mit Strg+Alt+L betätigen? Dann sieht man nämlich so etwas wie fehlende Kommas sofort... Zudem sind a eine ganze Menge an gelben Markern - wenn du da drüberschwebst sagen die dir normalerweise was los ist.
Oh, das getName da oben meinst du!
Da hast du "()" vergessen. getName() ist eine Funktion keine Variable!
ok funktioniert trotzdem irgendwie nicht ist rot gemarkt ?
Warscheinlich, da das Inventory Objekt InventoryClickEvent.getInventory() keine getName() Methode hat. https://hub.spigotmc.org/javadocs/spigot/org/bukkit/inventory/Inventory.html Das was du warscheinlich suchst is die InventoryClickEvent.getView().getTitle() Methode. https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/inventory/InventoryEvent.html#getView() https://hub.spigotmc.org/javadocs/spigot/org/bukkit/inventory/InventoryView.html
und die methode funktioniert nicht ich weiß nicht was ich machen soll
@doej13 aber dann wird alles andere rot wenn ich das InventoryClickEvent weg mache
Wann habe ich etwas davon gesagt, dass du das "InventoryClickEvent" wegmachen sollst?!?!? Steht da jetzt "e.getView().getTitle().equals("§cNavigator")" und nicht "e.getInventory.getName.equals("§cNavigator")"?
Und außerdem ist hier nicht das Problem, dass der Code in einer neueren Version nicht mehr funktionieren würde. Der Code hat niemals funktioniert. Das Problem ist, dass du - wie es mir scheint - weder Java kannst noch wüsstest, was diese Code-Zeilen, die du da zusammenkopiert hast, bedeuten. Für den Anfang wäre es schon einmal gut, wenn du über eine der wichtigsten Tastenkombinationen bescheid weißt: Strg+Leertaste. Diese schlägt dir alle Methoden und Variablen eines Objekts vor und beschreibt was diese tun. Schau dir am besten einmal ein paar kurze Java-Tutorials an. Beispiel: https://www.youtube.com/watch?v=HuYs2Vp3GtM Ich möchte dir ja gerne helfen, kann das aber leider nicht, wenn Ich mit allem was ich sage, an dir vorbeirede.
ich kenne mich nicht sehr mit programmieren aus aber ich glaube es liebt daran weil 1.8.8 eine viel ältere version als 1.18.2 ist
ja das denke ich auch aber was ist der unterschied zu jetzt was muss ich ändern
wieso funktionier hier https://prnt.sc/Ku9l5NttfxxV das getname() nicht verstehe ich leider nicht