luxDev | 2021-02-17 10:25:30 UTC | #1
Ostatni poradnik był dawno temu, ostatnio ktoś pytał co z serią, więc w sumie kontynuuje.
Ostatni poradnik: (#0 Klik)
W tym poradniku zajmiemy się główną klasą, i uruchomieniem pluginu, na początku otwórzmy eclipse i po lewo kliknijmy prawym przyciskiem myszy aby stworzyć nowy projekt.
Następnie kliknijmy Java Project, i wpiszmy w pierwszym oknie nazwę projektu np. PierwszyPlugin następnie kliknijmy Finish.
Gdy utworzy się nam pierwszy projekt otwórzmy go, następnie kliknijmy prawym na niego, oraz kliknijmy Build Path, Add External Archives.
Potem wybierzmy naszą główną bibliotekę i ją dodajmy.
Następnie otwórzmy nasz projekt i widząc src kliknijmy na niego prawym, i wybierzmy new -> Package
Nazwijmy ją jak chcemy, paczki piszemy zawsze z małej litery, dodatkowo odnoszę też do tego tematu [Nazewnictwo paczek w Javie]
ja ją nazwę w ten sposób pl.luxdev.pierwszyplugin
, gdy już napiszemy, zatwierdźmy to przyciskiem Finish
Następnie kliknijmy na nią prawym przyciskiem, i kliknijmy new -> Class i nazwijmy ją Main pamiętaj klasy piszemy z dużej litery.
Następnym krokiem będzie otwarcie klasy, oraz zaimportowanie JavaPlugin, a więc otwórzmy klasę i dopiszmy extends JavaPlugin
Prawdopodobnie podświetla ci teraz JavaPlugin na czerwowno, musisz na niego najechać i kliknąć import JavaPlugin (org.bukkit.plugin.java)
lub użyć kombinacji klawiszy CTRL + SHIFT + O
Następnym krokiem będzie dodanie funkcji uruchamiania pluginu, dopiszmy takie coś w następnej linijce public void onEnable(){
}
To będzie metoda która będzie zawsze wykonywana podczas startu pluginu, napiszmy tam żeby wyświetlało w konsoli Plugin został uruchomiony.
Ostatnim krokiem będzie stworzenie pliku plugin.yml
musimy kliknąć na src -> new -> File nazwijmy go plugin.yml
Otwórzmy go, albo przeciągnijmy go na prawe pole, i wpiszmy tam takie stadandowe wartości.
main: pl.luxdev.pierwszyplugin.Main
version: 0.0.1
name: PierwszyPlugin
main oznacza ścieżkę do naszej głównej klasy pluginu wpisz tam nazwę paczki i po kropce nazwe swojej głównej klasy w moim przypadku Main
version oznacza wersję pluginu
name: oznacza nazwe pluginu wyświetlaną pod np. komendą /pl, /plugins.
Bez tych wartości plugin się nie uruchomi
Ostatnią rzeczą jaką musimy zrobić to wyeksportować plugin
W tym celu klikamy na nasz projekt prawym przyciskiem, Export
Następnie będziemy musieli wybrać nazwe pliku oraz lokalizacje gdzie ma zostać zapisany.
To na tyle w tym poradniku daj like za włożoną pracę jeśli możesz :)
Marcoral | 2016-09-09 18:02:40 UTC | #2
Polecam prywatne lekcje z tym użytkownikiem!!
+ Spójrzcie dokładnie na jego projekty :smile:
Starsi bywalcy tego forum zrozumieją o czym mowa :blush:
luxDev | 2016-09-09 18:03:08 UTC | #3
Tak, MaCore Commondore mówi wszystko.
Marcoral | 2016-09-09 18:04:02 UTC | #4
Chyba najcenniejszy ze wszystkich tych projekcików!
koweq | 2016-09-09 18:14:32 UTC | #5
[quote=”luxDev, post:1, topic:1095”]
ostatnio ktoś pytał co z serią
[/quote]
Chyba domyślam się kto xD
A tak na serio - fajnie wyjaśnione ;)
Karolek | 2016-09-10 18:16:05 UTC | #6
Mam nadzieję, że błąd w tym poradniku poprawisz szybciej niż sprawdzanie kodu…
anon10657637 | 2016-09-10 19:00:24 UTC | #7
meh, eclipse. za co? toż to podpowiada gorzej niż paint, ale ok.
wg. mnie:
naucz w tej serii mavena, toż to podstawa!
teraz się czepiam - w onEnable nie ma adnotacji @Override ;3. a powinna być, w końcu rozszerzamy klasę
po za tym jest w miarę git.
Karolek | 2016-09-10 19:01:50 UTC | #8
A wiesz po co ta adnotacja jest? xD
Mogą nawet pisać w notatniku, nie ma sensu czepiać się o środowisko.
anon10657637 | 2016-09-10 19:04:38 UTC | #9
@Override jest używane przy oznaczaniu metod, które się rozszerza/implementuje.
co do środowiska - czepiam się, gdyż z tego co się orientuje, eclipse nie ma wbudowanego mavena. a to jest raczej podstawa w pracy :<
Karolek | 2016-09-10 19:07:39 UTC | #10
Jest wbudowany maven.
@Override ma za zadanie sprawdzić czy aby na pewno w sposób właściwy nadpisujesz metodę z klasy rodzic.
Przykładowo, masz jakieś api, ma ono metodę foo(), ty ją rozszerzasz. Api się zmienia, i metoda foo() nagle zwraca już int’a a nie voida, @Override da Ci znać że metoda (czyli void z poprzedniej wersji api) nie jest możliwa do nadpisania. Bez @Override po prostu miałbyś swoją własną metodę :v
Arimer | 2016-10-28 15:28:09 UTC | #11
Mam pytanie będzie tego kontynuacją??
luxDev | 2016-10-28 18:04:01 UTC | #12
Na razie praktycznie nie mam czasu w tygodniu, do tego cięzko jest napisać taki poradnik z dokładnym opisem.
Ten przygotowywałem około godzinę.
koweq | 2016-10-28 18:10:34 UTC | #13
A znasz jakiś dobry poradnik może?
luxDev | 2016-10-28 18:14:22 UTC | #14
No nie wiem, ja się nauczyłem tego co robię (w sumie to cały czas się uczę na błędach) poprzez dekomplikację innych pluginów, forum bukkita.org pełno tego typu rzeczy, dokumentacja, trochę głowy, żeby to zrozumieć, ogólnie to jeszcze tak totalnie na początku to oglądałem freaq16 (kanał usunięty jak coś), ale nie wiem czy zabardzo polecać tego typu rzeczy.
Spróbuj, wszystkiego, to zależy od ciebie.
liamdj23 | 2016-12-28 12:30:46 UTC | #15
Minęło trochę czasu…bedzie następna część? :)
luxDev | 2016-12-28 20:53:00 UTC | #16
Się zobaczy :)
luxDev | 2016-12-29 14:27:03 UTC | #17
Proszę :smile:
https://forum.lvlup.pro/t/pisanie-pluginow-do-minecraft-2-pierwsza-komenda/1583
liamdj23 | 2016-12-29 06:09:13 UTC | #18
Dziękuję :D
KubusStaachol | 2020-05-06 12:41:46 UTC | #19
Cześć, zrobiłem to samo co ty na poradniku, tylko na wersji eclipse 1.14.0.1 orax na wersji minecraft craftbukkit 1.8, weksportowałem mój plugin na server, ale server go nie widzi, wiesz może co robie nie tak albo masz dla mnie jakąś rade. Prosiłbym o pomoc. Z góry dziękuje
SP24 | 2020-05-06 12:47:24 UTC | #20
masz utworzony plik plugin.yml?
KubusStaachol | 2020-05-06 14:01:12 UTC | #21
Tak, mam tez utworzoną klase Main oraz silniki craftbukkit 1.8
SP24 | 2020-05-06 14:03:21 UTC | #22
Użyj np. Spigota, jeśli masz jakieś błędy w konsoli przy uruchamianiu serwera lub po jego uruchomieniu wstaw je.
KubusStaachol | 2020-05-07 08:26:18 UTC | #23
[code]
[23:09:29 ERROR]: Could not load ‘plugins\pierwszyplugin.jar’ in folder ‘plugins’
org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: pl/staluch/pierwszyplugin/Main has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0
[/code]
SP24 | 2020-05-06 22:24:13 UTC | #24
Upewnij się czy na maszynie gdzie stoi serwer wersja Javy nie jest mniejsza niż ta pod która piszesz. Bo np jeśli plugin pisany jest pod Java 12 to nie zadziała na Java 8.
KubusStaachol | 2020-05-06 22:41:20 UTC | #25
Mam server postawiony na kompie do testów, spigot 1.8 (testowalem tez na 1.12.2) w bibliotece dodaje dokladnie ten sam plik, błąd polega na versji JavarunTime, gdyż klasa jest na 57 a powinna do 52, w ustawieniach eclipse nie moge tego znalezc, moja verja java developer kit to 1.13.02
Nikox | 2020-05-06 23:42:10 UTC | #26
Pobierz JDK z tej strony: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
Wersja jaką masz jest na javę 13.
Jasu | 2020-05-26 08:09:14 UTC | #27
Gdzie to mam wyeksportować?
mar232320 | 2020-05-26 08:57:36 UTC | #28
do pliku .jar
i zapisz go w widocznym miejscu - np. na pulpicie
logixdev | 2020-05-26 09:04:51 UTC | #29
[quote=”Jasu, post:27, topic:1095, full:true”]
Gdzie to mam wyeksportować?
[/quote]
Ten poradnik jest dość stary. Kiedyś faktycznie korzystało się z eksportowania projektu po prostu do pliku .jar jak nadmienił @mar232320, ale teraz lepiej zainteresuj się IntelliJ IDE i kompilowaniem z użyciem Mavena. Dzięki temu będziesz miał zawsze aktualne API i w przyszłości uprości to całą operację. :wink:
https://www.spigotmc.org/wiki/creating-a-plugin-with-maven-using-intellij-idea/
system | 2021-02-17 10:25:31 UTC | #30
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.