Folia-pluginit
Folian aluekohtainen monisäikeisyys muuttaa tapaa, jolla pluginit ajoittavat työnsä. Miten Codexe generoi Folia-turvallisia plugineja ja mitä pyyntöön kannattaa sisällyttää.
Päivitetty
Tällä sivulla
Folia on Paperin haara, joka päivittää maailman eri alueita eri säikeissä. Yhtä "pääsäiettä" ei ole, joten tavallinen Bukkit-ajoitus (Bukkit.getScheduler().runTask(...)) ei ole kelvollinen.
#Mitä Codexe tekee toisin
Kun valitset Folia-tyypin, generoitu plugin:
- ajoittaa työn alue-, entiteetti-, globaalin alueen ja asynkronisilla ajastimilla Bukkit-ajastimen sijaan,
- ilmoittaa
folia-supported: truetiedostossaplugin.yml, - kootaan Folia-API:a vasten (Maven).
#Mitä pyyntöön kannattaa laittaa
Kaikki Spigot- ja Paper-oppaasta, sekä ajoitusherkät yksityiskohdat: "teleporttaa 3 sekunnin kuluttua", "toista minuutin välein jokaiselle paikalla olevalle pelaajalle". Juuri näissä Folia-koodi eroaa eniten.
#Koonti ja vahvistus
Folia-pluginit käännetään ja tarkistetaan kuten mikä tahansa muu plugin ennen kuin ne ovat Valmiita. Kääntäminen osoittaa, että koodi kääntyy Folia-API:a vasten. Säieturvallisuus ajon aikana riippuu silti logiikasta, joten testaa Folia-palvelimella.
#Yleiset ongelmat
| Oire | Todennäköinen syy |
|---|---|
Ajastinta koskeva UnsupportedOperationException | Koodi (usein riippuvuudesta) käyttää Bukkit-ajastinta. Pyydä keskustelussa siirtämään se alue- tai entiteettiajastimeen. |
| Plugin kieltäytyy latautumasta Folialla | folia-supported: true puuttuu tiedostosta plugin.yml. |