Dołącz do HYPIXEL.PL (połączony serwer MCSURVI + MINEFOX + MINESERVER)!

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
wiktorelex[Poradnik] Jak napisać plugin do Minecraft'a?
#1
Witajcie, jako iż jest to mój pierwszy poradnik to się przedstawię Smile Mam na imię Wiktor i interesuję się informatyką, mam 12 lat i programuje już od 2 lat.
W tym poradniku dowiesz się, jak napisać prosty plugin do Minecrafta
Jeśli palnę coś głupiego w tym poradniku, nie spalcie mnie w komentarzach Confused

1. Pobieranie podstawą sukcesu!
Aby jakkolwiek zacząć pracę z programowaniem musimy się zaopatrzyć w bezpłatny program do Javy Wink
2. Kliknij czarny guzik z napisem "Community".
3. Zainstaluj IntelliJ IDEA.


2. Zainstaluj środowisko Java dla programistów
1Wejdź w link http://www.oracle.com/technetwork/java/j...33151.html po czym kliknij "Accept License Agreement", następnie kliknij "jdk-8u161-windows-i586.exe" aby pobrać środowisko.

3. Instalujemy oba pliki
Przyszedł czas na.... właśnie, INSTALACJĘ Smile
Na początku zainstaluj IntelliJ IDEA akceptując każdą licencję napotkaną w instalatorze.
Gdy podczas instalacji pojawi się coś i ".java" lub ".groovy", zaznacz wszystko.
Następnie otwórz instalator pakietu Java, tak jak podczas instalacji IntelliJ... zaakceptuje wszystkie licencje użytkowania.

4. Przygotuj swoje stanowisko pracy!
Włącz IntelliJ idea i stwórz nowy projekt, po lewej stronie wybierz "Maven" i gdy na górze okna cię poprosi o coś takiego jak "SDK" to wybierz ścieżkę podobną do:

Cytat:C:\Program Files\Java\jdk-9.0.4

Następnie kliknij "Next".
I teraz nadchodzi pytanie "creepek! co teraz?! ja się na tym nie znam!!".
Już tłumaczę Smile
GroupID - jest to paczka, dzięki której Twój plugin będzie wiedział, gdzie znajduje się poszczególny kod.
ArtFactId - Jest to nazwa projektu, która będzie się pokazywała w IntelliJ IDEA.

WIęc tak, w GroupID naczęściej się pisze coś takiego: me.<twój nick>.<to co wpisałeś w ArtfactId>
A w ArtfactID? Po prostu nazwa pluginu. Oraz ponownie naciśnij nasz ulubiony klawisz... "Next", 2 razy Smile

5. Kodowanie...
W poprzednim kroku stworzyłeś projekt, brawo! Teraz zajmiemy się importowaniem bibliotek bukkita aby IntelliJ mógł wiedzieć do czego piszemy kod.
Po stworzeniu projektu powinieneś zobaczyć takie coś:


Kod:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>me.creepek.JakNapisacPlugin</groupId>
   <artifactId>JakNapisacPlugin</artifactId>
   <version>1.0-SNAPSHOT</version>


</project>
Jeśli zobaczyłeś coś podobnego do tego to gratuluję Smile
Po znaczniku <version> wstaw taki kod:

Kod:
   <repositories>
       <repository>
           <id>spigot-repo</id>
           <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
       </repository>
   </repositories>
   <dependencies>
       <dependency>
           <groupId>org.spigotmc</groupId>
           <artifactId>spigot-api</artifactId>
           <version>1.12.2-R0.1-SNAPSHOT</version>
           <scope>provided</scope>
       </dependency>
   </dependencies>
   <build>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>3.6.1</version>
               <configuration>
                   <source>1.8</source>
                   <target>1.8</target>
               </configuration>
           </plugin>
       </plugins>
   </build>
Teraz plik pom.xml powinien wyglądać tak:



Kod:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>me.creepek.JakNapisacPlugin</groupId>
   <artifactId>JakNapisacPlugin</artifactId>
   <version>1.0-SNAPSHOT</version>

   <repositories>
       <repository>
           <id>spigot-repo</id>
           <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
       </repository>
   </repositories>
   <dependencies>
       <dependency>
           <groupId>org.spigotmc</groupId>
           <artifactId>spigot-api</artifactId>
           <version>1.12.2-R0.1-SNAPSHOT</version>
           <scope>provided</scope>
       </dependency>
   </dependencies>
   <build>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>3.6.1</version>
               <configuration>
                   <source>1.8</source>
                   <target>1.8</target>
               </configuration>
           </plugin>
       </plugins>
   </build>

