Moduli Filosofia Architettura Installazione Download Wiki Scarica il JAR

Open Core

Avviabile

La 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.

Namespacedev.openrp.core
Comando/opencore · /ocore
DipendenzePaper 1.21.x
Databaseopzionale SQLite/MySQL
APIOpenRoleplayCore

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.

Servizio Bukkit OpenRoleplayCoreEsposto via Bukkit Services come punto d'accesso comune ai moduli.
Manager moduli esplicitoRegistrazione dichiarativa, niente discovery riflessivo.
Comando /opencoreStato dei moduli e reload, mirato o globale.
Database opzionaleSQLite o MySQL via HikariCP, disabilitato di default.
Servizio HUD temporaneoMessaggi e overlay brevi a disposizione dei moduli.
Invio resource packDistribuzione opzionale del pack ai giocatori in ingresso.
Blocco esperienza vanillaDisattivazione opzionale dei livelli/XP vanilla.

Comandi

Un solo comando amministrativo, con alias /ocore, per ispezionare lo stato e ricaricare il core o un singolo modulo.

ComandoFunzione
/opencore statusStato dei moduli.
/opencore reloadRicarica 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.

PermessoDescrizioneDefault
openrp.core.adminAmministrazione completa di Open Core.op
openrp.core.reloadRicarica Open Core e i moduli registrati.op
openrp.core.debugLegge 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

config.yml · SQLite
database:
  enabled: true
  type: sqlite
  sqlite:
    file: open_core.db

Database MySQL

config.yml · MySQL (HikariCP)
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 modulo
  • experience-control.enabled — blocco opzionale dell'esperienza vanilla
  • resource-pack.enabled — invio del pack ai giocatori
  • resource-pack.url — URL del pack da scaricare
  • resource-pack.sha1 — hash di verifica del pack
  • resource-pack.required — pack obbligatorio per giocare
  • resource-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.

java · recupero del servizio
// 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.