Skip to content

Open Weapons

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

Open Weapons

Open Weapons e' il modulo armi e combat roleplay di Open Roleplay.

Stato

Open Weapons e' attualmente uno snapshot pubblico in decoupling.

Il codice e' gia' nel namespace pubblico dev.openrp.weapons, ma alcune classi dipendono ancora da API del vecchio core roleplay. Per questo il modulo va considerato materiale tecnico aperto e riusabile, non ancora plugin standalone pulito come Open Access o Open Cosmetics.

Obiettivo della prossima fase:

  • rimuovere riferimenti al vecchio core;
  • introdurre una API pubblica minima;
  • trasformare WeaponsModule in un plugin Paper standalone;
  • rendere opzionali integrazioni come aziende, polizia, log staff e identita'.

Aree funzionali

Open Weapons contiene:

  • armi da fuoco;
  • armi melee;
  • munizioni;
  • caricatori;
  • accessori;
  • banco armi;
  • armature e caschi;
  • granate;
  • C4;
  • taser;
  • scudi;
  • manette;
  • arresti e cauzioni;
  • perquisizioni;
  • rapine;
  • wanted;
  • radio forze dell'ordine;
  • SOS e telefono;
  • utility item;
  • bridge con Open Cosmetics;
  • API per policy combat esterne.

Configurazioni principali

open-weapons/src/main/resources/weapons.yml
open-weapons/src/main/resources/ammo.yml
open-weapons/src/main/resources/attachments.yml
open-weapons/src/main/resources/armor.yml
open-weapons/src/main/resources/messages_it.yml

Armi iniziali

  • ppk
  • beretta_92fs
  • ar_15
  • glock_19
  • remington_870
  • m4a1
  • mp5
  • mp7
  • manganello
  • tirapugni
  • knife
  • sig_mcx_semiauto
  • desert_eagle
  • hk416
  • famas
  • sig_mcx_assault
  • fn_scar_h
  • ak_47
  • barrett_mrad
  • awp
  • ariete
  • piede_di_porco
  • ghost_pistol
  • ghost_shotgun
  • ghost_smg
  • ghost_rifle

Munizioni iniziali

  • 9mm
  • 46mm
  • 50ae
  • 556nato
  • 762nato
  • 12gauge
  • magazines

Ogni munizione puo' definire:

  • nome display;
  • materiale;
  • custom model data;
  • stack massimo;
  • classe penetrazione;
  • danno durabilita' armor;
  • moltiplicatore danno flesh;
  • danno durabilita' scudo.

Accessori iniziali

  • holographic_sight
  • scope_3x
  • scope_10x
  • vertical_grip
  • extended_magazine
  • suppressor
  • light_trigger
  • full_auto_converter

Ogni accessorio puo' definire:

  • slot (optic, underbarrel, magazine, barrel, internal);
  • categorie compatibili;
  • armi compatibili specifiche;
  • moltiplicatori recoil, spread, ADS, hipfire, suono, distanza e mobilita';
  • bonus zoom;
  • tempo installazione;
  • illegalita'.

Armature e caschi iniziali

Armature:

  • vest_light
  • vest_heavy
  • vest_heavy_plated

Caschi:

  • ballistic_helmet
  • riot_helmet
  • sf_helmet

Le armature gestiscono riduzione danno, livello NIJ, durabilita', colore e penalita' movimento. I caschi possono ridurre danno, negare headshot o prevenire stun melee.

Visual variants

weapons.yml conserva i model data delle armi e delle varianti visuali:

  • stato idle;
  • aiming;
  • reloading;
  • caricatore presente/assente;
  • grip;
  • ottica;
  • combinazioni ottica + grip + caricatore;
  • varianti colore;
  • varianti skin.

Le varianti cosmetiche non vengono duplicate in Open Cosmetics: Open Cosmetics seleziona LED/colore/skin e Open Weapons mantiene il mapping model-data finale.

Comandi registrati dallo snapshot

La registrazione attuale passa ancora dal core storico. I comandi gestiti dal modulo includono:

  • /items
  • /weapons come alias di /items
  • /weaponconfig
  • /weaponbench
  • /uncuff
  • /rob
  • /frisk
  • /arrest
  • /bail
  • /arrests
  • /wanted
  • /sos
  • /lawradio

Quando Open Weapons diventera' plugin standalone, questi comandi dovranno essere dichiarati in un plugin.yml/paper-plugin.yml del modulo.

Bridge con Open Cosmetics

Open Weapons registra un OpenCosmeticsWeaponBridge via Bukkit Services.

Il bridge permette a Open Cosmetics di:

  • verificare se un item e' un'arma;
  • leggere l'id arma;
  • chiedere il refresh visuale;
  • sincronizzare model data dopo cambio skin, LED o colore.

Open Weapons interroga OpenCosmeticsApi per:

  • decorare il nome dell'arma;
  • ottenere suoni skin;
  • ottenere candidati di variante visuale;
  • applicare color data e custom model data.

API combat

Il modulo espone un modello di policy combat:

  • WeaponCombatPolicy;
  • WeaponCombatDecision;
  • WeaponUseContext;
  • WeaponTargetContext;
  • WeaponImpactContext.

Le policy possono:

  • bloccare uso arma;
  • bloccare target;
  • bloccare impatto;
  • ascoltare sparo;
  • ascoltare hit.

Questa API e' utile per moduli futuri come zone protette, eventi, safezone, training o regole custom server-specific.

Resource pack

Gli asset armi sono in:

open-weapons/assets/resource-pack/

Lo zip viene generato in:

target/resource-packs/open-weapons-resource-pack.zip

Roadmap tecnica del modulo

  1. Creare OpenWeaponsPlugin extends JavaPlugin.
  2. Spostare la registrazione comandi in plugin.yml o paper-plugin.yml.
  3. Sostituire il vecchio core con API pubbliche o adapter opzionali.
  4. Rendere opzionali aziende/polizia/staff log.
  5. Aggiungere test su registry, model data, caricamento YAML e combat policy.
  6. Documentare schema completo di weapons.yml, ammo.yml, attachments.yml e armor.yml.

Clone this wiki locally