Fehler beim InventoryClickEvent

Wenn ihr bei eurem Plugin nicht weiter kommt, könnt ihr hier euer Problem beschreiben und um Hilfe bitten.

Re: Fehler beim InventoryClickEvent

Beitragvon Kampfprofessor » Mi 27. Apr 2016, 19:52

Code: Alles auswählen
  1. @EventHandler
  2. public void onItemMove(InventoryMoveItemEvent e){
  3.        if(e.getItem().getItemMeta().getDisplayName().contains("GUI")) {
  4.               e.setCancelled(true);
  5.         }
  6. }


Probiere es so.
Benutzeravatar
Kampfprofessor
 
Beiträge: 71
Registriert: Fr 12. Feb 2016, 15:48

Re: Fehler beim InventoryClickEvent

Beitragvon xXRobin » Mi 27. Apr 2016, 20:09

.
Zuletzt geändert von xXRobin am Mo 23. Mai 2016, 18:06, insgesamt 1-mal geändert.
Benutzeravatar
xXRobin
 
Beiträge: 27
Registriert: Mo 21. Mär 2016, 14:08

Re: Fehler beim InventoryClickEvent

Beitragvon Letsplaybar » Mi 27. Apr 2016, 20:57

es kann sein das das durch ein kleinen Lag passiert, da der server dann die events erst paar millisekunden später cancelt.
bzw. hast du auch hier die Klasse im Pluginmanager registriert und implementiert?
Bild
Helfe Wo ich kann.
Mein MinecraftServer: Letsplaybaro.de - Suchen Developer/Bilder

I hacked 127.0.0.1!!! :)
Benutzeravatar
Letsplaybar
 
Beiträge: 195
Registriert: Mo 1. Feb 2016, 17:21
Wohnort: Berlin

Re: Fehler beim InventoryClickEvent

Beitragvon xXRobin » Do 28. Apr 2016, 14:02

.
Zuletzt geändert von xXRobin am Mo 23. Mai 2016, 18:06, insgesamt 1-mal geändert.
Benutzeravatar
xXRobin
 
Beiträge: 27
Registriert: Mo 21. Mär 2016, 14:08

Re: Fehler beim InventoryClickEvent

Beitragvon monst12 » Do 28. Apr 2016, 17:47

Hey, mach es dir doch nicht so schwer:

Wenn du weißt, dass das SKULL_ITEM das Einzige im Spieler-Inventar ist, dann geh einfach faul vor und kümmer dich nicht darum wie es heißt oder um irgendwelche andere Eigenschaften. Grundlegend ist es gut nicht immer mit spezifischen Eigenschaften zu arbeiten, wenn die Eigenschaft auch generalisierbar ist. (Nach Möglichkeit vom Größeren zum Kleineren schließen.)

Code: Alles auswählen
  1. public void onClick(InventoryClickEvent e){
  2. //LUFT ODER NULL
  3. if(e.getItem() == null || e.getItem().getType() == Material.AIR) return;
  4. //KEIN SKULL_ITEM -> return
  5. if(e.getItem().getType() != Material.SKULL_ITEM) return;
  6. //Ansonsten Event cancell'n
  7. e.setCancelled(true);
  8. }


Wenn es aber mehrere Köpfe im Inventar gibt und es genau den Namen haben muss, dann probiere mal folgendes:

Code: Alles auswählen
  1. public void onClick(InventoryClickEvent e){
  2. //LUFT ODER NULL
  3. if(e.getItem() == null || e.getItem().getType() == Material.AIR) return;
  4. //KEIN SKULL_ITEM -> return
  5. if(e.getItem().getType() != Material.SKULL_ITEM) return;
  6. //Kein DisplayName
  7. if(!e.getItem().getItemMeta().hasDisplayName()) return;
  8. //Nicht den richtigen Namen
  9. if(!e.getItem().getItemMeta().getDisplayName().equalsIgnoreCase("§bGUI")) return;
  10. //Ansonsten Event cancell'n
  11. e.setCancelled(true);
  12. }


Hier ist zu beachten, dass es bei mehreren Items wichtig wird mit gut strukturierten else-if Blöcken zu arbeiten. Mein Beispiel ist wirklich nur auf einen Einzelnen Fall ausgerichtet.

Zum Schluss auch noch gegebenenfalls weitere InventoryEvents miteinbinden und dann müsste bei korrekter Registrierung alles funktionieren.
Soweit die Theorie.

MfG
monst12
Benutzeravatar
monst12
 
Beiträge: 239
Registriert: Sa 19. Apr 2014, 22:14

Re: Fehler beim InventoryClickEvent

Beitragvon xXRobin » Do 28. Apr 2016, 19:34

.
Benutzeravatar
xXRobin
 
Beiträge: 27
Registriert: Mo 21. Mär 2016, 14:08

Vorherige

Zurück zu Hilfe und Support

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste

cron