Chuyển đến nội dung
Nền tảng

Plugin Spigot và Paper

Cách có plugin Bukkit, Spigot hoặc Paper tốt nhất từ Codexe bằng Java hoặc Kotlin: nên ghi gì trong yêu cầu, phiên bản, plugin.yml, phụ thuộc, build và sự cố thường gặp.

Đã cập nhật

Trên trang này
  1. Nên ghi gì trong yêu cầu
  2. Codexe tạo ra gì
  3. Phiên bản và Java
  4. Build và xác minh
  5. Cài đặt
  6. Sự cố thường gặp

Các loại Bukkit/Spigot/Paper tạo ra một plugin máy chủ chạy trên Paper, Spigot và các bản fork của chúng. Hãy chọn Java (dự án Maven) hoặc Kotlin (dự án Gradle với build.gradle.kts).

Để chơi thử plugin trong game, hãy khởi động một máy chủ thử nghiệm riêng bằng Dùng thử ngay.

Khi bạn gửi yêu cầu, Codexe hỏi plugin dành cho phiên bản Minecraft nào, từ 1.8.8 đến 26.3. Code được viết theo API và cấp độ Java của phiên bản đó, và máy chủ thử nghiệm chạy đúng phiên bản đó. Các dự án tạo trước ngày 30 tháng 9 năm 2026 giữ nguyên phiên bản ghi trong các tệp build của chúng.

#Nên ghi gì trong yêu cầu

  • Phần mềm máy chủ và phiên bản: "Paper 1.21.4" hoặc "Spigot 1.20.1". Paper có API lớn hơn Spigot. Code viết cho Spigot chạy được trên Paper, nhưng không có chiều ngược lại, nên hãy yêu cầu Spigot nếu bạn cần cả hai.
  • Lệnh kèm tham số, ai được dùng và tự động hoàn thành bằng Tab.
  • Quyền kèm giá trị mặc định (true, op, false).
  • Các khóa trong config.yml mà bạn muốn chỉnh sửa được.
  • Lưu trữ: YAML, SQLite, MySQL, hoặc trong bộ nhớ.
  • Tích hợp: Vault, PlaceholderAPI, LuckPerms, WorldGuard…, nêu tên rõ ràng để chúng được thêm làm phụ thuộc.
Text
A Paper 1.21.4 plugin (Java) called Bounties.
- /bounty set <player> <amount>: takes money via Vault, adds it to the player's bounty.
- Killing a player with a bounty pays it to the killer.
- /bounty top shows the 10 highest bounties.
- Bounties stored in SQLite. Minimum bounty 100 (config.yml).
- Permission bounties.set (default true).
Text
A Paper 1.21.4 plugin in Kotlin called Bounties, same features as above.
Use Kotlin idioms (data classes, extension functions) but keep the Bukkit API usage standard.

#Codexe tạo ra gì

  • Một dự án Maven (Java) hoặc dự án Gradle (Kotlin) với đúng phụ thuộc API.
  • Lớp chính kế thừa JavaPlugin, cùng các lớp lệnh, listener và lưu trữ.
  • plugin.yml với lớp chính, api-version, các lệnh và quyền, và config.yml khi có các thiết lập.
YAML
name: Bounties
version: 1.0.0
main: eu.codexe.bounties.Bounties
api-version: '1.21'
depend: [Vault]
commands:
  bounty:
    description: Manage bounties
permissions:
  bounties.set:
    default: true

#Phiên bản và Java

Codexe đọc phiên bản Minecraft từ tệp build và build bằng Java 17 (trước 1.20.5), Java 21 (1.20.5 trở lên) hoặc Java 25 (26.x). Nếu bạn không nêu phiên bản, API Paper/Spigot 1.20.6 sẽ được dùng.

#Build và xác minh

Codexe biên dịch plugin trước khi coi nó là Sẵn sàng và kiểm tra rằng tệp JAR chứa các lớp và một tệp plugin.yml (hoặc paper-plugin.yml). Bản build plugin thường mất chưa đến một phút. Xem Biên dịch.

#Cài đặt

Tải tệp JAR, đặt vào plugins/, khởi động lại máy chủ (đừng dùng /reload), và xem console có lỗi nào khi khởi động không.

#Sự cố thường gặp

Triệu chứngNguyên nhân có thể
Plugin không nạp, "main class not found"main: trong plugin.yml không khớp với lớp. Hãy nhờ khung chat sửa, hoặc kiểm tra lại sau khi tự đổi tên.
"Unsupported API version" trên máy chủ cũ hơnPlugin nhắm tới API mới hơn máy chủ của bạn. Hãy ghi chính xác phiên bản máy chủ trong yêu cầu.
Một lệnh không làm gì cảLệnh bị thiếu trong plugin.yml, hoặc người chơi không có quyền.
NoClassDefFoundError với Vault hoặc tương tựPlugin phụ thuộc chưa được cài trên máy chủ.
Build được, nhưng một tính năng hoạt động saiHãy mô tả chính xác hành vi trong game ở khung chat. Việc xác minh kiểm tra bản build, không phải lối chơi.
Plugin Spigot và Paper | Codexe Docs