Kraftowy 41 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 (edytowane) Proste pytanie xD Jak w pluginie zobaczyć listę tych (onPlace, onBreak itd)? Da się tak jak wchodzę w Source - Override/.... ? Piszę na jednym api spigota, a dokładniej: PaperSpigot-latest Edytowane 16 lutego 2017 przez Kraftowy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 KrejzolekPRO 598 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 Ty chcesz zobaczyć listę WSZYSTKICH dostępnych eventów, czy takich, które zostały zastosowane w danym pluginie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kraftowy 41 Opublikowano 16 lutego 2017 Autor Udostępnij Opublikowano 16 lutego 2017 (edytowane) WSZYSTKICH dostępnych eventów @KrejzolekPRO Edytowane 16 lutego 2017 przez Kraftowy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kicpro 26 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 Możesz użyć jd-gui Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 KrejzolekPRO 598 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 8 minut temu, Kicpro napisał: Możesz użyć jd-gui Nie, jd-gui służy do dekompilacji pluginu... Jak znasz anglieski to w, np. Eclipsie po napisaniu paru liter wyskoczą podpowiedzi, więc wtedy już ogarniesz chyba. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kraftowy 41 Opublikowano 16 lutego 2017 Autor Udostępnij Opublikowano 16 lutego 2017 Właśnie po napisaniu paru liter, ale jakich? Jak daję: @EventHandler public void onB... (nic się nie dzieje 0 podpowiedzi :/ WGL tak jakby ten @EventHandler nie istniał) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kraftowy 41 Opublikowano 16 lutego 2017 Autor Udostępnij Opublikowano 16 lutego 2017 @KrejzolekPRO @Kicpro Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 TheMolkaPL 344 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 2 godziny temu, Kraftowy napisał: Proste pytanie xD Jak w pluginie zobaczyć listę tych (onPlace, onBreak itd)? Da się tak jak wchodzę w Source - Override/.... ? Piszę na jednym api spigota, a dokładniej: PaperSpigot-latest W pluginie nie ma żadnych onPlace, onBreak ani nic z podobnych rzeczy. Plugin jest to dodatek do Bukkita, który całkowicie piszesz według swoich upodobań (musisz tylko stworzyć plik Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! i klasę dziedziczącą po Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!). Oznacza to, że w pluginie znajdzie się to, co sobie zażyczysz i w jaki sposób. To co masz na myśli to prawdopodobnie zdarzenia (eventy) w Bukkicie. Przy stawianiu bloku przez gracza wywoływany jest Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!; przy stawianiu Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!, ... Zdarzenia wykonywane są w słuchaczach (listenerach). Słuchacz jest to metoda, inaczej zbiór zadań lub instrukcji które zostaną wykonane przy wywołaniu wybranego przez ciebie eventu. Załóżmy więc, że chcesz nasłuchać zdarzenie BlockBreakEvent (wykonywany przy niszczeniu bloku przez gracza) oraz wykonać przy nim wysłanie wiadomości do wszystkich graczy. Wyglądałoby to mniej więcej tak: @EventHandler public void handleBlockBreakEvent(BlockBreakEvent event) { for (Player online : Bukkit.getOnlinePlayers()) { online.sendMessage(new TextComponent("Gracz " + event.getPlayer().getName() + " wlasnie zniszczyl blok.")); } } Teraz pozwól mi wytłumaczyć co oznacza powyższy kod. public oznacza, że ta metoda, czyli zbiór instrukcji do wykonania będzie widoczna zewsząd. Oznacza to, że ktokolwiek, lub którakolwiek klasa będzie miała do niej swobodny dostęp do jej wykonania. Istnieje jeszcze kilka innych rodzajów widoczności - default, protected oraz private. W słuchaczach (listenerach) Bukkit zaleca się jednak użycie public, bo chociaż z poziomu Bukkita zawsze będzie public, to pierwotna definicja tej metody będzie miała wpływ na prędkość załadowania słuchaczy. void oznacza, że ten zbiór instrukcji, który zostanie wykonany i nie zwróci żadnej wartości zwrotnej. Inaczej. niezależnie co w środku tej metody wykonamy, metoda poprzednia która ją wykonuje nie będzie sobie życzyć żadnej wartości zwrotnej. handleBlockBreakEvent jest losową nazwą tego zdarzenia. Bukkita nie obchodzi jak będzie się metoda nazywać; jest on jedynie identyfikatorem w twojej klasie. Możesz ją nazwać dowolnie jak chcesz, ale powinieneś śledzić zalecenia Oracle oraz Sun. Dalej przechodzimy do zawartości nawiasów - są to parametry. Są to wartości, które potrzebne są do wykonania naszej metody, w tym przypadku słuchacza (listenera). Bukkit akceptuje tutaj jedynie jeden parametr, który musi być eventem (czyli dziedziczyć po klasie Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!). Dodatkowo taki event musi posiadać Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! i statyczną metodę getHandlerList() go zwracającą. To jednak już byłoby elementem poradnika jak tworzyć własne zdarzenia w Bukkit. Dodatkowo nad metodą znajduje się magiczne @HandlerList. Jest to adnotacja, inaczej dopisek, lub dodatkowa informacja, znacznik tej metody, zbioru instrukcji. Mówi ona Bukkitowi, że ten przy rejestracji słuchaczy (listenerów) ma wziąć ją pod uwagę w czasie skanowania metod. Wracając do pytania; prawdopodobnie szukasz listy wszystkich zdarzeń w Bukkit. Obecnie Bukkit nie jest już rozwijany, ale Spigot (jego fork, kontynuacja) dalej dodają nowe, choć niewielkie funkcje. Wszystkie zdarzenia znajdują się Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!. Co ciekawe - Bukkit wszystkie swoje zdarzenia posiada w packagu event - org.bukkit.event.... Korzystając na przykład z IDE (programu wspomagającego rozwój aplikacji) InteliiJ masz możliwość podglądu wszystkich zdarzeń, które są Bukkitowskim zdarzeniem. Po prostu przejdź do klasy Event (wciśnij kombinację klawiszy CTRL + N), wpisz tam "Event" - wybierz prawdopodobnie pierwszy wynik - Event - org.bukkit.event. Przy linijce public abstract class Event pokaże ci się niebieska ikona implementacji. Jej naciśnięcie spowoduje wyświetlenie wszystkich klas dziedziczącej po tej właśnie klasie. Mam nadzieję, że pomogłem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kraftowy 41 Opublikowano 16 lutego 2017 Autor Udostępnij Opublikowano 16 lutego 2017 (edytowane) @TheMolkaPL a dokładniej jak w to wejść? (Bo ja nie korzystam z CraftBukkit i Bukkit tylko paper-spigot latest) Może musze coś dodac? Edytowane 16 lutego 2017 przez Kraftowy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 TheMolkaPL 344 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 Teraz, Kraftowy napisał: @TheMolkaPL a dokładniej jak w to wejść? (Bo ja nie korzystam z CraftBukkit i Bukkit tylko paper-spigot latest) Może musze coś dodac? Będąc na stronie głównej dokumentacji zawsze znajdziemy listę package. Package to taka paczka w której znajdują się klasy. Gdy spojrzymy na package to one mają swoje specyficzne nazwy. Każdy package mówi co w sobie posiada. Przykładowo package "block" będzie posiadał bloki, package "command" komendy, itd. Ciebie interesują akurat zdarzenia, więc wchodzisz w package "event". Tutaj zwróć uwagę na to, że sam package "event" posiada jedynie klasy budujące system zdarzeń w Bukkit. Ciebie interesują ich rodzaje. Zdarzenia podzielone są na kolejne package - "event.block", "event.player", ... Taki package od razu mówi nam, że ten pierwszy posiada zdarzenia związane z blokami, drugi, że posiada zdarzenia związane z graczem. Kliknij na wybrany package a następnie pokaże się tabela z dostępnymi w tym package klasami. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kraftowy 41 Opublikowano 16 lutego 2017 Autor Udostępnij Opublikowano 16 lutego 2017 (edytowane) @TheMolkaPL Gdzie klikam? I jak ;( Edytowane 16 lutego 2017 przez Kraftowy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 TheMolkaPL 344 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 Teraz, Kraftowy napisał: @TheMolkaPL Gdzie klikam? I jak ;( Przecież dałem ci linka do dokumentacji... Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kraftowy 41 Opublikowano 16 lutego 2017 Autor Udostępnij Opublikowano 16 lutego 2017 (edytowane) No wiem, ale jak stworzyć ten @EventHandler liste tego jakoś da się wyświetlić? Tą klasę jak stworzyć Edytowane 16 lutego 2017 przez Kraftowy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 TheMolkaPL 344 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 Teraz, Kraftowy napisał: No wiem, ale jak stworzyć ten @EventHandler liste tego jakoś da się wyświetlić? Tą klasę jak stworzyć Podałem ci linka do dokumentacji - tam jest lista wszystkich zdarzeń. Klasy nie musisz stworzyć; @EventHandler jest adnotacją już w Bukkicie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kraftowy 41 Opublikowano 16 lutego 2017 Autor Udostępnij Opublikowano 16 lutego 2017 (edytowane) @TheMolkaPL A mógłbyś mi dać jakiś przykład z położeniem bloku? Proszę I jeszcze czasami pisze mi żeby dodać abstract to jest potrzebne? Edytowane 16 lutego 2017 przez Kraftowy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 TheMolkaPL 344 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 1 minutę temu, Kraftowy napisał: @TheMolkaPL A mógłbyś mi dać jakiś przykład z położeniem bloku? Proszę I jeszcze czasami pisze mi żeby dodać abstract to jest potrzebne? Przykład już podałem w moim pierwszym poście. Żadnego abstract nigdzie nie trzeba dodawać. Przecież implementujesz listener tam gdzie go definiujesz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kraftowy 41 Opublikowano 16 lutego 2017 Autor Udostępnij Opublikowano 16 lutego 2017 Mam coś takiego: @TheMolkaPL public class BlockPlaceEvent extends BlockEvent implements Cancellable{ public BlockPlaceEvent(Block theBlock){ super(theBlock); Co zrobić żeby wysłać wiadomość do kładzącego blok? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 TheMolkaPL 344 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 To jest zdrzenie. Mylisz w tym momencie różnicę pomiędzy zdarzeniem (eventem), a słuchaczem (listenerem). Teraz wysłałeś zdarzenie. Przykład słuchacza wysłałem w moim pierwszym poście. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kraftowy 41 Opublikowano 16 lutego 2017 Autor Udostępnij Opublikowano 16 lutego 2017 No to o zdarzenie mi chodzi, jak do tego dodać zeby wyslalo wiadomosc do tego kto kladzie jakiś blok? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 TheMolkaPL 344 Opublikowano 16 lutego 2017 Udostępnij Opublikowano 16 lutego 2017 37 minut temu, Kraftowy napisał: No to o zdarzenie mi chodzi, jak do tego dodać zeby wyslalo wiadomosc do tego kto kladzie jakiś blok? W kodzie twojego słuchacza pobierasz gracza getPlayer(), a następnie wykonujesz sendMessage(...). Kraftowy 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kraftowy 41 Opublikowano 18 lutego 2017 Autor Udostępnij Opublikowano 18 lutego 2017 Dzięki za pomoc Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
Kraftowy 41
Proste pytanie xD
Jak w pluginie zobaczyć listę tych (onPlace, onBreak itd)?
Da się tak jak wchodzę w Source - Override/.... ?
Piszę na jednym api spigota, a dokładniej:
PaperSpigot-latest
Edytowane przez KraftowyOdnośnik do komentarza
Udostępnij na innych stronach
21 odpowiedzi na to pytanie
Rekomendowane odpowiedzi