Hướng dẫn

Cách cập nhật plugin lên phiên bản Minecraft mới

Cập nhật 18 tháng 10, 2026

Khi máy chủ của bạn chuyển sang phiên bản Minecraft mới, nhiều plugin vẫn hoạt động mà không cần thay đổi, vì API Bukkit ổn định. Số khác ngừng nạp hoặc hỏng ở những chỗ nhỏ. Nếu tác giả chưa cập nhật plugin và bạn có mã nguồn, bạn có thể tự cập nhật: đây là những gì thay đổi và theo thứ tự nào.

Mô tả nó như cách nó cần hoạt động trên phiên bản mới.

Tạo thứ này với Codexe

Từng bước

  1. 1.Thử tệp .jar cũ trước

    Đặt nó lên một máy chủ thử nghiệm của phiên bản mới và đọc console. Nếu nó nạp được và hoạt động, có thể bạn không cần thay đổi gì.

  2. 2.Đổi dependency API

    Trong pom.xml hoặc build.gradle, đặt paper-api hoặc spigot-api sang phiên bản mới.

  3. 3.Cập nhật api-version và Java

    Đặt api-version trong plugin.yml (ví dụ '1.21') và biên dịch với phiên bản Java mà phiên bản mới cần: Java 17 trước 1.20.5, Java 21 từ 1.20.5, Java 25 cho 26.x.

  4. 4.Sửa những gì không còn biên dịch được

    Build và xử lý lần lượt các lỗi: vật liệu bị đổi tên, phương thức bị gỡ bỏ, lớp sự kiện đã thay đổi. Trình biên dịch liệt kê chúng kèm tệp và dòng.

  5. 5.Cập nhật dependency

    Các plugin mà plugin của bạn dùng (Vault, PlaceholderAPI, ProtocolLib, WorldGuard) cũng cần phiên bản hỗ trợ Minecraft mới, cả trong tệp build lẫn trên máy chủ.

  6. 6.Thử trên phiên bản mới

    Nạp nó trên một máy chủ của phiên bản mới với cùng các plugin, và thử mọi lệnh và tính năng, không chỉ lúc khởi động.

Những gì thường bị hỏng

  • Tên material và enum: bản cập nhật 1.13 đã đổi tên hầu hết vật phẩm và khối; các phiên bản sau thêm, đổi tên hoặc gỡ bỏ một số. Mã dùng tên cũ hoặc id dạng số sẽ lỗi.
  • Phương thức deprecated bị gỡ bỏ: các phương thức bị đánh dấu deprecated qua nhiều phiên bản rồi cũng sẽ biến mất.
  • Dữ liệu vật phẩm: từ 1.20.5, NBT của vật phẩm được thay bằng data component. Plugin sửa NBT vật phẩm trực tiếp cần viết lại phần đó; API ItemMeta thông thường vẫn hoạt động.
  • NMS và reflection: mã dùng các lớp nội bộ của máy chủ bị hỏng ở gần như mọi phiên bản. Hãy thay bằng API khi có thể, hoặc bằng một thư viện như ProtocolLib.
  • Phiên bản thư viện: các thư viện được shade, build cho Java cũ hơn, có thể lỗi trên Java mới.

Cập nhật vượt qua nhiều phiên bản

Đi từ 1.8 hoặc 1.12 lên 1.21 gần như là viết lại các phần liên quan đến vật phẩm, khối và hạt hiệu ứng hơn là một lần cập nhật. Hãy làm một lượt theo API mới, đừng đi từng phiên bản một, và hãy lường trước rằng các tệp cấu hình cũng cần tên vật liệu mới.

Nếu plugin phải hỗ trợ nhiều phiên bản cùng lúc, hãy biên dịch với phiên bản cũ nhất mà bạn hỗ trợ và tránh API được thêm về sau, hoặc dùng bản build riêng cho từng phiên bản.

Với Codexe

Từ gói Pro trở lên, bạn có thể nhập mã nguồn của plugin dưới dạng ZIP và yêu cầu, ví dụ, "Đây là plugin Paper 1.20.4 của tôi. Hãy cập nhật nó lên Paper 1.21.4". Codexe đọc phiên bản Minecraft từ tệp build, build bằng phiên bản Java mà phiên bản đó cần, và sửa lỗi biên dịch dựa trên chữ ký thật của API mà nó build với. Với plugin bạn làm trên Codexe, hãy yêu cầu phiên bản mới trong khung chat của dự án.

Biên dịch thành công chứng minh plugin build được với API mới. Sau đó hãy thử trên máy chủ thử nghiệm, vì những thay đổi về hành vi giữa các phiên bản không hiện ra dưới dạng lỗi biên dịch.

Câu hỏi

Tôi có thể cập nhật plugin mà không có mã nguồn không?

Không đáng tin cậy. Dịch ngược một tệp .jar cho ra mã khó bảo trì và có thể vi phạm giấy phép của tác giả. Hãy tìm bản đã cập nhật hoặc một bản fork còn được duy trì trước.

Plugin 1.21.1 có chạy trên 1.21.4 không?

Thường là có, trong cùng một phiên bản lớn, trừ khi nó dùng NMS hoặc API đã thay đổi. Hãy thử trước khi dựa vào nó.

Vì sao máy chủ báo "Unsupported API version"?

Đó là trường hợp ngược lại: plugin nhắm tới một API mới hơn máy chủ. Hãy build nó cho phiên bản máy chủ của bạn hoặc cập nhật máy chủ.

Build lại plugin cho phiên bản của bạn

Prompt này mở ra sẵn sàng để gửi:

“Bản Paper 1.21.4 của plugin Spigot 1.12.2 TreeFeller của tôi: chặt khúc gỗ dưới cùng của cây bằng rìu sẽ hạ cả cây, tốn độ bền theo từng khúc gỗ, hoạt động với mọi loại gỗ của 1.21 kể cả anh đào và đước, bật tắt bằng /treefeller, thiết lập trong config.yml.”

Tạo thứ này với Codexe
Cách cập nhật plugin Minecraft lên phiên bản mới | Codexe