Plugin-uri Folia
Multithreading-ul pe regiuni din Folia schimbă felul în care plugin-urile își programează sarcinile. Cum generează Codexe plugin-uri sigure pentru Folia și ce să incluzi în cerere.
Actualizat
Folia este fork-ul Paper care procesează tick-urile diferitelor regiuni ale lumii pe fire de execuție diferite. Nu există un singur „fir principal”, așa că programarea obișnuită din Bukkit (Bukkit.getScheduler().runTask(...)) nu este validă.
#Ce face Codexe altfel
Când alegi tipul Folia, pluginul generat:
- programează sarcinile cu schedulerele de regiune, de entitate, de regiune globală și asincron, în locul schedulerului Bukkit,
- declară
folia-supported: trueînplugin.yml, - se compilează pe API-ul Folia (Maven).
#Ce să pui în cerere
Tot ce apare în ghidul Spigot și Paper, plus detaliile legate de timp: „teleportează după 3 secunde”, „repetă la fiecare minut pentru fiecare jucător online”. Aici diferă cel mai mult codul pentru Folia.
#Build și verificare
Plugin-urile Folia sunt compilate și verificate ca orice alt plugin înainte să fie Gata. Compilarea dovedește că codul se compilează pe API-ul Folia. Siguranța firelor de execuție la rulare depinde totuși de logică, așa că testează pe un server Folia.
#Probleme frecvente
| Simptom | Cauză probabilă |
|---|---|
UnsupportedOperationException legată de scheduler | Codul (adesea dintr-o dependență) folosește schedulerul Bukkit. Cere-i chatului să îl mute pe schedulerul de regiune sau de entitate. |
| Pluginul refuză să se încarce pe Folia | Lipsește folia-supported: true din plugin.yml. |