Open Core
AvviabileLa v1 non contiene gameplay: espone servizi comuni e un lifecycle ordinato per i moduli, senza il discovery riflessivo del vecchio progetto. È la fondazione Paper su cui poggiano gli altri moduli Open Roleplay.
Cosa include
Open Core è la base condivisa: niente logica di gioco, solo i servizi e l'orchestrazione che permettono ai moduli di registrarsi e ricaricarsi in modo ordinato.
Comandi
Un solo comando amministrativo, con alias /ocore, per ispezionare lo stato e ricaricare il core o un singolo modulo.
| Comando | Funzione |
|---|---|
/opencore status | Stato dei moduli. |
/opencore reload | Ricarica Open Core. |
/opencore reload <modulo> | Ricarica un modulo specifico. |
Alias: /ocore.
Permessi
I permessi di Open Core sono tutti riservati agli operatori per impostazione predefinita.
| Permesso | Descrizione | Default |
|---|---|---|
openrp.core.admin | Amministrazione completa di Open Core. | op |
openrp.core.reload | Ricarica Open Core e i moduli registrati. | op |
openrp.core.debug | Legge lo stato dei moduli. | op |
Configurazione
Il database è disabilitato di default: i moduli devono funzionare anche senza persistenza. Per attivarlo basta scegliere il backend in config.yml.
Database SQLite
database:
enabled: true
type: sqlite
sqlite:
file: open_core.db
Database MySQL
database:
enabled: true
type: mysql
mysql:
host: 127.0.0.1
port: 3306
database: open_roleplay
username: open_roleplay
password: ""
Altre sezioni
modules: {}— abilitazione e configurazione per moduloexperience-control.enabled— blocco opzionale dell'esperienza vanillaresource-pack.enabled— invio del pack ai giocatoriresource-pack.url— URL del pack da scaricareresource-pack.sha1— hash di verifica del packresource-pack.required— pack obbligatorio per giocareresource-pack.prompt— messaggio mostrato al prompt
API
Il servizio si recupera tramite Bukkit Services. I moduli devono restare difensivi: Open Core può non essere installato oppure il database può essere disabilitato, e in entrambi i casi il modulo deve continuare a funzionare.
// Recupero difensivo: Open Core potrebbe non essere installato
var registration = Bukkit.getServicesManager()
.getRegistration(OpenRoleplayCore.class);
if (registration == null) {
// degrada con grazia: il modulo gira anche senza Open Core
return;
}
OpenRoleplayCore core = registration.getProvider();
I contratti pubblici stabili vivono in un artifact dedicato: vedi Open Core API per le interfacce che i moduli possono compilare contro.