Moduli Filosofia Architettura Installazione Download Wiki Scarica il JAR

Open Weapons

Snapshot in decoupling

Il sistema armi e tutto il gameplay roleplay collegato al combat: armi da fuoco e melee, munizioni, accessori, armature e protezioni, fino a manette, arresti, perquisizioni, rapine, wanted e radio delle forze dell'ordine.

Namespacedev.openrp.weapons
Comando/items · /weapons
DipendenzePaper 1.21.x
OpzionaliNexo · PacketEvents · AnvilGUI
BridgeOpen Cosmetics

Aree funzionali

Open Weapons non è solo "armi": è l'intero strato di combat roleplay, pensato come base pubblica che altri moduli possono estendere.

Armi da fuoco e meleePistole, SMG, fucili, sniper, armi bianche e ghost weapons.
Munizioni e caricatoriCalibri con penetrazione, danno e durabilità su armor e scudi.
Accessori e banco armiOttiche, grip, soppressori, convertitori e installazione al weapon bench.
Armature e caschiLivello NIJ, riduzione danno, negazione headshot e prevenzione stun.
Granate, C4, taser e scudiUtility tattiche complete per scenari di azione e ordine pubblico.
Manette, arresti e cauzioniFlusso completo di fermo, arresto, bail e gestione detenuti.
Perquisizioni e rapineFrisk e rob lato server, con regole e feedback chiari.
Wanted, radio FdO e SOSLivelli di ricercato, canale radio per le forze dell'ordine e telefono/SOS.
Bridge Open CosmeticsLED, colori e skin applicati senza duplicare la logica delle armi.

Arsenale iniziale

Tutto è guidato da config: weapons.yml, ammo.yml, attachments.yml e armor.yml. Questi sono i contenuti inclusi di default, pronti da modificare.

Armi

ppkberetta_92fsglock_19desert_eaglear_15m4a1hk416famasak_47fn_scar_hmp5mp7sig_mcx_semiautosig_mcx_assaultremington_870barrett_mradawpmanganellotirapugniknifearietepiede_di_porcoghost_pistolghost_shotgunghost_smgghost_rifle

Munizioni e caricatori

CalibroOgni voce può definire
9mm, 46mm, 50ae, 556nato, 762nato, 12gauge, magazinesNome display, materiale, custom model data, stack massimo, classe di penetrazione, danno durabilità armor, moltiplicatore danno flesh e danno durabilità scudo.

Accessori

AccessorioSlot
holographic_sight, scope_3x, scope_10xoptic
vertical_gripunderbarrel
extended_magazinemagazine
suppressorbarrel
light_trigger, full_auto_converterinternal

Ogni accessorio definisce categorie e armi compatibili, moltiplicatori di recoil, spread, ADS, hipfire, suono, distanza e mobilità, bonus zoom, tempo di installazione ed eventuale illegalità.

Armature e caschi

vest_light · vest_heavy · vest_heavy_platedRiduzione danno, livello NIJ, durabilità, colore e penalità di movimento.
ballistic_helmet · riot_helmet · sf_helmetRiduzione danno, negazione headshot e prevenzione dello stun da melee.

Comandi

Nello snapshot attuale i comandi vengono registrati tramite il core storico; verranno consolidati in un plugin.yml proprio quando Open Weapons diventerà un plugin Paper autonomo.

ComandoFunzione
/itemsApre il catalogo / dà gli item arma.
/weaponsAlias di /items.
/weaponconfigGestione della configurazione armi.
/weaponbenchApre il banco armi per installare accessori.
/robAvvia una rapina su un bersaglio.
/friskPerquisisce un giocatore.
/arrest · /uncuffArresto e rilascio di un detenuto.
/bail · /arrestsCauzione e gestione degli arresti.
/wantedGestione del livello di ricercato.
/lawradioCanale radio delle forze dell'ordine.
/sosRichiesta di soccorso / telefono.

Configurazione

I file di config pubblici vivono nel sorgente sotto open-weapons/src/main/resources/ e vengono generati nella cartella dati del plugin al primo avvio.

  • weapons.yml — definizioni delle armi e varianti visuali
  • ammo.yml — munizioni e caricatori
  • attachments.yml — accessori e slot
  • armor.yml — armature e caschi
  • messages_it.yml — messaggi in italiano

Cosa definisce weapons.yml

  • Categoria arma e materiale base
  • Custom model data e stati visuali (idle, aiming, reload)
  • Varianti visuali: caricatore, grip, ottica e combinazioni
  • Varianti colore e skin
  • Danno e moltiplicatore headshot
  • Fire rate, reload time e automatico
  • Dimensione caricatore e tipo munizione
  • Distanza massima e falloff del danno
  • Recoil e spread (hipfire, ADS, movimento, sneak, jump)
  • Suoni e model data del caricatore
config · esempio concettuale weapons.yml
m4a1:
  category: assault_rifles
  ammo: 556nato
  damage: 7.0
  headshot-multiplier: 1.8
  fire-rate: 100        # colpi/min
  reload-time: 2.4      # secondi
  magazine-size: 30
  automatic: true
  max-distance: 90.0

Bridge e API combat

Due superfici di integrazione: un bridge verso Open Cosmetics e una API di policy combat per regole server-specific.

Bridge con Open Cosmetics

Open Weapons registra un OpenCosmeticsWeaponBridge via Bukkit Services, così Open Cosmetics può applicare LED, colori e skin senza conoscere il registry interno delle armi: verifica se un item è un'arma, ne legge l'id e ne chiede il refresh visuale.

API di policy combat

Una policy può negare l'uso dell'arma, il bersaglio o l'impatto, oppure semplicemente ascoltare gli eventi di sparo e hit — perfetta per safezone, eventi, training, regole per fazioni e protezioni temporanee.

java · WeaponCombatPolicy
// Modello esposto dal modulo
WeaponCombatPolicy     // la tua regola
WeaponCombatDecision   // allow / deny
WeaponUseContext       // chi spara, con cosa
WeaponTargetContext    // bersaglio e condizioni
WeaponImpactContext    // impatto e danno

// Esempio: niente uso armi in safezone
policy = (use) -> isSafezone(use.shooter().getLocation())
        ? WeaponCombatDecision.deny()
        : WeaponCombatDecision.allow();

Resource pack

Gli asset arma in formato aperto stanno in open-weapons/assets/resource-pack/. La build Maven genera lo zip Minecraft-ready durante package.

bash · genera il resource pack
bash scripts/build-resource-packs.sh
# output: target/resource-packs/open-weapons-resource-pack.zip

Roadmap del modulo

Open Weapons è uno snapshot pubblico in decoupling: il codice è già nel namespace dev.openrp.weapons, ma alcune classi dipendono ancora dal vecchio core roleplay. I prossimi passi:

  • Creare OpenWeaponsPlugin extends JavaPlugin
  • Spostare i comandi in plugin.yml / paper-plugin.yml
  • Rimuovere i riferimenti al vecchio core
  • Introdurre una API pubblica minima o adapter opzionali
  • Rendere opzionali aziende, polizia e staff log
  • Aggiungere test su registry, model data e combat policy