Nun, fangen wir mal an.

  1. Wenn du schon "Player p = (Player) sender;" definierst, solltest du auch Abfragen, ob der sender der Spieler ist "if ( sender instanceof Player )".
  2. Du benötigst "p.updateInventory();" nicht, da es ja nur in deinem Inventar hinzugefügt wird.
  3. Bei deiner Permission Abfrage solltest du unter "p.sendMessage( "Text" )" ein "return true" hinmachen, sodass wenn er nicht die Berechtigung hat, die Methode auch abgebrochen wird.
  4. Du müsstest noch den OfflineSpieler definieren, da er sonst nichts erhalten kann an Informationen.

Ich sende dir mal eine Klasse, die Ich eben geschrieben habe:

http://prntscr.com/s3hbef

...zur Antwort

Ließ dir einfach mal den Beitrag zu den Plugin Channel durch, dann wirst du es Schnell selbst Schafen :P

https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel-de/

...zur Antwort

Da bin Ich voll bei dir..

...zur Antwort

Fangen wir mal von vorne an:

Bitte tue das Scoreboard nicht alle 20 Ticks updaten, sondern nur dann wann du es brauchst.

Ich sende dir mal eine Beispiel Klasse:

https://haste.devstorage.eu/y6D43v111k.txt

Und nenne deine variablen auch bitte auf Englisch und beachte CamelCase.

(https://dotnet.currifex.org/dotnet/articles/camelcase/)

Bei weiteren Fragen, kannst du dich gerne Melden.

...zur Antwort

Nun, du musst einfach bei dem sogenannten "InventoryClickEvent", einfach die Items Abfragen und sie dementsprechend canceln

( event.getCurrentItem().getItemMeta().getDisplayName( "Der DisplayName" ) )

oder du tust es als Material Abfragen

( event.getCurrentItem().getType == Material.IRON )

Einfach dementsprechend canceln und fertig.

Du musst ebenso das PlayerItemDropEvent canceln, dann haste alles erledigt.

...zur Antwort