Moduli Filosofia Architettura Installazione Download Wiki Scarica il JAR

Open Companies

Compilabile

Il Company Core per server roleplay: identità aziendale, ruoli, membri, inviti, camera di commercio, licenze, sede e asset fisici. Funziona subito con default YAML e lascia economy, permessi, regioni, identità e storage ai tuoi adapter.

Namespacedev.openrp.companies
Comando/company · /opencompanies · /companies
Dipendenzenessuna obbligatoria
OpzionaliOpenCore · Vault · LuckPerms · WorldGuard · OpenVendingMachines
APIOpenCompaniesApi

Perché adapter-first

Open Companies non hardcoda economy, permessi o regioni. Dipende da sette interfacce, tutte con un default incluso, e le espone a runtime tramite api.adapters().

AdapterResponsabilitàDefault incluso
StorageAdapterPersiste aziende, asset e richiesteYAML o memoria
EconomyAdapterCosto creazione e tesoreria aziendaleWallet demo in memoria
PermissionAdapterControlli permessiPermission node Bukkit
RegionAdapterValidazione sede e coordinate controllateNo-op
IdentityAdapterPrefissi, tab e identità aziendaleNo-op
NotificationAdapterNotifiche a membri e staffChat
LoggingAdapterAudit trail delle azioni sensibiliFile, console o nessuno

Vault, LuckPerms, WorldGuard e Open Vending Machines restano soft dependency: se non ci sono, il modulo si avvia comunque.

Come nascono le aziende

Una sola chiave di config governa il flusso: companies.creation.mode. Cambi modalità senza cambiare codice.

PLAYER_DIRECTI player fondano subito con /company create <nome> <tipo>. Limiti, costo e cooldown restano server-side.
PLAYER_APPLICATIONI player inviano una richiesta con /company apply; lo staff approva o rifiuta dalla camera di commercio.
ADMIN_ONLYSolo lo staff crea aziende con /company admin create, per server con camera di commercio controllata.

Ruoli, licenze e asset

Il permission node abilita il comando; l'autorizzazione reale dentro l'azienda passa dai ruoli e dalle capability.

RuoloLivelloCapability principali
CEO6Tutte, incluso ADMIN
DIRECTOR5Licenze, finanza, identità
VICE_DIRECTOR4Licenziamenti e cambio ruolo
MANAGER3Inviti e gestione asset
EMPLOYEE2Vista e uso asset
TRAINING1Vista e uso asset base
  • Stati azienda: ACTIVE, SUSPENDED, DISSOLVED
  • Licenze: food, security, transport, banking, media, real estate, healthcare e altro
  • Sede: /company admin sethq, validabile via RegionAdapter
  • Asset: terminali, POS, casseforti, badge reader, display, storage e chioschi

Comandi

Comando principale /company, con alias /opencompanies, /ocompanies e /companies.

ComandoFunzionePermesso
/company create <nome> <tipo>Fonda un'azienda in modalità direttaopencompanies.create
/company apply <nome> <tipo> [descr.]Invia una richiesta alla cameraopencompanies.apply
/company list / infoConsulta aziende e dettagliopencompanies.use
/company membersMostra i membri della tua aziendaopencompanies.use
/company invite / fire / roleGestisce persone e ruoliopencompanies.invite / opencompanies.fire / opencompanies.role
/company licensesMostra le licenze aziendaliopencompanies.use
/company assetsRegistra e consulta assetopencompanies.assets
/company admin ...Creazione staff, status, owner, licenze, sede, richieste e reloadopencompanies.admin

API pubblica

Recupera OpenCompaniesApi dal Services Manager di Bukkit. Comandi e API passano dallo stesso percorso validato, lockato e auditabile.

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

CompanyResult result = api.companies()
    .createCompany(ownerUuid, "Owner", "Red Spot Foods", "food");

boolean canFire = api.companies()
    .hasCapability(playerUuid, "red-spot-foods", CompanyCapability.FIRE);

api.chamber().grantLicense("red-spot-foods", CompanyLicenseType.FOOD_SERVICE);
api.assets().registerAsset("red-spot-foods", staffUuid, CompanyAssetType.POS, "world", 10, 64, -3);
  • CompanyService — aziende, membri, inviti, ruoli e ownership
  • ChamberService — richieste, licenze, status e sede
  • CompanyAssetService — asset fisici e controlli uso/gestione
  • AdapterRegistry — sostituzione runtime di economy, storage e sistemi esterni

Integrazione con Open Vending Machines

Quando Open Vending Machines è presente, Open Companies registra un OpenCompaniesBusinessAdapter: i distributori possono appartenere alle aziende e rispettarne ruoli e capability.

Capability vendingRuolo minimo
USEEmployee+
RESTOCKEmployee+ oppure Manager+ se configurato
WITHDRAWManager+
EDIT_PRICEManager+
MANAGEDirector+

Se Open Vending Machines non è installato, l'integrazione non viene caricata e Open Companies resta pienamente utilizzabile.

Sicurezza e concorrenza

La GUI e i comandi sono front-end sottili: la fonte di verità resta nei servizi core.

  • Ogni mutazione valida permesso, ruolo, stato azienda, limiti, nome, player e cooldown
  • Le operazioni sensibili girano sotto lock per companyId
  • Il costo creazione viene rimborsato se la creazione fallisce o un evento la annulla
  • Eventi Bukkit disponibili: creazione, cancellazione, inviti, ruoli, status, licenze e sede