Naar de inhoud
Platformen

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
  1. Wat Codexe anders doet
  2. Wat je in het verzoek zet
  3. Build en verificatie
  4. Veelvoorkomende problemen

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: true in plugin.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

SymptoomWaarschijnlijke oorzaak
UnsupportedOperationException over de schedulerCode (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 Foliafolia-supported: true ontbreekt in plugin.yml.
Folia-plugins | Codexe Docs