Skip to content

API e integrazioni

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

API e integrazioni

I moduli usano Bukkit Services per restare collegabili senza accoppiarsi troppo.

Open Access API

Servizio:

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

Responsabilita':

  • risolvere accesso player/posizione/azione;
  • verificare gestione profilo;
  • trovare profili da posizione o regione;
  • aprire editor;
  • registrare provider esterni.

Azioni:

  • OPEN
  • CONTAINER
  • SIGNAL
  • MACHINE
  • PLACE
  • BREAK
  • MANAGE

Provider:

OpenAccessOwnerProvider

Un provider puo' aggiungere principal e permessi manager in base a sistemi esterni. Esempi futuri:

  • proprieta';
  • aziende;
  • hotel;
  • affitti;
  • gruppi server-specific.

Open Cosmetics API

Servizio:

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

Responsabilita':

  • leggere cosmetici disponibili;
  • creare token;
  • applicare selezione;
  • aprire editor/workbench;
  • leggere suoni skin;
  • decorare nome item;
  • generare candidati variante visuale;
  • applicare custom model data e colore;
  • gestire soppressione suoni skin automatici.

Bridge Open Cosmetics - Open Weapons

Open Cosmetics definisce:

OpenCosmeticsWeaponBridge

Open Weapons lo implementa e registra.

Serve per:

  • getWeaponId(ItemStack);
  • isWeapon(ItemStack);
  • refreshWeaponVisual(ItemStack).

Questo evita che Open Cosmetics debba conoscere il registry interno di Open Weapons.

Open Weapons combat policy

Open Weapons contiene una API di policy combat:

WeaponCombatPolicy
WeaponCombatDecision
WeaponUseContext
WeaponTargetContext
WeaponImpactContext

Uso previsto:

  • safezone;
  • eventi;
  • training;
  • regole per fazioni;
  • protezioni temporanee;
  • regole server-specific.

Una policy puo' negare uso, target o impatto e puo' ascoltare eventi di sparo o hit.

Integrazioni esterne

Integrazione Uso
Paper API Base plugin e API server
WorldGuard Regioni e profili Open Access
WorldEdit Adapter WorldGuard
Nexo Item/model/resource pack in Open Weapons
PacketEvents Hook animazioni armi
AnvilGUI Input GUI in Open Weapons
Bukkit Services API tra moduli

Regola di design

Un modulo pubblico dovrebbe degradare in modo chiaro quando una integrazione opzionale non e' presente.

Esempio gia' adottato:

  • Open Cosmetics si abilita senza Open Weapons;
  • segnala che manca il bridge;
  • lascia disponibili GUI/config/token;
  • impedisce solo le azioni che richiedono un item arma riconosciuto.

Clone this wiki locally