Μετάβαση στο περιεχόμενο
Πλατφόρμες

Plugins Folia

Το regionised multithreading του Folia αλλάζει πώς τα plugins προγραμματίζουν τη δουλειά. Πώς το Codexe φτιάχνει plugins ασφαλή για Folia και τι να γράψεις στο αίτημα.

Ενημερώθηκε

Σε αυτή τη σελίδα
  1. Τι κάνει διαφορετικά το Codexe
  2. Τι να γράψεις στο αίτημα
  3. Build και επαλήθευση
  4. Συχνά προβλήματα

Το Folia είναι το fork του Paper που κάνει tick σε διαφορετικές περιοχές του κόσμου σε διαφορετικά threads. Δεν υπάρχει ένα μοναδικό «main thread», οπότε ο συνηθισμένος προγραμματισμός εργασιών του Bukkit (Bukkit.getScheduler().runTask(...)) δεν ισχύει.

#Τι κάνει διαφορετικά το Codexe

Όταν διαλέγεις τον τύπο Folia, το plugin που δημιουργείται:

  • προγραμματίζει τη δουλειά με τους schedulers region, entity, global region και async αντί για τον scheduler του Bukkit,
  • δηλώνει folia-supported: true στο plugin.yml,
  • κάνει build πάνω στο API του Folia (Maven).

#Τι να γράψεις στο αίτημα

Όλα όσα λέει ο οδηγός για Spigot & Paper, συν λεπτομέρειες που εξαρτώνται από τον χρόνο: «teleport μετά από 3 δευτερόλεπτα», «επανάληψη κάθε λεπτό για κάθε παίκτη online». Εκεί διαφέρει περισσότερο ο κώδικας του Folia.

#Build και επαλήθευση

Τα plugins Folia μεταγλωττίζονται και ελέγχονται όπως κάθε άλλο plugin πριν γίνουν Έτοιμα. Η μεταγλώττιση αποδεικνύει ότι ο κώδικας κάνει build πάνω στο API του Folia. Η ασφάλεια των threads κατά την εκτέλεση εξαρτάται ακόμα από τη λογική, οπότε δοκίμασε σε έναν server Folia.

#Συχνά προβλήματα

ΣύμπτωμαΠιθανή αιτία
UnsupportedOperationException για τον schedulerΚάποιος κώδικας (συχνά από μια εξάρτηση) χρησιμοποιεί τον scheduler του Bukkit. Ζήτα από το chat να τον μεταφέρει στον scheduler region ή entity.
Το plugin αρνείται να φορτώσει στο FoliaΛείπει το folia-supported: true από το plugin.yml.
Plugins Folia | Codexe Docs