آموزش کدنویسی پلاگین ماینکرافت با جاوا
آموزش ساخت اولین پلاگین ماینکرافت با جاوا و Paper API: نصب ابزارها، پروژهی Maven، فایل plugin.yml، کلاس اصلی، دستور و رویداد، ساخت jar و تست روی سرور.
اگر جاوا بلدید، ساخت پلاگین ماینکرافت سریع شروع میشود. این آموزش یک پلاگین ساده با یک دستور و یک رویداد میسازد و مسیر ساخت و تست را نشان میدهد.
ابزارها
- JDK: نسخهی مناسب نسخهی ماینکرافت هدف (مثلاً ۲۱ برای نسخههای جدید). نسخهی لازم در مستندات Paper نوشته شده است.
- IntelliJ IDEA (نسخهی Community کافی است).
- Maven یا Gradle برای ساخت پروژه (در این آموزش Maven).
- یک سرور Paper آزمایشی؛ آموزش راهاندازی سرور.
مرحله ۱: پروژهی Maven
در IntelliJ یک پروژهی Maven بسازید و در pom.xml مخزن و وابستگی Paper را اضافه کنید (عدد نسخه را با نسخهی هدف خودتان عوض کنید):
<repositories>
<repository>
<id>papermc</id>
<url>https://repo.papermc.io/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.21.4-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
مقدار provided یعنی API هنگام اجرا از خود سرور میآید و داخل jar شما قرار نمیگیرد.
مرحله ۲: فایل plugin.yml
در src/main/resources/plugin.yml این را بنویسید. فیلد main باید دقیقاً نام کامل کلاس اصلی باشد و api-version با نسخهی هدف بخواند:
name: HelloPlugin
version: 1.0
main: ir.nothingx.hello.HelloPlugin
api-version: '1.21'
commands:
hello:
description: Say hello
مرحله ۳: کلاس اصلی
package ir.nothingx.hello;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class HelloPlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
getLogger().info("HelloPlugin enabled");
}
@EventHandler
public void onJoin(PlayerJoinEvent event) {
event.getPlayer().sendMessage("Welcome to the server!");
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("hello")) {
if (sender instanceof Player player) {
player.sendMessage("Hello, " + player.getName());
} else {
sender.sendMessage("This command is for players.");
}
return true;
}
return false;
}
}
مرحله ۴: ساخت و تست
- در ترمینال IntelliJ دستور
mvn packageرا بزنید. - فایل jar ساختهشده را از پوشهی
targetبردارید و درpluginsسرور آزمایشی بگذارید. - سرور را ریستارت کنید؛ پیام «HelloPlugin enabled» باید در کنسول دیده شود.
- داخل بازی بنویسید
/helloو پیام را ببینید.
نکات حرفهای
- رشتهی اصلی را قفل نکنید: کارهای سنگین مثل دیتابیس و درخواست وب را روی ترد غیرهمگام (async) انجام دهید تا تیکهای سرور کند نشود.
- کانفیگ: با
saveDefaultConfig()فایلconfig.ymlبسازید تا مدیر سرور بدون کد تنظیمات را عوض کند. - مجوزها: برای هر دستور حساس یک permission تعریف کنید تا از طریق LuckyPerms کنترل شود (راهنما).
- تست روی نسخهی هدف: بعد از هر بهروزرسانی ماینکرافت پلاگین را تست کنید.
اگر وقت یا تجربهی کدنویسی ندارید، سفارش پلاگین اختصاصی راه سریعتری است و برای اجرا هم سرور ماینکرافت مناسب است.