Kotlin · Bukkit · Spigot · Paper

PLUGIN KOTLIN TRÌNH TẠO

Cùng một API Bukkit, viết bằng Kotlin. Hãy mô tả plugin cần làm gì và Codexe dựng sẵn một dự án Gradle với source set Kotlin, một plugin.yml chính xác và một JAR mà nó có thể biên dịch giúp bạn trước khi bạn tải về.

Vì sao nên tạo plugin Kotlin

An toàn null đúng chỗ Bukkit cần

Bukkit liên tục trả về null - người chơi offline, thế giới bị thiếu, khóa cấu hình vắng mặt. Kotlin làm rõ các trường hợp đó lúc biên dịch thay vì lúc 2 giờ sáng trên console máy chủ của bạn.

Một dự án Gradle thật

build.gradle.kts được cấu hình cho plugin Kotlin JVM và các repository Paper/Spigot, với cấu trúc nguồn chuẩn. Không phải một tệp lẻ mà bạn phải tìm chỗ cho nó.

Ít mã lặp hơn nhiều

Data class cho mô hình cấu hình, extension function trên Player và ItemStack, và scope function thay cho các lệnh kiểm tra null lồng nhau. Cùng một logic với mã ít hơn rõ rệt.

Cũng hỗ trợ Folia và proxy

Nếu bạn dùng bản fork đa luồng của Paper, lưu ý rằng Folia bỏ luồng chính duy nhất và cần lập lịch theo vùng - hãy chọn đích Folia trên trình tạo plugin để việc lập lịch đúng ngay từ đầu. Với công việc cấp mạng, hãy dùng trình tạo plugin proxy. Tài liệu plugin giải thích các khác biệt.

Prompt mẫu

> Một plugin Kotlin cho Paper 1.21 với lệnh /kit tặng một bộ vật phẩm cấu hình được, thời gian hồi theo từng người chơi lưu trong một data class, và cấu hình YAML có giá trị mặc định.
> Một plugin Kotlin ghi mọi lần phá khối vào một tệp theo từng thế giới một cách bất đồng bộ và thêm /blocklog <player> để đọc lại 20 mục gần nhất.
> Một plugin Kotlin thêm công thức chế tạo tùy chỉnh cho một vật phẩm phù phép, với một listener ngăn nó bị dùng ngoài nether.
> Một plugin Kotlin với GUI phân trang liệt kê người chơi online, nhấp để dịch chuyển nhưng bị chặn sau một permission node.

Câu hỏi thường gặp về trình tạo plugin Kotlin

Plugin Kotlin có chạy trên máy chủ Spigot hoặc Paper bình thường không?

+

Có. Kotlin biên dịch ra bytecode JVM thông thường, nên máy chủ không biết và cũng không quan tâm plugin được viết bằng ngôn ngữ nào. Nó được nạp y hệt một plugin Java.

Tôi có cần cài thêm gì trên máy chủ không?

+

Không. Thư viện chuẩn của Kotlin được shade vào JAR lúc build, nên plugin tự chứa đủ. Điều đó làm JAR lớn hơn một plugin Java tương đương.

Maven hay Gradle?

+

Gradle. Đích Kotlin dùng plugin Gradle Kotlin, là bộ công cụ chuẩn cho Kotlin trên JVM. Các đích Java dùng Maven.

Kotlin thật sự mang lại gì cho tôi ở đây?

+

Chủ yếu là an toàn null và ít thủ tục hơn. API Bukkit trả về null ở rất nhiều chỗ - getPlayer, getWorld, tra cứu cấu hình - và hệ thống kiểu của Kotlin buộc bạn xử lý lúc biên dịch thay vì phát hiện ra dưới dạng NullPointerException trên production. Data class, extension function và scope function cũng cắt bớt rất nhiều mã lặp trong mã cấu hình và listener.

Tôi có thể trộn Java và Kotlin trong một plugin không?

+

Trình tạo tạo ra một source set Kotlin. Gradle có thể biên dịch nguồn hỗn hợp, nên bạn có thể thêm tệp Java sau đó, nhưng dự án được tạo ra ưu tiên Kotlin.

Tôi nên chọn Kotlin hay Java?

+

Chọn Java nếu bạn muốn tương thích tối đa với hướng dẫn, đoạn mã có sẵn và mã của người khác, vì hầu như mọi tài liệu Bukkit đều giả định dùng Java. Chọn Kotlin nếu bạn quen với nó và muốn mã gọn hơn, an toàn null - bề mặt API giống hệt nhau ở cả hai.

Prefer Java, or working somewhere else in the stack? Codexe also generates:

Cách Codexe xây dựng và kiểm tra các dự án này, nên ghi gì trong yêu cầu và các vấn đề thường gặp: hướng dẫn Spigot and Paper plugins (Java or Kotlin).

SẴN SÀNG CHO PLUGIN MỚI?

Gói Free nạp lại 50K token mỗi ngày, đủ để phát hành một plugin Kotlin nhỏ trong một lượt.

BẮT ĐẦU RÈN
Trình tạo plugin Minecraft Kotlin – plugin Bukkit viết bằng Kotlin do AI tạo | Codexe