Plugin Folia
Cơ chế đa luồng theo vùng của Folia thay đổi cách plugin lên lịch công việc. Cách Codexe tạo plugin an toàn với Folia và những gì nên ghi trong yêu cầu.
Đã cập nhật
Folia là bản fork của Paper xử lý tick cho các vùng khác nhau của thế giới trên các luồng khác nhau. Không có một "luồng chính" duy nhất, nên cách lên lịch Bukkit thông thường (Bukkit.getScheduler().runTask(...)) không hợp lệ.
#Codexe làm gì khác đi
Khi bạn chọn loại Folia, plugin được tạo ra sẽ:
- lên lịch công việc bằng các bộ lập lịch vùng, thực thể, vùng toàn cục và bất đồng bộ thay vì bộ lập lịch Bukkit,
- khai báo
folia-supported: truetrongplugin.yml, - build dựa trên API Folia (Maven).
#Nên ghi gì trong yêu cầu
Mọi thứ trong hướng dẫn Spigot & Paper, cộng thêm các chi tiết nhạy cảm về thời gian: "dịch chuyển sau 3 giây", "lặp lại mỗi phút cho từng người chơi online". Đây là những chỗ code Folia khác biệt nhiều nhất.
#Build và xác minh
Plugin Folia được biên dịch và kiểm tra như mọi plugin khác trước khi Sẵn sàng. Việc biên dịch chứng minh code build được dựa trên API Folia. An toàn luồng khi chạy vẫn phụ thuộc vào logic, nên hãy thử trên một máy chủ Folia.
#Sự cố thường gặp
| Triệu chứng | Nguyên nhân có thể |
|---|---|
UnsupportedOperationException liên quan đến bộ lập lịch | Code (thường từ một phụ thuộc) dùng bộ lập lịch Bukkit. Hãy nhờ khung chat chuyển sang bộ lập lịch vùng hoặc thực thể. |
| Plugin từ chối nạp trên Folia | Thiếu folia-supported: true trong plugin.yml. |