Vai al contenuto
ShadowMC

Configurazione

ShadowRegions

Protezione delle zone, tutta a pannelli. Senza WorldEdit e senza comandi da studiare.

Gratuito v1.0.4

Dove sono i file

plugins/ShadowRegions/

Il plugin li crea al primo avvio e li aggiorna da solo alle nuove versioni, senza toccare le tue modifiche.

Applicare le modifiche

/rg reload

Rilegge i file senza riavviare il server.

Cosa c’è dentro

21 file · 193 impostazioni

Da dove partire: config.yml

Impostazioni

I file che decidono come si comporta il plugin. Si parte da qui.

config.yml

Impostazioni generali
97 impostazioni
plugins/ShadowRegions/config.yml
Note del file

Qui c'è tutto quello che ti serve. Gli altri file sono:

lang/<locale>.yml    traduzioni
menus/<name>.yml     layout delle GUI
presets/<name>.yml   preset di flag
data/regions/*.yml   le regioni (modalità YAML)

Con un aggiornamento i tuoi file vengono portati alla nuova versione automaticamente: quello che hai cambiato resta, le vecchie copie sono in backup/<date>/, e se qualcosa richiede la tua attenzione trovi PORTING-<version>.txt in questa cartella.

config-version1
general2 chiavi
server-id"server-1"

Identifica questo server, usato quando più server condividono un database.

update-checktrue

Messaggi

Aggiungere una lingua = mettere un file in lang/. Viene caricato da solo. I testi rivolti ai giocatori stanno lì, non qui.

messages2 chiavi
default-locale"en_US"

La lingua usata quando quella del giocatore non è in lang/, e dalla console. Include en_US e it_IT. Imposta qui "it_IT" per un server italiano.

follow-client-localetrue

Archiviazione dati

AUTO  -> file YAML dentro questa cartella (il default). Nessuna configurazione.
         Compila qui sotto l'host MySQL e AUTO passa al database.
YAML  -> sempre file, anche quando ci sono le credenziali
MYSQL -> sempre il database
Continua a leggere

Le regioni stanno in memoria in ogni caso: il backend riceve solo le scritture, quindi le prestazioni sono identiche tra i due. Per passare dall'uno all'altro: /rg storage migrate

storage7 chiavi
typeAUTO
flush-interval"20s"

Ogni quanto le regioni modificate vengono scritte su disco. Vengono scritte subito anche con /rg save e allo spegnimento.

table-prefix"sr_"

Prefisso delle tabelle, usato solo dal backend database.

fail-safetrue
true  -> se lo storage muore restiamo attivi, in sola lettura
false -> se lo storage muore il plugin si disattiva da solo
storage.backup3 chiavi
enabledtrue
on-startuptrue
keep10
storage.mysql6 chiavi
host""

Host vuoto = restiamo sui file locali.

port3306
database"shadowregions"
username""
password""
storage.mysql.properties3 chiavi
useSSLfalse
characterEncoding"utf8mb4"
serverTimezone"UTC"
storage.pool5 chiavi
maximum-size6
minimum-idle2
connection-timeout"10s"
idle-timeout"10m"
max-lifetime"30m"

Protezione

Come si comporta il motore quando qualcuno prova a fare qualcosa.

protection9 chiavi
enabled-worlds[ ]

Vuoto = tutti i mondi. disabled-worlds vince su enabled-worlds.

disabled-worlds[ ]
deny-build-for-non-memberstrue
true  = una regione appena creata protegge subito (comportamento di WorldGuard)
false = una regione senza flag non ferma nessuno
auto-bypasstrue

Chi ha il permesso di bypass lo ha già attivo, senza doverlo attivare.

op-bypasstrue
bypass-ignores-effectsfalse

false = greeting, modalità di gioco ed effetti valgono anche per chi è in bypass

event-priorityNORMAL

LOWEST | LOW | NORMAL | HIGH | HIGHEST

fail-closedfalse

Se un listener lancia un'eccezione: false lascia passare l'azione, true la blocca.

deny-message-cooldown"2s"

Anti spam per i messaggi di rifiuto, per giocatore.

Selezione

selection5 chiavi
wandWOODEN_AXE
match-by-materialfalse
true = qualsiasi item di quel materiale funziona come bacchetta
false = solo la bacchetta data da /rg wand (ha un tag interno)
max-volume5000000

0 = nessun limite

max-polygon-points150

Ogni vertice in più è un passo in più per decidere se un blocco è dentro, e questo gira dentro gli eventi. 150 è già una forma che nessuno disegna a mano; oltre 512 il plugin non va comunque.

persistfalse

true = la selezione sopravvive a un riavvio

Limiti

Si alzano per gruppo con i permessi:

shadowregions.limits.regions.<n>
shadowregions.limits.volume.<n>

e si tolgono del tutto con shadowregions.limits.bypass

limits5 chiavi
max-regions-per-player0
max-volume-per-player0
min-size1
max-children0
limits.claim5 chiavi
enabledtrue
worlds[ ]
min-size5
max-size500
overlap-allowedfalse

Contorno di particelle

preview9 chiavi
enabledtrue
radius64

Oltre questa distanza dal giocatore non viene disegnato nulla.

max-points600

Numero massimo di punti disegnati in un passaggio.

interval10

Tick tra un disegno e il successivo.

color-edge"#FFFFFF"
color-normal"#55FF55"
color-expand"#55FF55"
color-contract"#FF5555"
color-shift"#55FFFF"
editor6 chiavi

Editor dell'area (il menu con un pulsante per lato) docs/11-EDITOR-AREA.md

default-step1
steps[1, 2, 5, 10, 25, 50, 100]
shift-multiplier5
undo-depth32
auto-previewtrue
confirm-on-closetrue

Prestazioni. Non c'è quasi mai motivo di toccarle

docs/15-PERFORMANCE.md

index1 chiave
max-chunks4096

Oltre questa larghezza in chunk una regione finisce nella lista "large" invece di riempire migliaia di bucket.

query-cache2 chiavi
enabledtrue
ttl500

millisecondi

Flag che agiscono nel tempo: cura, cibo, effetti, modalità di gioco, volo

effects2 chiavi
tick-interval20

tick tra un passaggio e il successivo

restore-on-exittrue

ripristina modalità di gioco, volo e velocità quando si esce dalla regione

La flag chunk-unload

Una regione con chunk-unload deny tiene caricati i chunk del suo box (chunk ticket dei plugin di Paper: nel mondo non viene scritto nulla, e spariscono quando il plugin si ferma). Una regione più larga di così, in chunk, viene saltata con un avviso in console.

chunk-unload1 chiave
max-chunks-per-region256

Cronologia delle modifiche (/rg history, /rg undo)

history3 chiavi
enabledtrue
keep-per-region50
keep-days30

Regole condizionali

Flag che si attivano da sole quando succede qualcosa:

/rg condition arena add pvp deny when weather thunder

Vengono valutate a intervalli, mai dentro un evento, quindi una regione con regole costa quanto una senza al momento della query. docs/25-CONDIZIONI.md

conditions2 chiavi
enabledtrue
interval20

tick tra una valutazione e la successiva

Vendita, affitto e scadenza

I soldi li sposta il plugin di economia: senza, tutto questo resta inerte. docs/26-VENDITA-E-AFFITTO.md

lease4 chiavi
enabledtrue
on-expiryUNCLAIM
DELETE  -> alla scadenza la regione viene eliminata
UNCLAIM -> alla scadenza resta, ma senza proprietari
warn-before[1d, 1h]

con quanto anticipo avvisare il proprietario

check-interval"30s"

ogni quanto controllare scadenze e rinnovi

Statistiche per regione (/rg stats)

Ingressi, tempo passato dentro, blocchi piazzati e rotti.

stats2 chiavi
enabledtrue
track-visitorstrue

tiene la lista dei visitatori unici. Disattivalo se non ti serve.

Log dei blocchi e /rg rollback

Questo NON sostituisce CoreProtect e non ci prova nemmeno: registra solo le modifiche DENTRO le regioni, con un tetto sulle righe, ed è disattivato di default. Serve a rimettere in piedi lo spawn alle 2 di notte senza installare nient'altro. docs/27-ROLLBACK.md

rollback3 chiavi
enabledfalse
max-entries200000
keep-days7

Mappa web

Con Dynmap installato, le regioni compaiono come aree colorate. Senza Dynmap questa sezione non fa nulla.

map1 chiave
map.dynmap7 chiavi
enabledtrue
label"Region"
fill-colour"#7B2FF7"
fill-opacity0.25
line-colour"#F107A3"
line-opacity0.8
line-weight2

Importazione da altri plugin

import2 chiavi
on-conflictSKIP

SKIP | OVERWRITE | RENAME

backup-beforetrue
security1 chiave

Sicurezza docs/29-SICUREZZA.md

region-console-commandstrue

Le flag enter-command / exit-command possono eseguire comandi come console. Impostarle richiede già un permesso apposito (shadowregions.flag.enter-command), ma se non vuoi che una regione possa arrivare alla console in nessun caso, imposta questa a false.

bStats - statistiche d'uso anonime (https://bstats.org)

metrics1 chiave
enabledtrue

Cosa viene inviato, ogni 30 minuti: che questo server usa ShadowRegions, le versioni del plugin, di Minecraft/Paper e di Java, il sistema operativo, il numero di core della CPU, quanti giocatori sono online (un numero, nient'altro), un serverUuid casuale che non identifica nulla, e se lo storage è YAML o MySQL. Nessun dato dei giocatori esce dal server: niente nomi, niente UUID, niente indirizzi, niente regioni o coordinate.

Continua a leggere

false lo disattiva solo per questo plugin. enabled: false in plugins/bStats/config.yml lo disattiva per tutti i plugin di questo server in una volta sola.

Diagnostica

debug3 chiavi
enabledfalse
watchdogfalse

scrive un avviso nel log quando un listener supera il suo budget di tempo

log-deniedfalse

scrive in console ogni azione bloccata. Molto rumoroso.

blacklist.yml

Cosa non si può proteggere
3 impostazioni
plugins/ShadowRegions/blacklist.yml
Note del file

Regole che valgono OVUNQUE, dentro e fuori dalle regioni. Servono per le cose che non devono succedere sul server, punto. Una regione sorveglia un'area; la blacklist sorveglia un item.

Finché "enabled" è false questo file non costa nulla: i listener escono alla prima riga.

enabledfalse

Come si scrive una regola

- items:   una lista di materiali, oppure [ "*" ] per tutti
    on:      break | place | use | interact | drop | pickup
             (se manca, la regola vale per tutte)
    actions: deny    ferma l'azione
             tell    lo dice a chi l'ha fatta
             notify  lo dice a chi ha shadowregions.notify
             log     lo scrive in console
             kick    espelle dal server
    message: testo MiniMessage da usare al posto di quello predefinito
Continua a leggere

Chi ha shadowregions.blacklist.bypass non viene mai fermato.

Le chiavi qui sopra sono la sintassi e restano in inglese. Il "message" è quello che legge un giocatore, quindi scrivilo nella lingua che parla il tuo server.

default[ ]

Queste valgono in tutti i mondi.

Esempi pronti, togli il commento per usarli:

default:
  - items: [ TNT, TNT_MINECART ]
    on: [ place, use ]
    actions: [ deny, notify, log ]
    message: "<red>La TNT e disattivata su questo server."
- items: [ LAVA_BUCKET ]
  on: [ place ]
  actions: [ deny, tell ]
- items: [ BEDROCK, BARRIER, COMMAND_BLOCK, STRUCTURE_BLOCK ]
  on: [ place, break ]
  actions: [ deny, notify, log ]
- items: [ SPAWNER ]
  on: [ break ]
  actions: [ notify, log ]
worlds{ }

Regole extra per un solo mondo. Si aggiungono a quelle di default.

worlds:
  world_nether:
    - items: [ WHITE_BED, RED_BED ]
      on: [ interact ]
      actions: [ deny, tell ]
      message: "<red>I letti esplodono qui. Te lo sto risparmiando."

Lingue

I testi che il plugin mostra ai giocatori, un file per lingua.

lang/

Testi e messaggi
2 file
plugins/ShadowRegions/lang/
Note del file

Questo è l'unico file pensato per essere tradotto. Tutto ciò che legge un giocatore sta qui; qui niente è sintassi.

Formato MiniMessage. I placeholder si scrivono <like-this> e i loro nomi sono fissi: tienili, spostali, ma non rinominarli. Una chiave che manca qui viene presa prima dalla copia di questa stessa lingua dentro il jar, poi dalla lingua predefinita e da en_US, una chiave alla volta.

Un messaggio può essere una semplice stringa o una mappa:

some-key:
  text: "<red>Text"
  channel: ACTION_BAR      # CHAT | ACTION_BAR | TITLE | SUBTITLE | NONE
  sound: block.note_block.bass
  volume: 0.7
  pitch: 0.8
  cooldown: "2s"           # anti spam, per player

Attenzione alle chiavi come "on", "off", "yes" e "no": YAML le legge come true/false se non sono tra virgolette. Scrivile come "on": e "off":.

Tutti i messaggi che il plugin mostra ai giocatori, un file per lingua. Le chiavi non sono elencate una per una: qui ci sono i file, quanti testi contengono e i segnaposto che usano.

FileLinguaTesti
lang/en_US.yml riferimento English 1097
lang/it_IT.yml Italiano 1097

Segnaposto più usati

Il plugin li sostituisce con il valore giusto: vanno lasciati scritti così.

  • <prefix>
  • <region>
  • <count>
  • <flag>
  • <world>
  • <value>
  • <volume>
  • <name>
  • <x>
  • <z>
  • <y>
  • <max>
  • <size-x>
  • <size-y>

Gruppi di messaggi

  • prefix 1
  • common 9
  • help 56
  • command 9
  • selection 29
  • region 66
  • info 11
  • member 8
  • flag 36
  • protection 22
  • editor 10
  • preview 4
  • admin 72
  • dynmap 4
  • confirm 6
  • input 22
  • gui 4
  • menu 334
  • preset 18
  • blacklist 10
  • condition 20
  • stats 9
  • rollback 12
  • guide 7
  • create 1
  • flag-category 9
  • flag-type 10
  • flag-desc 149
  • flag-name 149

Altro

Contenuti pronti, esempi, importazioni: i file che si copiano e si modificano come modello.

presets/

I modelli di regione
9 file
plugins/ShadowRegions/presets/

9 file con la stessa forma. Qui sotto 4 esempi per intero, uno per ogni forma diversa; gli altri sono elencati per nome.

  • arena-pvp.yml
  • home.yml
  • jail.yml
  • museum.yml
  • no-protection.yml
  • public-farm.yml
  • safe-zone.yml
  • shop.yml
  • spawn.yml

Esempio presets/public-farm.yml

Note del file

Preset "public-farm": tutti raccolgono, nessuno distrugge.

build: deny è il muro. block-break e block-place ci aprono una porta e allowed-blocks decide quanto è larga quella porta: un materiale che non è nella lista viene fermato prima ancora che parta il controllo di build. I raccolti continuano a cambiare mano, le recinzioni, l'acqua e le chest restano esattamente dove sono.

Nome e descrizione vengono da lang/<language>.yml, sotto preset.public-farm: scrivi invece le parole qui per mostrare le stesse in ogni lingua.

name"lang:preset.public-farm.name"
description"lang:preset.public-farm.description"
iconWHEAT
flags15 chiavi
builddeny
block-breakallow
block-placeallow
allowed-blocks"WHEAT, CARROTS, POTATOES, BEETROOTS, NETHER_WART, MELON, MELON_STEM, PUMPKIN, PUMPKIN_STEM, SUGAR_CANE, BAMBOO, COCOA, SWEET_BERRY_BUSH, CACTUS, TORCHFLOWER_CROP, PITCHER_CROP"
interactallow
useallow
chest-accessdeny
trampledeny
crop-growthallow
pvpdeny
mob-spawningdeny
tntdeny
fire-spreaddeny
lava-firedeny
lighterdeny

Esempio presets/spawn.yml

Note del file

Preset "spawn": la porta d'ingresso del server.

Qui non costruisce nessuno: senza membri nella regione il motore dice già di no. Ma porte, pulsanti, piastre e banchi da lavoro devono funzionare, altrimenti la costruzione dello spawn è arredamento che nessuno può toccare. "use" non copre i contenitori, quindi le casse restano chiuse lo stesso.

Nome e descrizione vengono da lang/<language>.yml, sotto preset.spawn: scrivi qui le parole invece per mostrare le stesse in ogni lingua.

name"lang:preset.spawn.name"
description"lang:preset.spawn.description"
iconBEACON
flags15 chiavi
useallow
pvpdeny
mob-spawningdeny
mob-damagedeny
fall-damagedeny
fire-damagedeny
drowning-damagedeny
tntdeny
creeper-explosiondeny
other-explosiondeny
fire-spreaddeny
lighterdeny
item-dropdeny
hunger-draindeny
passthroughdeny

Esempio presets/jail.yml

Note del file

Preset "jail": ci entri, non ne esci a piedi.

exit è la flag che fa il lavoro; le due flag di teletrasporto chiudono le solite scappatoie. Chi ha il permesso di bypass non viene mai trattenuto.

Nome e descrizione vengono da lang/<language>.yml, sotto preset.jail: scrivi invece le parole qui per mostrare le stesse in ogni lingua.

name"lang:preset.jail.name"
description"lang:preset.jail.description"
iconIRON_BARS
flags15 chiavi
exitdeny
exit-via-teleportdeny
enderpearldeny
chorus-fruit-teleportdeny
flydeny
builddeny
interactdeny
usedeny
chest-accessdeny
pvpdeny
mob-spawningdeny
mob-damagedeny
item-dropdeny
item-pickupdeny
hunger-draindeny

Esempio presets/museum.yml

Note del file

Preset "museum": guardare, non toccare.

Nome e descrizione vengono da lang/<language>.yml, sotto preset.museum: scrivi qui le parole per mostrare le stesse in ogni lingua.

name"lang:preset.museum.name"
description"lang:preset.museum.description"
iconITEM_FRAME
flags12 chiavi
builddeny
interactdeny
usedeny
chest-accessdeny
item-frame-rotatedeny
entity-item-frame-destroydeny
entity-painting-destroydeny
armor-stand-manipulatedeny
pvpdeny
mob-spawningdeny
invincibleallow
item-dropdeny

Tutta la documentazione