Open Core API
ContrattiI tipi pubblici stabili condivisi dai moduli: lifecycle, accesso opzionale al database, messaggi, permessi, stato HUD e utility item. Niente logica di gameplay.
Cosa offre
Open Core API non contiene logica di gameplay: è solo l'insieme dei contratti che i moduli Open Roleplay condividono per parlare la stessa lingua.
Lifecycle dei moduliRegistrazione, stato e reload di ogni modulo in modo uniforme.
Accesso opzionale al databaseContratto verso il database condiviso, sempre opzionale.
Messaggi comuniTipi condivisi per feedback e messaggistica coerente.
Permessi comuniContratti di permesso riusabili tra i moduli.
Stato temporaneo HUDServizio per lo stato HUD effimero condiviso tra i moduli.
Utility base per item BukkitBuilder di item per costruire
ItemStack in modo consistente.Tipi pubblici
L'API espone un piccolo set di tipi stabili. Ogni tipo ha un ruolo preciso e nessuna dipendenza dal gameplay dei singoli moduli.
| Tipo | Ruolo |
|---|---|
OpenRoleplayCore | Punto d'ingresso del core, recuperato via Bukkit Services. |
OpenModule, OpenModuleManager, OpenModuleReloadResult, OpenModuleState | Lifecycle e registrazione dei moduli. |
OpenDatabase | Accesso opzionale al database condiviso. |
OpenHudService | Stato HUD temporaneo. |
OpenMessages | Messaggi comuni. |
OpenPermissions | Permessi comuni. |
OpenItemBuilder | Utility base per item Bukkit. |
Uso nei moduli
Un modulo dichiara Open Core API come dipendenza provided e recupera il servizio del core tramite il Bukkit Services Manager.
java · recupero del core via Bukkit Services
RegisteredServiceProvider<OpenRoleplayCore> provider =
Bukkit.getServicesManager().getRegistration(OpenRoleplayCore.class);
- I moduli devono restare difensivi: Open Core può non essere installato.
- Anche quando il core è presente, il database può essere disabilitato.
- Controlla sempre che il
providernon sianullprima di usarlo. - Tratta l'accesso al database come opzionale, mai garantito.
I contratti di questa libreria sono implementati da Open Core, il plugin che fornisce il core condiviso a tutti i moduli.