Enormi Napisano 18 Kwietnia 2018 Zgłoś Udostępnij Napisano 18 Kwietnia 2018 (edytowane) Witam serdecznie, z tej strony Enormi, jest tu mój pierwszy wpis na tym forum Dziś przedstawie wam jak stworzyć swój pierwszy plugin na serwer 1.Zacznijmy od pobrania IDE, pewnie zapytasz -Enormi, ale co to jest ide? -IDE (ang.integrated development environment) jest to ziintegrowane środowisko programistyczne, najczęściej używanymi IDE do pisania pluginów są "Aby zobaczyć link musisz się zalogować. ", oraz "Aby zobaczyć link musisz się zalogować. " Oczywiście istnieje wiele mniej znanych IDE, ale już nie chce się już zagłebiać w szczegóły. Osobiście preferuje Eclipse. 2.Po zainstalowaniu IDE: a) Pobieramy silnik, pod który chcemy pisać plugin i fajnie byłoby, gdybyśmy jeszcze pobrali API silnika. Ja pisze pod Aby zobaczyć link musisz się zalogować. , oraz API Aby zobaczyć link musisz się zalogować. Pewnie znowu zadasz mi pytanie -Emormi, ale czekaj co to jest api? -API (ang. application programming interface) tłumaczać jest to interfejs programistyczny aplikacji. b)Po pobraniu silnika uruchamiamy IDE, w moim przypadku to Eclipse . * Tworzymy teraz nowy projekt javy, nazywamy go jak chcemy. W moim przypadku nazwa projektu to "mpspot" Nastepnie klikamy "next" Wchodzimy w zakładkę libraries, klikamy "Add externars Jars" i dodajemy nasz silnik, oraz jego API Następnie klikamy "Otwórz" i gotowe. * Teraz tworzymy nowy package, możemy go nazwać me.autor.nazwa_wtyczki w moim przypadku to będzie me.enormi.mcspot I klikamy "Finish" *Teraz tworzymy główną klasę pluginu w tym package`u. Klasę główną powinniśmy nazwać według zaleceń bukkita czyli Nazwa_PluginuJavaPlugin w moim przypadku to będzie MpspotJavaPlugin (Pamiętaj, by klasa nazywała się z dużej litery) Teraz rozszerzamy naszą klasę o JavaPlugin, w tym momencie operujemy na kodzie, więc screenshot`y nie bedą potrzebne. Robimy to przez dopisanie do klasy "extends JavaPlugin". W moim przypadku wyglądać to bedzie nastepująco: public class MpspotJavaPlugin extends JavaPlugin{ } Pewnie powiesz -Emorni, tu jest błąd! -Musisz teraz zaimportować "JavaPlugin" -No, ale jak to zrobić? -Kliknij na bład i wybierz "import org.bukkit(...)", lub dopisz na górze "import org.bukkit.plugin.java.JavaPlugin;" *Teraz tworzymy metodę void onEnable() Teraz kilka wyjaśnien Metoda - Jest to zbiór instrukcji. Metoda void to metoda, która wykonuje kod, ale zwraca żadnej wartości. Metoda boolean to metoda, która wykonuje kod i zwraca wartosc przez return wartosc;. Więc zacznijmy od dopisania do klasy "Public void onEnable(){ }" Klasa wygląda następująco: package me.enormi.mcspot; import org.bukkit.plugin.java.JavaPlugin; public class MpspotJavaPlugin extends JavaPlugin{ public void onEnable(){ } } No tylko co nam z metody, która się wykona, ale nic w niej nie będzie? Zatem wyślijmy wiadomość do konsoli. Użyjemu do tego loggera, który daje nam bukkit, więc dopisujemy w środku bloku ({ }) metody "Bukkit.getLogger().log(Level.INFO, "Hello world!");" "Hello world!" to tekst, który zostanie wyświetlony w konsoli INFO to rodzaj wiadomości wyświetlony w konsoli Teraz powinniśmy zaimportować import java.util.logging.Level; import org.bukkit.Bukkit; *No dobra, ale co nam z pluginu, który tylko wyświetla wiadomośc do konsolii? Zatem stwórzmy komende! Zacznijmy od stworzenia nowego package "commands", żeby kod był schludny i na swoim miejscu. Teraz klikamy "finish" i tworzymy nową klase, która nazywamy jak chcemy. Pamietaj, by po nazwie klasy można było się domyślić co w niej się znaduje. Ja ją nazwe "HelloCommand" Teraz zaimplementujemy do klasy CommandExecutor i zaimportujmy "import org.bukkit.command.CommandExecutor;" Obecnie całą klasa wygląda tak: package me.enormi.mcspot.commands; import org.bukkit.command.CommandExecutor; public class HelloCommand implements CommandExecutor{ } Teraz IDE może wyrzucić nam błąd "The type HelloCommand must implement the inherited abstract method CommandExecutor.onCommand(CommandSender, Command, String, String[])" Musimy stworzyć metodę boolean public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { return false; } następnie musimy coś zrobić w tej metodzie, dajmy na to, że jesli gracz wyśle komende, która podamy w plugin.yml i klasie głównej dostanie wiadomość "Hello world" Więc wyślijmy do sendera wiadomość, możemy zrobić to tak: "sender.sendMessage("Hello world);" Kod wygląda następująco: package me.enormi.mcspot.commands; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; public class HelloCommand implements CommandExecutor{ public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { sender.sendMessage("Hello world"); return true; } } Teraz w klasie głównej definiujemy tą komende w następujący sposób this.getCommand("komenda").setExecutor(new Klasa()); Cała klasa będzie wyglądać tak package me.enormi.mcspot; import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; import me.enormi.mcspot.commands.HelloCommand; public class MpspotJavaPlugin extends JavaPlugin{ public void onEnable(){ Bukkit.getLogger().log(Level.INFO, "Hello world!"); this.getCommand("hello").setExecutor(new HelloCommand()); } } Teraz tworzymy plik yaml (plugin.yml) Podajemy w nim takie wartości jak: main: ścieżka do klasy głównej version: wersja pluginu author: autor pluginu name: nazwa pluginu commands: komenda: Więc zaczynamy od I podajmy wartości i klucze w pliku Zawartość pliku w moim przypadku wygląda następująco name: testmpspot author: enormi main: me.enormi.mcspot.MpspotJavaPlugin version: 1.0 commands: hello: Teraz eksportujemy plugin File > export Jar file > next Teraz wybieramy nasz plugin, podajemy lokacje pliku gdzie go chcemy i "finish" I to na tyle. W razie problemów zapraszam do komentowania. Pozdrawiam, Enormi Edytowane 19 Kwietnia 2018 przez Enormi 2 Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
pepq_ Napisano 18 Kwietnia 2018 Zgłoś Udostępnij Napisano 18 Kwietnia 2018 Dlaczego nie uczysz od razu używania mavena, z resztą jeśli ktoś ma zamiar nauczyć się pisać pluginy najpierw powinien zapoznać się z javą. Pytanie: Dlaczego preferujesz eclipse? (rzygam) 2 Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Enormi Napisano 19 Kwietnia 2018 Autor Zgłoś Udostępnij Napisano 19 Kwietnia 2018 (edytowane) 12 godzin temu, pepq_ napisał: Dlaczego nie uczysz od razu używania mavena, z resztą jeśli ktoś ma zamiar nauczyć się pisać pluginy najpierw powinien zapoznać się z javą. Pytanie: Dlaczego preferujesz eclipse? (rzygam) Ponieważ uważam, że używanie mavena w tak małych projektach jest bez sensu. Uczywiście jave powinna znać chociaż w minimalnym stopniu każda osoba, która chce zacząć pisać pluginy. Każdy preferuje co innego. Ja w eclipse pisze już dość długi czas i nie chce przyzwyczajać się do nowego interfejsu, oraz całkowicie nowego IDE. Jeśli chcesz to mogę zrobić kolejną cześć poradnika z użyciem mavena i JetBrains IDE. Pozdrawiam, Enormi Edytowane 19 Kwietnia 2018 przez Enormi Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
mateuszeqq12331 Napisano 19 Kwietnia 2018 Zgłoś Udostępnij Napisano 19 Kwietnia 2018 Pomocne. Pisz dalej, a może w końcu się tego nauczę Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
ZiomaleQ Napisano 11 Maja 2018 Zgłoś Udostępnij Napisano 11 Maja 2018 Dnia 19.04.2018 o 12:20, mateuszeqq12331 napisał: Pomocne. Pisz dalej, a może w końcu się tego nauczę Nie nie nauczysz się z tego. Ten poradnik to nawet nie 1% z tego od czego się zaczyna zabawę z pluginami. Aby zobaczyć link musisz się zalogować. Masz link wyżej do podstaw pisania pluginów. Ale większości z tego nie zrozumiesz ponieważ na początku powinieneś nauczyć się Javy Dnia 18.04.2018 o 20:19, pepq_ napisał: Dlaczego nie uczysz od razu używania mavena, z resztą jeśli ktoś ma zamiar nauczyć się pisać pluginy najpierw powinien zapoznać się z javą. Pytanie: Dlaczego preferujesz eclipse? (rzygam) Eclispse jest w wersji 32-bit z tego co wiem JetBrains Intellij Idea takiej wersji nie posiada Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Patryk5813 Napisano 11 Maja 2018 Zgłoś Udostępnij Napisano 11 Maja 2018 Przydatne, aczkolwiek jest pełno tego w internecie. Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.