Moduli Filosofia Architettura Installazione Download Wiki Scarica il JAR

Open Access

Standalone

Definisci chi può usare, aprire o modificare oggetti dentro una regione: casse, container, porte, macchine e blocchi custom. Profili, trust, ruoli e preset, con storage SQLite o MySQL.

Namespacedev.openrp.access
Comando/openaccess · /access · /oa
DipendenzeWorldGuard + WorldEdit
StorageSQLite / MySQL
APIOpenAccessApi

Cosa controlla

Open Access protegge gli oggetti interattivi dentro una regione: dai container vanilla ai blocchi custom delle macchine, con regole per profilo o override sul singolo blocco.

Casse, barili e fornaciContainer vanilla protetti con regole di accesso e gestione.
Hopper, dispenser e dropperBlocchi di trasporto e automazione coperti dai controlli.
Shulker boxStorage portatile gestito con le stesse regole dei container.
Porte, botole e cancelliAperture controllate per chi entra ed esce dagli ambienti.
Bottoni, leve e pressure plateComandi di segnale redstone soggetti a permessi di uso.
Blocchi custom interattiviMacchine e arredi custom con uso protetto dalla policy.
Profili su regioni WorldGuardOgni profilo è collegato a una regione WorldGuard reale.
Override per singolo bloccoRegole specifiche su una posizione, sopra il preset di regione.

Caratteristiche

Un plugin Paper autonomo, pensato come strato di accesso pubblico che altri moduli proprietà, aziende e hotel possono estendere via provider.

  • Plugin OpenAccess con comando /openaccess (alias /access, /oa)
  • Storage SQLite di default con supporto MySQL/MariaDB
  • Cache in memoria per risoluzioni rapide
  • Operazioni storage su executor dedicato, con ritorno al main thread per messaggi e GUI
  • API pubblica esposta via Bukkit Services
  • Provider registry per futuri moduli proprietà, aziende e hotel

Comandi

Il comando principale è /openaccess, con alias /access e /oa.

ComandoFunzione
/openaccessComando principale.
/openaccess region link <PROPERTY|COMPANY|HOTEL_ROOM|REGION> <wgRegion> <owner> [world]Collega una regione.
/openaccess region unlink <wgRegion> [world]Scollega una regione.
/openaccess region info [wgRegion] [world]Info sulla regione.
/openaccess trust <onlinePlayer|uuid> [manage]Autorizza un player.
/openaccess untrust <onlinePlayer|uuid>Revoca un player.
/openaccess player add <onlinePlayer|uuid> [open|manage|all]Regola per player.
/openaccess player remove <onlinePlayer|uuid>Rimuove una regola.
/openaccess preset <private|members|managers|public|custom> [region|block]Imposta un preset.
/openaccess reloadRicarica la cache accessi.
/openaccess debugDebug.

Alias disponibili: /access e /oa.

Permessi

I permessi controllano amministrazione, link delle regioni, reload, debug e bypass dei controlli di accesso.

PermessoDescrizioneDefault
openrp.access.adminAmministrazione completa.op
openrp.access.region.manageLink/unlink regioni WorldGuard.op
openrp.access.reloadRicarica cache accessi.op
openrp.access.debugUsa debug.op
openrp.access.bypassBypassa i controlli accesso.op

Esistono alias compatibili next.access.* (admin, region.manage, reload, debug, bypass).

Preset

I preset definiscono in un colpo solo chi può usare i blocchi sensibili di una regione o di un singolo blocco.

PresetComportamento
privateSolo proprietari, manager e regole esplicite.
membersMembri e manager possono usare i blocchi sensibili.
managersSolo manager e proprietari.
publicTutti possono usare i blocchi sensibili.
customSolo regole esplicite e manager.

Il preset di regione è il default; un preset di blocco crea un override per una posizione specifica. Lo shift-right-click su un blocco gestibile apre l'editor GUI.

Storage e configurazione

SQLite di default sul file open_access.db, con supporto MySQL/MariaDB tramite connection pool. Le tabelle gestite sono access_profiles, access_rules e access_audit_logs.

config · esempio config.yml
storage:
  type: sqlite
  sqlite:
    file: open_access.db

access:
  additional-interactive-materials:
    - NOTE_BLOCK
    - BARRIER
    - LIGHT
    - STRUCTURE_VOID

API

Il servizio OpenAccessApi si ottiene via Bukkit.getServicesManager().load(OpenAccessApi.class) ed espone risoluzione accessi, profili, cache ed editor GUI.

  • resolve(player, location, action) — risolve l'accesso
  • canManage(player, profile) — verifica la gestione
  • findProfileAt(location) — profilo alla posizione
  • findProfileByRegion(world, regionId) — profilo per regione
  • profiles() — elenco dei profili
  • refreshCache() — ricarica la cache
  • openEditor(player, profile, block) — apre l'editor GUI
  • registerOwnerProvider / unregisterOwnerProvider — provider esterni

Le azioni disponibili sono OPEN, CONTAINER, SIGNAL, MACHINE, PLACE, BREAK e MANAGE. I provider esterni implementano OpenAccessOwnerProvider per aggiungere principal RP: proprietà, aziende, hotel e affitti.

java · OpenAccessApi
OpenAccessApi api = Bukkit.getServicesManager()
        .load(OpenAccessApi.class);

// È consentito aprire il container qui?
boolean ok = api.resolve(player, block.getLocation(),
        AccessAction.CONTAINER);

// Aggiungi principal RP via provider esterno
api.registerOwnerProvider(myOwnerProvider);