Folia-plugins
De multithreading per regio van Folia verandert hoe plugins werk inplannen. Hoe Codexe Folia-veilige plugins genereert en wat je in het verzoek zet.
Bijgewerkt
Op deze pagina
Folia is de fork van Paper die verschillende regio's van de wereld op verschillende threads laat tikken. Er is geen enkele "main thread", dus gewone Bukkit-scheduling (Bukkit.getScheduler().runTask(...)) werkt niet.
#Wat Codexe anders doet
Kies je het type Folia, dan doet de gegenereerde plugin het volgende:
- hij plant werk in met de schedulers voor regio, entiteit, globale regio en async in plaats van met de Bukkit-scheduler,
- hij declareert
folia-supported: trueinplugin.yml, - hij bouwt tegen de Folia-API (Maven).
#Wat je in het verzoek zet
Alles uit de gids voor Spigot en Paper, plus details die met timing te maken hebben: "teleporteer na 3 seconden", "herhaal elke minuut voor elke online speler". Juist daar verschilt Folia-code het meest.
#Build en verificatie
Folia-plugins worden gecompileerd en gecontroleerd zoals elke andere plugin voordat ze Klaar zijn. Compileren bewijst dat de code tegen de Folia-API bouwt. Threadveiligheid tijdens het draaien hangt nog steeds af van de logica, dus test op een Folia-server.
#Veelvoorkomende problemen
| Symptoom | Waarschijnlijke oorzaak |
|---|---|
UnsupportedOperationException over de scheduler | Code (vaak uit een dependency) gebruikt de Bukkit-scheduler. Vraag de chat om die naar de regio- of entiteitscheduler te verplaatsen. |
| Plugin weigert te laden op Folia | folia-supported: true ontbreekt in plugin.yml. |