Dawid_PL 2 Opublikowano 30 lipca 2018 Udostępnij Opublikowano 30 lipca 2018 (edytowane) Witam Mam cały czas problem z tym kodem: a dokladnie linijska 7, 12, 17 o to bład: z góry dzięki za pomoc Edytowane 30 lipca 2018 przez Dawid_PL Dodanie codu błedu Odnośnik do komentarza https://skript.pl/temat/28644-problem-z-playerinteractevent/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 yooniks 347 Opublikowano 30 lipca 2018 Udostępnij Opublikowano 30 lipca 2018 (edytowane) 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 31 lipca 2018 przez nicku1 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 Więcej opcji udostępniania...
Pytanie
Dawid_PL 2
Witam Mam cały czas problem z tym kodem:
a dokladnie linijska 7, 12, 17
o to bład:
z góry dzięki za pomoc
Edytowane przez Dawid_PLDodanie codu błedu
Odnośnik do komentarza
https://skript.pl/temat/28644-problem-z-playerinteractevent/Udostępnij na innych stronach
1 odpowiedź na to pytanie
Rekomendowane odpowiedzi