Nie ma pluginu, który robi dokładnie to, czego chcesz? Stwórz go sam. Tworzenie pluginów do Minecrafta brzmi skomplikowanie, ale z podstawową wiedzą programistyczną i odpowiednimi narzędziami zaczniesz szybciej, niż myślisz. W tym artykule pomagamy Ci wystartować: od pierwszej linii Javy po działający plugin na serwerze.
Czego potrzebujesz
Pluginy Minecraft działają na Javie. Od wersji 26.x Minecraft używa Javy 25 i Twoje pluginy muszą być z nią kompatybilne. Upewnij się, że masz przygotowane następujące elementy:
- Java Development Kit (JDK) 25: pobierz najnowsze JDK z Adoptium lub Oracle. JDK zawiera kompilator przekształcający kod w pliki wykonywalne.
- IDE: IntelliJ IDEA Community Edition jest darmowe i zdecydowanie najpopularniejszym wyborem do tworzenia pluginów Minecraft. Eclipse i VS Code też działają, ale IntelliJ oferuje najlepszą integrację z Gradle i Maven.
- Narzędzie do budowania: Gradle lub Maven zarządza zależnościami (bibliotekami, których plugin potrzebuje). Nowoczesne pluginy zazwyczaj używają Gradle z Kotlin DSL.
- Serwer testowy: uruchom lokalnie serwer Paper, aby testować plugin. Paper to najczęściej używane oprogramowanie serwerowe, które w pełni obsługuje Bukkit i Spigot API oraz własne rozszerzenia.
Zrozumienie Bukkit API
Bukkit API to interfejs, przez który Twój plugin komunikuje się z serwerem Minecraft. Nie musisz znać kodu serwera; pracujesz ze standaryzowanym zestawem klas i metod. Najważniejsze koncepcje:
- JavaPlugin: klasa bazowa każdego pluginu. Twój plugin dziedziczy po niej i nadpisuje metody takie jak
onEnable()ionDisable(). - Eventy: system eventów to szkielet większości pluginów. Nasłuchujesz zdarzeń (gracz się loguje, blok zostaje zniszczony, entity się spawnuje) i reagujesz na nie własną logiką.
- Komendy: rejestrujesz polecenia, które gracze mogą wpisywać na czacie, z autouzupełnianiem i kontrolą uprawnień.
- Konfiguracja: Bukkit API oferuje wbudowaną konfigurację YAML. Zapisujesz ustawienia w
config.ymli odczytujesz je w kodzie.
Twój pierwszy plugin: wiadomość powitalna
Stwórzmy prosty plugin, który wysyła wiadomość powitalną, gdy gracz się zaloguje. Utwórz nowy projekt Gradle w IntelliJ i dodaj Paper API jako zależność w pliku build.gradle.kts:
compileOnly("io.papermc.paper:paper-api:1.21.4-R0.1-SNAPSHOT")
Repozytorium dla snapshotów Paper dodaj do bloku repositories. Sprawdź dokumentację Paper, aby znaleźć aktualną wersję i URL repozytorium.
Pisanie klasy głównej
Utwórz klasę rozszerzającą JavaPlugin:
public class WelkomPlugin extends JavaPlugin
W metodzie onEnable() zarejestruj event listener. Utwórz osobną klasę implementującą Listener z metodą onPlayerJoin, oznaczoną adnotacją @EventHandler. Wewnątrz tej metody wyślij wiadomość powitalną:
event.getPlayer().sendMessage("Witaj na serwerze!");
Nie zapomnij zarejestrować listenera w onEnable() przez getServer().getPluginManager().registerEvents(listener, this);.
Plik plugin.yml
Każdy plugin Bukkit wymaga pliku plugin.yml w katalogu głównym pliku JAR. Ten plik informuje serwer o nazwie, wersji, klasie głównej i wersji API pluginu. Dla pluginów Paper możesz też użyć nowszego formatu paper-plugin.yml, który oferuje dodatkowe możliwości, takie jak deklaracje zależności.
Minimalny plugin.yml zawiera: name, version, main (pełna ścieżka do klasy głównej) i api-version.
Budowanie i testowanie
Zbuduj plugin poleceniem gradle build. Wynikowy plik JAR znajdziesz w build/libs/. Skopiuj go do katalogu plugins serwera testowego i uruchom serwer. Jeśli wszystko poszło dobrze, w konsoli zobaczysz, że plugin został załadowany. Zaloguj się i sprawdź, czy wiadomość powitalna się pojawia.
Nie działa? Sprawdź konsolę serwera pod kątem komunikatów o błędach. Najczęstsze problemy to nieprawidłowa ścieżka w main pliku plugin.yml, brakująca zależność lub konflikt wersji Javy.
Następne kroki
Po pierwszym działającym pluginie możesz rozszerzać funkcjonalność:
- Dodawanie komend: zarejestruj polecenie w plugin.yml i utwórz klasę CommandExecutor obsługującą logikę.
- Odczytywanie konfiguracji: zapisuj ustawienia w config.yml, aby administratorzy serwerów mogli dostosować plugin bez modyfikowania kodu.
- Korzystanie z baz danych: dla bardziej złożonych pluginów przechowuj dane w SQLite lub MySQL zamiast w plikach tekstowych.
- Adventure API: Paper używa biblioteki Adventure do bogatego formatowania tekstu. Naucz się MiniMessage dla kolorów, klikalnego tekstu i informacji wyświetlanych po najechaniu kursorem.
Oficjalna dokumentacja Paper i wiki SpigotMC to doskonałe źródła. Forum SpigotMC ma aktywną sekcję poświęconą tworzeniu pluginów, gdzie możesz zadawać pytania.
Jakiej wersji Javy używać do pluginów?
Dla Minecrafta 26.x używasz Javy 25. Kompiluj plugin z JDK 25 i ustaw target na Javę 25. Starsze wersje Minecrafta używają Javy 21 lub niższej. Zawsze sprawdzaj wymagania wersji Minecrafta, dla której tworzysz.
Czy mogę tworzyć pluginy bez znajomości Javy?
Podstawowa znajomość Javy jest konieczna. Nie musisz być ekspertem, ale musisz rozumieć klasy, metody, zmienne i dziedziczenie. Istnieją kursy online poświęcone konkretnie Javie do tworzenia pluginów Minecraft. Skript to alternatywa, jeśli chcesz skryptować bez Javy, ale oferuje mniejsze możliwości.
Czy mój plugin będzie działał zarówno na Paper, jak i na Spigot?
Jeśli używasz tylko Bukkit i Spigot API, plugin działa na obu. Jeśli korzystasz z funkcji specyficznych dla Paper (takich jak Adventure API czy async chunk loading), plugin działa tylko na Paper i jego forkach. Ponieważ Paper jest obecnie standardem, większość deweloperów wybiera Paper API.
Zbudowałeś plugin i chcesz go przetestować na prawdziwym serwerze? W HostValues Minecraft hosting uruchamiasz Paper z pełną obsługą pluginów i Javą 25.