Moduli Filosofia Architettura Installazione Download Wiki Scarica il JAR

Open Core API

Contratti

I tipi pubblici stabili condivisi dai moduli: lifecycle, accesso opzionale al database, messaggi, permessi, stato HUD e utility item. Niente logica di gameplay.

Namespacedev.openrp.core.api
TipoLibreria (provided)
PluginNo
GameplayNessuno
Usata daTutti i moduli

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.

TipoRuolo
OpenRoleplayCorePunto d'ingresso del core, recuperato via Bukkit Services.
OpenModule, OpenModuleManager, OpenModuleReloadResult, OpenModuleStateLifecycle e registrazione dei moduli.
OpenDatabaseAccesso opzionale al database condiviso.
OpenHudServiceStato HUD temporaneo.
OpenMessagesMessaggi comuni.
OpenPermissionsPermessi comuni.
OpenItemBuilderUtility 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 provider non sia null prima 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.