Плагины 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. |