Moduli Filosofia Architettura Installazione Download Changelog Wiki Scarica il JAR

Open Crime

Compilabile

Il motore della criminalità organizzata per server roleplay: organizzazioni illegali, territorio, produzione multistadio, traffico, riciclaggio ed estorsione. Neutro rispetto all'ambientazione: il core non conosce nessuna sostanza, organizzazione reale o metodo criminale — tutto vive nella config o dietro adapter opzionali.

Namespacedev.openrp.crime
Comandi/syndicate · /territory · /produce · /traffic · /launder · /racket · /denuncia · /informatore
Dipendenzenessuna obbligatoria
OpzionaliOpenCore · OpenFDO · OpenCompanies · bank bridge · WorldGuard · LuckPerms
APIOpenCrimeApi

RP First: niente heat, solo scoperte

Non esiste un numero di "attenzione" nascosto che cresce nel tempo. Il core è opaco alle forze dell'ordine per default: ogni evento criminale resta privato finché un'azione RP concreta non lo collega a un fascicolo. Se nessuno fa nulla, il plugin non fa nulla.

Core
IllegalOrg · Territory · IllegalGood · CrimeEvent · Discovery
Configgoods · syndicate · production · traffic · laundering · racket
Adaptereconomy · company · authority · region

Un'organizzazione senza nessuna Discovery non esiste agli occhi delle autorità. Le FDO leggono gli eventi di un'org solo passando un dossierId che vere scoperte hanno collegato.

Le cinque scoperte

L'unico modo in cui le autorità vengono a sapere qualcosa. Ogni Discovery nasce da un'azione RP specifica, è attribuita a chi l'ha fatta e collega un evento a un fascicolo.

TipoCome nasce
denunciaUn civile usa /denuncia vicino a un agente — entrambi fisicamente presenti, e un crimine dev'essere avvenuto lì di recente
scoperta_fisicaUn agente entra in una location di produzione attiva — notifica solo a lui, solo in quel momento
arrestoUn membro arrestato con beni illegali collega gli eventi recenti dell'org al fascicolo
informatoreUn membro usa /informatore vicino a un agente abilitato e rivela ciò che sa
indagineUn agente collega manualmente scoperte già esistenti (lato Open FDO)

Cinque sottosistemi attivabili

Concettualmente plugin separati che dipendono dal core; distribuiti come un unico plugin con i toggle in config.yml. Un modulo disattivato non registra nulla.

Open Syndicate/syndicate · /territory — fondazione, gerarchia, reclutamento, chat interna, conquista del territorio.
Open Production/produce — produzione multistadio in location fisiche, con ingredienti reali e presenza del worker.
Open Traffic/traffic — spedizioni lungo rotte fisiche; corrieri vulnerabili, beni sequestrabili.
Open Laundering/launder — denaro sporco → pulito nel tempo, con perdita. Un audit lo intercetta solo se ancora in corso.
Open Racket/racket — pizzo sulle aziende, con escalation. Il livello 3 non fa nulla in automatico: è RP puro.
Core/denuncia · /informatore · /opencrime — il registro e il ponte verso le autorità.

Gerarchia e capability dalla config

Le gerarchie non sono hardcoded: in syndicate.yml definisci ranghi, ordine e capability. Le capability sono ereditate verso l'alto; il rango apicale di solito ha ALL. Un fantasy avrà "Adepto → Gran Maestro" e il plugin non vede la differenza.

  • INVITE · EXPEL · PROMOTE · DEMOTE · DISSOLVE
  • VIEW_TREASURY · TERRITORY_CLAIM
  • PRODUCE · PRODUCE_CANCEL
  • TRAFFIC · TRAFFIC_AGREEMENT · TRAFFIC_LOG
  • LAUNDER
  • RACKET_IMPOSE · RACKET_COLLECT · RACKET_ESCALATE · RACKET_MANAGE

Adapter

Ogni adapter ha un default funzionante ed è scoperto a runtime dal Bukkit ServicesManager. Assente o non reale, la feature collegata degrada in silenzio — nessun crash, nessuna dipendenza dura.

AdapterDefaultAssente / non reale →
StorageAdapterYAML atomico con backup (o memory)
PermissionAdapterBukkit (riflette LuckPerms)
NotificationAdapterchat / action bar
RegionAdaptersintetico per-chunkcon require_worldguard off resta usabile; un bridge WorldGuard porta regioni e tag reali
EconomyAdapterledger interno (sporco/pulito)un bridge Open Bank lo sostituisce
CompanyAdapterno-opil racket degrada: /racket imponi non trova aziende
AuthorityAdapterper permessi (fascicolo sintetico)un bridge Open FDO apre fascicoli reali e collega le scoperte

Comandi

Il permesso Bukkit (opencrime.use) abilita solo l'uso del comando: l'autorità reale viene dalle capability del grado. opencrime.admin bypassa i controlli per lo staff.

ComandoFunzione
/syndicatefonda, info, invita, accetta, espelli, promuovi, degrada, scioglie, chat, treasury
/territoryclaim, stato, mappa, abbandona
/produceavvia <ricetta> [fase], stato, raccogli, annulla
/trafficavvia <rotta>, consegna, stato, accordo, log
/launderavvia <metodo> <importo>, stato, storico
/racketimponi, lista, incassa, escalation, revoca, accetta, rifiuta
/denuncia · /informatorei due comandi di scoperta del core
/opencrimestatus, reload

API pubblica

Recupera OpenCrimeApi dal Services Manager di Bukkit. È il registro centrale dell'illegalità, ma le autorità leggono gli eventi di un'org solo passando un dossierId collegato a scoperte reali.

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

// Registra il tuo bridge (es. Open Bank) come economy adapter
api.adapters().setEconomy(myBankBridge);

// Il core sa cos'è illegale; la config decide come appare
boolean illegale = api.isIllegal(item);
api.getOrgByMember(playerUuid).ifPresent(org -> { /* ... */ });

// Le FDO vedono solo gli eventi collegati a un fascicolo reale
List<CrimeEvent> visibili = api.getDiscoveredEventsByOrg("clan", dossierId);
  • orgs() — fondazione, membri, gradi e capability
  • territories() — controllo e contese
  • goods() — marca e identifica i beni illegali (NBT)
  • registerDiscovery() / getDiscoveriesByDossier() — scoperte (il registro grezzo degli eventi non è esposto)
  • adapters() — sostituzione runtime di economy, company, authority, region
  • getDiscoveredEventsByOrg(org, dossier) — accesso FDO, solo con fascicolo

Sicurezza e neutralità

  • Il core non contiene il nome di nessuna sostanza, organizzazione reale o metodo: tutto in config
  • Nessun heat: la pressione investigativa nasce solo da azioni RP concrete
  • Gli eventi criminali sono privati finché una Discovery non li collega a un fascicolo
  • Storage durevole: scrittura atomica con backup, recupero da write interrotti
  • Non punisce automaticamente: registra e abilita, mai esegue
  • Non crasha se un adapter manca: disattiva in silenzio la feature collegata