Kuinka tehdä Javalla Spigot/Bukkit lisäosa/plugin (Tutoriaali)

Raikas

Enderkristalli!
Aloittaja
Viestit
36
Reaktiopisteet
34
Tervehdys! Tänään opetan teille, kuinka voit tehdä ensimmäisen Bukkit/Spigot-pluginisi. Spigotin ja Bukkitin documentaatiot/Javadocit löytää nopeasti Spigotin Developers Hubista (https://hub.spigotmc.org/).

Nyt alkuun, tarvitset Spigotin tai Bukkitin palvelintiedoston (spigotin tiedosto usein muotoa spigot-1.xx.x.jar) sekä jonkun IDEn jolla ohjelmoimme. Tässä tutoriaalissa käytämme Eclipseä jonka voit ladata osoitteesta https://www.eclipse.org/downloads/.

Kun olet saanut Eclipsen käyntiin ja uuden työympäristön (Workspacen) luotua, voimme luoda ensimmäisen projektimme.
Sinulla pitäisi olla auki Welcome-ikkuna jonka pitäisi näyttää tältä:
Kuva1.jpg
Paina Create a new Java project painiketta.

Sinulla kuuluisi avautua tämän näköinen ikkuna
Kuva2.jpg
Kirjoita Project name: kohtaan haluamasi nimi. Minä kirjoitan siihen Tutoriaali.
Nyt meidän täytyy luoda "package" johon kirjoitamme Classimme.
Sen voit tehdä oikeaklikkaamalla projektistasi src -> New -> Package .
Nyt sinulla kuuluisi olla tälläinen ikkuna:
Kuva3.jpg
Nyt Name: kohtaan kirjoitetaan packagen nimi.
Hyvä nimi on esimerkiksi me.<nimesi>.<plugininnimi>.
Minä laitan nytten packagen nimeksi me.raikas.tutoriaali.

Noin, olemme saaneet luotua packagen, tarvitsemme enään "Classin" tai luokan.
"Classin" voit luoda oikeaklikkaamalla luomastamme packagesta ja painaa New -> Class.
Sinulle kuuluisi avautua tälläinen ikkuna:
Kuva4.jpg
Nyt voit kirjoittaa Name: kohtaan vaikka Main.
Itse laitan siihen Main.
Näin! Nyt meillä on Luokka tai Class.
Kuva5.jpg
Nyt meidän täytyy lisätä palvelintiedosto projektiimme.
Se tehdään oikeaklikkaamalla ja valitsemalla Build Path -> Add External Archives ja valitse palvelimesi tiedosto.
Näin, nyt sinulla pitäisi olla Spigotin/Bukkitin API käytössäsi. Nyt sinun täytyy kirjoittaa Main-classiisi seuraava:
Main.java:
package me.<nimi>.<pluginin nimi>;

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {

}
Näin, nyt Spigot tietää että tämä on JavaPlugin Classi.

Nyt lisäämme onEnable() ja onDisable() funktiot.
Java:
package me.<nimi>.<pluginin nimi>;

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{
    public void onEnable() {
        getLogger().info("Plugin on nyt päällä");
    }
    public void onDisable() {
        getLogger().info("Plugin on nyt sammutettu");
    }
}

Noin, nyt varmasti haluat tehdä komennon?
Noh, minä opetan. Lisäämme onCommand() funktion, jonka Spigot laukaisee joka kerta kun sinun pluginisi rekisteröimä komento tehdään.

Java:
package me.<nimi>.<pluginin nimi>;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{
    public void onEnable() {
        getLogger().info("Plugin on nyt päällä");
    }
    public void onDisable() {
        getLogger().info("Plugin on nyt sammutettu");
    }
    
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String args[]) {
        if(!(sender instanceof Player)) {
            sender.sendMessage("Konsoli ei voi suorittaa komentoja!");
            return false;
        }
        if (cmd.getName().equalsIgnoreCase("testi")) {
            Player player = (Player) sender;
            player.sendMessage("Teit juuri testikomennon.");
        }
 
        return false;
 
    }
}

Näin, nyt olemme saaneet komennon, joka toimii /testi. Nyt meidän täytyy tehdä plugin.yml että Spigot/Bukkit osaa ymmärtää, että tämä on lisäosa.

