Skocz do zawartości
  • 0

Problem z PlayerInteractEvent


Pytanie

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

  • 0
W dniu 30.07.2018 o 12:59, SeRyJnY napisał:

 

po pierwsze to nie dawaj gotowcow bo tak to nikt sie niczego nie nauczy, a po drugie masz tak samo zle kod.

 

Zacznijmy od tego, że item zdefiniowany w zmiennej 's' może być nullem, np. jak gracz kliknie ppm 'niczym' - lub będzie to powietrze - a powietrze nie zawiera itemmety (z tego co wiem) Każdy item zawiera itemmete oprócz powietrza, sprawdzaj czy item w zmiennej jest nullem, jak tak to returnuj event (lub chyba w 1.12+ jest cos takiego jak event.hasItem()), sprawdzaj czy item zawiera itemmeta, jezeli nie to returnuj (s.hasItemMeta()), no i oczywiscie tez sprawdzaj czy ma nazwe, (s.getItemMeta().hasDisplayName()), do tego jak gracz kliknie w powietrze to nic sie nie dzieje i uzna to za jakiś błąd, sprawdzaj dodatkowo akcje RIGHT_CLICK_AIR..

kolejne: tworzysz itemy podczas eventu, bez zadnych warunkow itd. przed tworzeniem, zaloze sie ze wystarczy z kilkunastu botów poklikać troche ppm i pewnie troszke lagi będą =/, zdefiniuj to sobie najlepiej w jakims polu w tej klasie

kolejne: 

            if (s.getItemMeta().getDisplayName().equals("§dVoucher §8(§fVIP§8)"))

nie uzywaj paragrafów, do tego po co takie porównywanie, wystarczy użyjesz metody ItemStack#isSimilar

do tego nie wiem po co to castujesz:

            Bukkit.dispatchCommand((CommandSender)Bukkit.getConsoleSender(), "pex user " + p.getName() + " group set VIP");

to juz i tak jest commandsender, no i ja oczywiscie zamiast tych ifów to bym zrobił jakiś interfejs voucherhandler, i tam mial po prostu jakąś metodę a w klasie voucherviphandler itd bym po prostu implementowal tą metodę i wrzucil to co jest w ifach, no ale to juz jak kto woli

 

no i na koniec:

public void Voucher(PlayerInteractEvent e) {

brak adnotacji EventHandler nad metodą, do tego metody nazywamy z małej litery, już nie mówiąc o tym, że ta nazwa nie ma sensu

(w sumie to event sie wykonuje wiec adnotacja pewnie jest, ale jej nie pokazałeś)

Edytowane przez nicku1
Nicku

Zmieniam cytaty na kolorowy code :)

Notatka dodana przez Nicku

Odnośnik do komentarza
https://skript.pl/temat/28644-problem-z-playerinteractevent/#findComment-189330
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...