Pluginy pro Folia
Vícevláknové zpracování po regionech ve Folii mění způsob, jakým pluginy plánují práci. Jak Codexe generuje pluginy bezpečné pro Folii a co uvést v zadání.
Aktualizováno
Folia je fork Paperu, který zpracovává tiky různých regionů světa v různých vláknech. Neexistuje jedno „hlavní vlákno“, takže běžné plánování v Bukkitu (Bukkit.getScheduler().runTask(...)) neplatí.
#Co Codexe dělá jinak
Když vybereš typ Folia, vygenerovaný plugin:
- plánuje práci plánovači region, entity, global region a async místo plánovače Bukkitu,
- deklaruje v
plugin.ymlfolia-supported: true, - sestavuje se proti API Folie (Maven).
#Co dát do zadání
Všechno z průvodce pro Spigot a Paper a navíc podrobnosti citlivé na časování: „teleportuj po 3 sekundách“, „opakuj každou minutu pro každého hráče online“. Právě v tom se kód pro Folii liší nejvíc.
#Sestavení a ověření
Pluginy pro Folii se kompilují a kontrolují jako jakýkoli jiný plugin, než jsou ve stavu Hotovo. Kompilace dokazuje, že se kód sestaví proti API Folie. Bezpečnost vláken za běhu ale pořád závisí na logice, takže testuj na serveru s Folií.
#Časté problémy
| Příznak | Pravděpodobná příčina |
|---|---|
UnsupportedOperationException týkající se plánovače | Kód (často ze závislosti) používá plánovač Bukkitu. Požádej chat, ať ho přesune na plánovač regionu nebo entity. |
| Plugin se na Folii odmítne načíst | V plugin.yml chybí folia-supported: true. |