</project>
I klliknij "Import Changes" w prawym dolnym rogu.
Potem rozwiń strukturę drzewa w lewym górnym rogu, powinno wyglądać to tak:

[Obrazek: zFbpeba.png]

I dodaj package

[Obrazek: 2F4RX0C.png]

Package (paczkę) nazwij tak samo jak nazwałeś GroupId przy tworzeniu projektu Smile

Następnie w nowo stworzonym package tworzymy klasę i nazywamy ją "Main".

[Obrazek: CRYoccH.png]

Przechodzimy do "Main.java"
Po "Main dopisujemy "extends JavaPlugin"
Kod powinien teraz wyglądać tak:



Kod:
package me.creepek.JakNapisacPlugin;

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{

}

Następnie dodajemy event "onEnable".
Kod w tej chwili wygląda tak:



Kod:
public class Main extends JavaPlugin{
   public void onEnable(){
       getLogger().info("Twój pierwszy plugin został włączony!");
   }
}

I następnie tworzymy komendę.
Kod teraz wygląda tak:



Kod:
public class Main extends JavaPlugin{
   public void onEnable(){
       getLogger().info("Twój pierwszy plugin został włączony!");
   }
   
   public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
       if (command.getName().equalsIgnoreCase("komenda")) {
           if ((sender instanceof Player)) {
               sender.sendMessage("To jest przykładowa komenda zrobiona w pluginie");
           }
       }
       return false;
   }
}

Teraz nie pozostało nic innego jak skompilowanie pluginu i wrzucenie, prawda?
Właśnie nie! Musimy jeszcze zrobić plik "plugin.yml" w którym wpiszemy informacje dzięki którymi nasz serwer będzie wiedzieć czy to plugin czy to nie jest plugin.
Klikamy prawym przyciskiem na "resources" i najedźmy na "New", następnie "File".
Plik nazwij "plugin.yml".

W wnętrznościach tego pliku musimy podać ten informacje, ale kurcze jakie one są? Już mówię
Nazwa pluginu, autorzy, wersja pluginu, plik który zawiera kod oraz komendy.

Cały plik wygląda tak:


Kod:
name: PierwszyPlugin
main: <package podany przy tworzeniu projektu>.Main
version: 1.0
author: <autor>

commands:
 <twoja komenda>:
   description: Opis komendy
   usage: Po prostu wpisz /<komenda>

To co się znajduje w nawiasach klamrowych, czyli < oraz > musisz wypełnić własnymi danymi
Na przykład:



Kod:
name: cDrop
main: me.creepek.cdrop.Main
version: 1.0
author: creepek

commands:
 drop:
   description: Pokazuje liste dropow ze stone
   usage: Po prostu wpisz /drop


6. Kompilowanie ścieżką do końca labiryntu.

W lewym górnym boku jest coś takiego jak "File".
Kliknij to, po czym  kliknij "Project Structure" po czym przejdź do zakładki "Artfacts", i kliknij to co jest widoczne na screenie.

[Obrazek: hs9L8VQ.png]

Wybierz "JAR > Empty"
W name wpisz nazwę pluginu i kliknij w razy na to:

[Obrazek: qGAyK3l.png]

Nastepnie kliknij ten + tylko że niżej i wybierz "Directory Content". I wybierz ścieżkę podobną do tej:


Cytat:C:\Users\Wikor\IdeaProjects\JakNapisacPlugin\src\main\resources

Kliknij, ok, potem znów OK i wszystko gotowe! Można teraz skompilować plugin!

Teraz ostatni krok, czyli kompilowanie.
Kliknij zakładkę Build na samej górze ekranu, następnie Build Artfacts i Build

Mam nadzieję, że poradnik się przydał, jeśli tak, możesz zostawić + i napisać miły komentarz Wink
Jeśli chcesz więcej takich poradników, napisz to w komentarzu Smile
Post 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200
#2
Przydaloby sie dokladniej opisac to co zrobiles chocby w ciele komendy. Malo kto zrozumie do czego sluzy dana linijka. Nawet nie jest wytlumaczone co oznaczaja dane eventy. Ale probsy za probe. Naprawde nie latwo sie zabrac za tlumaczenie programowania
#3
no właśnie ja nie bardzo mogłem zrozumieć...
#4
podpinam sie
#5
Wiadomość wygenerowana automatycznie !

[Obrazek: image.php?di=PT0G]

Ten wątek został zamknięty, jeśli nie zgadzasz się z tą decyzją
skontaktuj się z administracją McSurvi.pl
Pozdrawiamy!

Doing is better than saying.


Skocz do:


Użytkownicy przeglądający ten wątek: 5 gości