Skip to content

Open Access

Giovanni Albanese edited this page Jun 13, 2026 · 1 revision

Open Access

Open Access e' il plugin standalone per controllare accessi a regioni WorldGuard e blocchi sensibili.

Obiettivo

Permettere a server roleplay di definire chi puo' usare, aprire o modificare oggetti dentro una regione:

  • casse;
  • barili;
  • fornaci;
  • hopper, dispenser e dropper;
  • shulker box;
  • porte, botole e cancelli;
  • bottoni, leve e pressure plate;
  • blocchi custom interattivi come macchine o arredi.

Stato

Open Access e' pensato come plugin Paper autonomo.

Caratteristiche gia' presenti:

  • plugin OpenAccess;
  • comando /openaccess;
  • alias /access e /oa;
  • storage SQLite di default;
  • supporto MySQL/MariaDB;
  • cache in memoria;
  • operazioni storage su executor dedicato;
  • ritorno al main thread per messaggi e GUI;
  • API pubblica via Bukkit Services;
  • provider registry per futuri moduli proprieta', aziende e hotel.

Dipendenze

Open Access richiede WorldGuard.

In plugin.yml:

depend:
  - WorldGuard

WorldEdit e WorldGuard sono dipendenze provided: installale nel server Paper.

Comandi

/openaccess
/openaccess region link <PROPERTY|COMPANY|HOTEL_ROOM|REGION> <wgRegion> <owner> [world]
/openaccess region unlink <wgRegion> [world]
/openaccess region info [wgRegion] [world]
/openaccess trust <onlinePlayer|uuid> [manage]
/openaccess untrust <onlinePlayer|uuid>
/openaccess player add <onlinePlayer|uuid> [open|manage|all]
/openaccess player remove <onlinePlayer|uuid>
/openaccess preset <private|members|managers|public|custom> [region|block]
/openaccess reload
/openaccess debug

Alias:

/access
/oa

Permessi

Permesso Descrizione Default
openrp.access.admin Amministrazione completa op
openrp.access.region.manage Link/unlink regioni WorldGuard op
openrp.access.reload Ricarica cache accessi op
openrp.access.debug Usa debug op
openrp.access.bypass Bypassa i controlli accesso op

Alias compatibili:

  • next.access.admin
  • next.access.region.manage
  • next.access.reload
  • next.access.debug
  • next.access.bypass

Preset

Preset Comportamento
private Solo proprietari, manager e regole esplicite.
members Membri e manager possono usare i blocchi sensibili.
managers Solo manager/proprietari.
public Tutti possono usare i blocchi sensibili.
custom Solo regole esplicite e manager.

Il preset di regione e' il default. Un preset di blocco crea un override per una posizione specifica.

Storage

Default:

storage:
  type: sqlite
  sqlite:
    file: open_access.db

MySQL/MariaDB:

storage:
  type: mysql
  mysql:
    host: 127.0.0.1
    port: 3306
    database: open_access
    username: open_access
    password: ""
    pool:
      max-size: 10
      minimum-idle: 1
      connection-timeout-millis: 30000

Tabelle:

  • access_profiles
  • access_rules
  • access_audit_logs

Materiali interattivi custom

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

Usa questa lista per blocchi custom che non sono container, porte o segnali vanilla ma devono essere trattati come macchine/interattivi.

GUI

Shift-right-click su un blocco gestibile apre l'editor se il player puo' gestire il profilo accesso.

La GUI consente di:

  • vedere il profilo collegato;
  • cambiare preset regione;
  • cambiare preset blocco;
  • vedere quante regole player sono attive;
  • chiudere il menu.

API

Servizio Bukkit:

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

Metodi principali:

  • resolve(player, location, action);
  • canManage(player, profile);
  • findProfileAt(location);
  • findProfileByRegion(world, regionId);
  • profiles();
  • refreshCache();
  • openEditor(player, profile, blockLocation);
  • registerOwnerProvider(provider);
  • unregisterOwnerProvider(namespace).

Provider futuri possono implementare OpenAccessOwnerProvider per aggiungere principal roleplay come aziende, hotel, affitti o proprieta'.

Test manuale consigliato

  1. Crea una regione WorldGuard.
  2. Collega la regione:
/openaccess region link PROPERTY casa_1 <player>
  1. Piazza una cassa nella regione.
  2. Prova ad aprirla con un player non autorizzato.
  3. Autorizza:
/openaccess trust <player>
  1. Cambia preset del blocco:
/openaccess preset public block
  1. Verifica che openrp.access.bypass ignori il deny.

Clone this wiki locally