Плагіни Folia
Багатопотоковість Folia за регіонами змінює те, як плагіни планують роботу. Як Codexe генерує плагіни, безпечні для Folia, і що включити в запит.
Оновлено
Folia є форком Paper, який обробляє такти різних регіонів світу в різних потоках. Єдиного «головного потоку» немає, тож звичайне планування Bukkit (Bukkit.getScheduler().runTask(...)) там не працює.
#Що Codexe робить інакше
Коли ви вибираєте тип Folia, згенерований плагін:
- планує роботу через планувальники регіону, сутності, глобального регіону та асинхронний замість планувальника Bukkit,
- оголошує
folia-supported: trueуplugin.yml, - збирається з API Folia (Maven).
#Що писати в запиті
Усе з посібника зі Spigot і Paper, а також деталі, чутливі до часу: «телепортувати через 3 секунди», «повторювати щохвилини для кожного гравця онлайн». Саме тут код для Folia відрізняється найбільше.
#Збірка та перевірка
Плагіни Folia компілюються й перевіряються, як і будь-який інший плагін, перш ніж отримати статус Готово. Компіляція доводить, що код збирається з API Folia. Потокобезпечність під час роботи все одно залежить від логіки, тож тестуйте на сервері Folia.
#Поширені проблеми
| Симптом | Імовірна причина |
|---|---|
UnsupportedOperationException щодо планувальника | Код (часто із залежності) використовує планувальник Bukkit. Попросіть чат перенести його на планувальник регіону або сутності. |
| Плагін відмовляється завантажуватися на Folia | У plugin.yml немає folia-supported: true. |