Oikeaklikkaa projektiasi ja mene New -> File kirjoita File name: kohtaan plugin.yml

Kirjoita nyt plugin.yml tiedostoon seuraava, ja muokkaa tarvittaessa:
YAML:
name: Tutoriaaliplugin
description: Tämä on plugini!
version: 1.0
main: me.<nimi>.<pluginin nimi>.Main
commands:
  testi:
    description: Testikomento
Näin, nyt voimme viedä pluginimme .jar tiedostoksi.
Oikeaklikkaa projektiasi ja mene kohtaan Export. Sinulle avautuu uusi valikko, avaa kohta Java ja valitse JAR file.
Nyt pitäisi avautua seuraava ikkuna:
olbzJhQ.jpg

Paina Brose... nappia ja valitse palvelimesi plugins kansio ja kirjoita pluginin nimi (Pluginin nimi).jar
Nyt paina Finish.
Näin, käynnistä palvelimesi uudelleen ja uusi pluginisi pitäisi toimia.

Jos tuli kysyttävää niin ilman muuta vastaan! Ota rohkeasti yhteys!
 

korho

Allapitäjä
Ylläpitäjä
Viestit
122
Reaktiopisteet
62
Hienoa! Hyvä pikaohje!

Itse olen kokeillut tehdä IntelliJ IDEA:n Community editiolla joskus jotain, sillä kuulin sen olevan kevyempi kuin Eclipsen. Ainakin asentui tuplat nopeampaa, mitä joskus eclipseä raksuttelin. Tosin nyt on nopeampi tietokonekkin.

Melkein voisin kyllä väittää että IntelliJ IDEA on ulkoasultaan aloittelija- ja käyttäjäystävällisempi ja muistaakeni tuki jotenkin gittiäkin, kun sen saa oikein toimimaan.

Voisin olla kiinnostunut tutoriaalista, miten voisi tehdä sidebarin javalla. Sen voisin sitten laittaa ehkä jopa FlosMineen käyttöön.

Onko sulla kokemuksia/mielipiteitä ItelliJ IDEA:sta? @Raikas?
 

Raikas

Enderkristalli!
Aloittaja
Viestit
36
Reaktiopisteet
34
Hienoa! Hyvä pikaohje!

Itse olen kokeillut tehdä IntelliJ IDEA:n Community editiolla joskus jotain, sillä kuulin sen olevan kevyempi kuin Eclipsen. Ainakin asentui tuplat nopeampaa, mitä joskus eclipseä raksuttelin. Tosin nyt on nopeampi tietokonekkin.

Melkein voisin kyllä väittää että IntelliJ IDEA on ulkoasultaan aloittelija- ja käyttäjäystävällisempi ja muistaakeni tuki jotenkin gittiäkin, kun sen saa oikein toimimaan.

Voisin olla kiinnostunut tutoriaalista, miten voisi tehdä sidebarin javalla. Sen voisin sitten laittaa ehkä jopa FlosMineen käyttöön.

Onko sulla kokemuksia/mielipiteitä ItelliJ IDEA:sta? @Raikas?
On kokemusta, mutta käytän kuitenkin Eclipseä kun kokemusta enemmän siinä on.
 
  • Tykkää
Reaktiot: korho

korho

Allapitäjä
Ylläpitäjä
Viestit
122
Reaktiopisteet
62
Sulta jäi kyllä tärkein vaihe välistä, eli teeman vaihtaminen tummaan
Kylä mun mielestä paras teema on koodaamiseen, jos silmiä ärsyttää niin taustavaloo, ei tartte elää niin kun vamppyyri! :D
 

korho

Allapitäjä
Ylläpitäjä
Viestit
122
Reaktiopisteet
62
No, eiköhän jokanen käytä mitä haluaa, mielipiteistä ei kiistellä :) Saa ilmaista mut ei tapella niistä :D
 

epe07

Minecraft ammattilainen
Kultajäsen
Viestit
24
Reaktiopisteet
28
Iha jees tutorial mut kannattaa käyttää:
-maven
-IDEA
-https://minecraftdev.org/
 
  • Tykkää
Reaktiot: Froad