Vai al contenuto
ShadowMC

Configurazione

ShadowEssentials

Il cuore della suite: case, warp, kit, VIP, chat e i comandi di ogni giorno.

Gratuito v1.0.4

Dove sono i file

plugins/ShadowEssentials/

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

Applicare le modifiche

/shadowessentials reload

Rilegge i file senza riavviare il server.

Cosa c’è dentro

64 file · 968 impostazioni

Da dove partire: config.yml

Impostazioni

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

config.yml

Impostazioni generali
86 impostazioni
plugins/ShadowEssentials/config.yml
Note del file

Solo le impostazioni principali. Tutto il resto sta nel suo file:

modules/<module>.yml   impostazioni dei moduli
kits/<kit>.yml         un file per ogni kit
vips/<tier>.yml        un file per ogni tier VIP
menus/<menu>.yml       layout delle GUI
lang/<locale>.yml      traduzioni

COLORI - scrivili alla maniera di Minecraft, con &

&0-&9 &a-&f  colori         &l grassetto   &o corsivo   &n sottolineato
&#ff8800     un colore esatto            &r  torna al normale
&&           una & letterale

Funziona in ogni file del plugin: config, lingue, kit, ranghi VIP, ologrammi, cartelli e menu.

I tag più ricchi ci sono ancora per le cose che & non sa fare:

<gradient:#FFD700:#FFA500>GOLD</gradient>
<click:open_url:'https://...'>site</click>
<hover:show_text:'...'>hover me</hover>

Puoi mescolare i due sulla stessa riga senza problemi.

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

Identificativo di questo server, usato quando più server condividono un unico database.

profile-linger"5m"

Per quanto tempo il profilo di un giocatore offline resta in cache nella memoria.

autosave"5m"

Ogni quanto i profili dei giocatori online vengono scritti nel database.

audit-logtrue

Registra le azioni amministrative (ban, assegnazioni VIP, modifiche ai warp) in sb_audit_log.

auto-update-filestrue

Quando aggiorni, i tuoi file vengono portati alla nuova versione automaticamente.

Continua a leggere

Ogni file viene ricostruito partendo da quello nuovo dentro il plugin (nuove impostazioni, nuovi messaggi, default corretti, nuovi commenti) e ogni valore che avevi cambiato o aggiunto viene riportato al suo interno; una chiave che hai cancellato resta cancellata. I vecchi file vengono conservati in backup/<date>/. Se qualcosa non si è potuto riportare - un'opzione che non esiste più, un valore del tipo sbagliato - PORTING-<version>.txt in questa cartella ti dice cosa sistemare. I kit (kits/) non vengono mai toccati.

false: i tuoi file non vengono mai toccati. Le nuove impostazioni e i nuovi messaggi funzionano comunque, letti dal plugin stesso, ma non compaiono nei tuoi file.

core.update-check3 chiavi
enabledtrue
notify-consoletrue
notify-playerstrue

Messaggi e traduzioni

Il motore supporta QUALSIASI lingua: metti un file <locale>.yml in lang/ e viene caricato automaticamente. Le chiavi mancanti hanno un fallback chiave per chiave, quindi una traduzione parziale è utilizzabile fin dal primo giorno.

messages4 chiavi
default-locale"en_US"

Usata quando il giocatore non ha una preferenza e la lingua del client è sconosciuta. Include en_US e it_IT. Imposta qui "it_IT" per un server italiano.

follow-client-localetrue

Segui la lingua impostata nel client di Minecraft.

allow-player-choicetrue

Permetti ai giocatori di scegliere la lingua con /lang.

obfuscatedbars

Cosa fa &k, ovunque: chat, tab list, ologrammi, tag di rango.

Continua a leggere

&k non disegna mai la lettera che hai scritto. Sessanta volte al secondo il client la butta via e disegna un glifo a caso "della stessa larghezza" - e decide cosa conta come stessa larghezza arrotondando per eccesso al pixel intero. Il font unicode viene caricato sopra quello normale a metà scala, quindi i suoi glifi sono larghi 1.5, 2.5, 3.5 px: il gruppo di una lettera da 2 px come la i contiene 624 glifi larghi 2 px e 376 larghi 1.5. Quel mezzo pixel viene ridisegnato a ogni frame, quindi tutto quello che segue il tag scivola a destra e a sinistra - e siccome la tab list è centrata, un solo tag di rango che trema fa tremare ogni nome sullo schermo. Un tag come "&b&ki&5Founder&b&ki &f" fa esattamente questo, a entrambe le estremità. Nel font normale ogni larghezza da 2 a 9 px è mescolata così, quindi non esiste un carattere sicuro su cui far girare &k.

La via d'uscita è un font diverso. "minecraft:alt" non contiene nessun carattere unicode, quindi ogni sua larghezza è un numero intero di pixel e un gruppo non può contenerne due: le barre girano tra tutte le forme di una sola larghezza esatta e non spingono niente. È quello che fa "bars".

bars      le barre si muovono, la riga no. IL DEFAULT.
bars:X    lo stesso sulla lettera X, ed è così che scegli la larghezza:
             i  2 px, 4 forme    (larga come la solita i - default)
             C  3 px, 4 forme
             G  4 px, 8 forme
             N  5 px, 6 forme
             A  6 px, 30 forme   (la più vistosa)
stop      toglie &k e mantiene i colori. Niente è più casuale,
          quindi niente può muoversi - e se ne vanno anche le lettere di
          riempimento sotto il tag, altrimenti il tag si leggerebbe iFounderi.
keep      lascia &k esattamente com'era scritto, tremolio compreso.
un carattere  fa girare &k su quel carattere nel font normale. Il vecchio
          comportamento: trema a meno che il carattere non sia largo 10 px.

Anche le parole di un giocatore ricevono le barre - nickname, tab, il nome sopra la testa, la riga di chat. Vengono interpretate con il set ridotto di tag più <font> e nient'altro, e qualsiasi <font> scritto da LORO viene spezzato prima, quindi l'unico font che può arrivare sullo schermo è questo.

/se obfuscated li mostra affiancati, così puoi scegliere a occhio.

bars è il default, e keep è l'impostazione che fa tremare. I due erano invertiti nelle build fino a questa: la nota sotto keep diceva che "non sposta mai il resto della riga", che è quello che il gioco promette e non quello che fa. Un nickname &ki faceva tremare l'intera riga di chat, l'intera tab list e il nome sopra la testa, e l'impostazione che lo risolve era proprio lì, spenta. Chi lo rimette come prima: è questo che stai accendendo.

Archiviazione dati

AUTO  -> file YAML dentro la cartella di questo plugin (il default).
         Niente da installare, niente da configurare, ogni file leggibile
         e modificabile a mano. Se compili l'host MySQL qui sotto,
         AUTO passa invece a quel database.
YAML  -> usa sempre i file, anche se ci sono le credenziali MySQL
MYSQL -> usa sempre il database qui sotto
Continua a leggere

Passare a un database in seguito non fa perdere nulla: crea un database vuoto, compila i cinque campi, poi esegui /se storage migrate ShadowEssentials crea da solo ogni tabella e indice alla prima connessione.

storage6 chiavi
typeAUTO

Dove stanno i file YAML, rispetto alla cartella di questo plugin:

data/players/<uuid>.yml   un file per giocatore: profilo, home,
                          kit riscattati e consegne di kit in sospeso
data/players-index.yml    nome -> uuid, così le ricerche offline sono istantanee
data/warps.yml            tutti i warp del server
data/vip-grants.yml       chi ha quale rango e fino a quando
data/audit.log            azioni amministrative
flush-interval"30s"

Ogni quanto i dati dei giocatori in buffer vengono scritti su disco. Le modifiche vengono salvate anche quando un giocatore esce e allo spegnimento, quindi questo decide solo quanto ti potrebbe costare un crash improvviso.

table-prefix"sb_"

Prefisso delle tabelle, usato solo con il database. Comodo quando più server condividono un unico database.

storage.mysql6 chiavi
host""

Lascia vuoto l'host per restare sui file YAML.

port3306
database"shadowessentials"
username""
password""
storage.mysql.properties3 chiavi
useSSLfalse
characterEncoding"utf8mb4"
serverTimezone"UTC"
storage.pool6 chiavi
maximum-size10

Solo database. Regola pratica: (core della CPU * 2) + 1, mai sopra 20.

minimum-idle2
connection-timeout"10s"
idle-timeout"10m"
max-lifetime"30m"
leak-detection"0s"

Imposta un valore sopra 0 per registrare nel log le connessioni che non tornano mai nel pool.

storage
fail-safetrue
true  -> se l'archiviazione dati non funziona, continua con i moduli che non ne hanno bisogno
false -> se l'archiviazione dati non funziona, spegni il plugin

Economia

ShadowEssentials NON implementa un'economia. Il denaro è compito del plugin ShadowEconomy. Questa sezione dice solo a chi chiederlo. Senza nessun provider installato, ogni costo è semplicemente zero.

economy3 chiavi
providerAUTO

AUTO | SHADOW | VAULT | NONE

currency"default"

Valuta usata per i costi di ShadowEssentials (kit, warp, home, teletrasporti).

free-when-missingtrue
true  -> senza provider è tutto gratis
false -> senza provider i comandi che hanno un costo vengono rifiutati

Comunicare con l'esterno

Qui è tutto SPENTO di default: il codice c'è ed è pronto, ma niente esce dal server e niente può raggiungerlo finché non lo accendi tu.

web2 chiavi

In uscita: eventi inviati a un sito web o a Discord

web.webhooks5 chiavi

Ogni evento qui sotto manda al suo indirizzo (url); un url vuoto vuol dire che quell'evento non viene mandato. "format" dice cosa viene mandato:

DISCORD  un messaggio per un canale Discord. In Discord: impostazioni
         del canale, Integrazioni, Webhook, creane uno e incolla
         il suo indirizzo come url.
JSON     un normale corpo JSON, per un sito tuo:
           { "event": "...", "timestamp": 0, "data": { ... } }

Il formato scritto qui vale per ogni evento. Un evento può avere il suo,

accanto al suo url:   join: { url: "...", format: JSON }
enabledfalse
formatDISCORD
rate-limit20

Numero massimo di invii al minuto, così Discord non ti applica il rate limit.

max-retries3
web.webhooks.events4 chiavi
web.webhooks.events.punishments1 chiave
url""
web.webhooks.events.join1 chiave
url""
web.webhooks.events.vip1 chiave
url""
web.webhooks.events.audit1 chiave
url""

In entrata: un endpoint HTTP che il tuo sito può chiamare

web.api5 chiavi

Per assegnare un rango nel momento in cui un pagamento va a buon fine, o per mostrare statistiche in tempo reale sul sito.

NON si avvia se il token è vuoto o più corto di 16 caratteri. Lascia bind su 127.0.0.1 e metti un reverse proxy (nginx, Caddy) davanti se il sito sta su un'altra macchina.

enabledfalse
bind"127.0.0.1"
port8123
token""

Genera qualcosa di lungo e casuale. Invialo con ogni richiesta:

Authorization: Bearer <token>
rate-limit60

Endpoint disponibili:

GET  /status                                  versione, online, moduli
GET  /players                                 chi e collegato
GET  /player?name=X                           profilo, playtime, tier VIP
POST /vip/grant?player=X&tier=gold&duration=30d
POST /command?run=say%20ciao

Moduli

Se elenchi un modulo qui, il suo valore prevale su "enabled" dentro il suo file. Un modulo disattivato non registra comandi, listener né tabelle: non costa nulla.

modules33 chiavi
coretrue

Ogni modulo ha anche il suo "enabled" in cima a modules/<id>.yml. Basta uno dei due interruttori per spegnere un modulo, quindi quello che trovi per primo fa quello che ti aspetti. Questa lista serve a spegnere le cose da un unico file; non può forzare l'accensione di un modulo che il suo file ha disattivato.

teleporttrue
homestrue
warpstrue
spawntrue
kitstrue
viptrue
playertrue
moderationtrue
chattrue
afktrue
mailtrue
rewardtrue
vouchertrue
leaderboardtrue
tablisttrue
hologramtrue
worldtrue
custom-commandtrue
signtrue
portaltrue
motdtrue
command-rulestrue
teamstrue
rulestrue
spawnertrue
particlestrue
npctrue
armorstandtrue
elevatortrue
autotooltrue
locktrue
skintrue

Migrazione

migration1 chiave
coexistfalse

Migrazione graduale da EssentialsX o CMI.

Con questa opzione attiva, ShadowEssentials NON registra un comando che un altro plugin fornisce già. Tieni installato il vecchio plugin, poi sposta una funzione alla volta disattivando il modulo corrispondente in quel plugin: il comando passa di qua al riavvio successivo, da solo.

All'avvio la console elenca ogni comando lasciato all'altro plugin.

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

metrics1 chiave
enabledtrue

Cosa viene inviato, ogni 30 minuti: che questo server usa ShadowEssentials, 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, niente altro), un serverUuid casuale che non identifica niente, e se l'archiviazione è YAML o MySQL. Nessun dato dei giocatori lascia il server: niente nomi, niente UUID, niente indirizzi.

Continua a leggere

false lo spegne solo per questo plugin. enabled: false in plugins/bStats/config.yml lo spegne per tutti i plugin di questo server in un colpo solo.

Diagnostica

debug4 chiavi
enabledfalse
watchdogfalse

Registra uno stack trace ogni volta che qualcosa fa I/O su file o database nel main thread. Aiuto per lo sviluppo, tienilo spento in produzione.

profilertrue
levelINFO

armorstand-poses.yml

Armorstand poses
28 impostazioni
plugins/ShadowEssentials/armorstand-poses.yml
Note del file

Le pose pronte dell'editor degli armor stand: la schermata "Pose pronte" e /armorstand pose <name>. Sono tue: aggiungine quante vuoi, cambiale, elimina quelle che non vuoi. L'ordine qui è l'ordine sullo schermo.

Una posa:

my-pose:                      a-z, 0-9, _ e -; usato nel comando
  name: "<gold>My pose"       MiniMessage, o "lang:<key>" per prenderlo
                              dai file di lingua (tradotto)
  icon: GOLDEN_SWORD          l'item mostrato nella lista
  permission: "my.perm"       facoltativo: chi può usarla
  head:      [x, y, z]
  body:      [x, y, z]
  left-arm:  [x, y, z]
  right-arm: [x, y, z]
  left-leg:  [x, y, z]
  right-leg: [x, y, z]

Gli angoli sono in gradi, esattamente come li scrive il gioco in /summon (una posa copiata da un sito generatore funziona così com'è, "10f" compreso). Una parte che ometti resta come ce l'ha un armor stand appena piazzato.

Cosa fanno i numeri, su braccia e gambe:

x  negativo oscilla in avanti, positivo all'indietro (-90 = dritto davanti,
   -180 = dritto in alto)
z  lo apre di lato: positivo sugli arti destri, negativo su quelli
   sinistri
y  lo ruota intorno all'asse verticale

Sulla testa: x positivo guarda in basso, y la gira, z la inclina.

L'editor delle pose mostra i tre numeri di ogni parte, quindi il modo più facile per crearne una nuova è: metti in posa uno stand in gioco, leggi i numeri (o /armorstand info), scrivili qui.

config-version1
poses18 chiavi
poses.default8 chiavi
name"lang:armorstand.preset.default"
iconARMOR_STAND
head[0, 0, 0]
body[0, 0, 0]
left-arm[-10, 0, -10]
right-arm[-15, 0, 10]
left-leg[-1, 0, -1]
right-leg[1, 0, 1]
Ancora 14 voci con la stessa forma di default: salute, wave, t-pose, walk, run, point, think, facepalm, shrug, dance, cheer, zombie, hero, bow
poses.sit6 chiavi

Le gambe vanno dritte in avanti: abbassa lo stand ("Sposta e gira", o portalo su un gradino) così che stia seduto su qualcosa invece di fluttuare.

name"lang:armorstand.preset.sit"
iconOAK_STAIRS
right-arm[-40, 0, 5]
left-arm[-40, 0, -5]
right-leg[-90, 10, 0]
left-leg[-90, -10, 0]
poses.archer6 chiavi

Mettigli l'arco nella mano principale (la destra).

name"lang:armorstand.preset.archer"
iconBOW
right-arm[-90, 0, 0]
left-arm[-90, 35, 0]
right-leg[-10, 0, 3]
left-leg[10, 0, -3]
poses.guard7 chiavi

Una spada nella mano principale, uno scudo nell'altra.

name"lang:armorstand.preset.guard"
iconSHIELD
head[5, 0, 0]
right-arm[-70, 0, 10]
left-arm[-80, 30, 0]
right-leg[10, 0, 3]
left-leg[-15, 0, -3]

blocked-words.yml

Parole bloccate in chat
26 impostazioni
plugins/ShadowEssentials/blocked-words.yml
Note del file

Le parole che non vuoi leggere sul tuo server.

Scrivile così come sono, in minuscolo, come le diresti. Il filtro pensa al resto: riconosce da solo i trucchi che la gente usa per passare, così non devi elencarli.

merda        intercettata
m3rda        intercettata   (leetspeak)
m.e.r.d.a    intercettata   (separatori)
m e r d a    intercettata   (separatori)
meeeerda     intercettata   (lettere ripetute)
mErDa        intercettata   (maiuscole)
mèrda        intercettata   (accenti)
мerda        intercettata   (lettere cirilliche disegnate come quelle latine)

/se filter <sentence> ti dice cosa succederebbe a quella frase, senza doverla scrivere nella chat pubblica per scoprirlo.

config-version1
enabledtrue
censor-char"*"

Il carattere con cui viene coperta la parola.

Riconoscere le parole scritte storpiate

smart5 chiavi

Spegnine uno solo se ti dà fastidio: ognuno chiude una via di fuga diversa.

leettrue

m3rda, c4zzo, $tronzo

separatorstrue
m.e.r.d.a, m-e-r-d-a, m e r d a   (al massimo 3 caratteri in mezzo:

oltre non è più una parola che qualcuno legge)

repeatstrue

meeeerda, mmmerda

accentstrue

mèrda, merdà

lookalikestrue

Lettere cirilliche e greche disegnate identiche a quelle latine

Parole

words
[merd, stronz, vaffancul, cazz, coglion, puttan, troia, troie, bastard, fottit, figa, fica, "figo di", minchia, mignotta, zoccola, sborr, pompin, inculat, inculare, "cesso di", schifos, deficient, idiota, imbecill, cret …+82

La lista normale, quella che userai per il 90% delle cose.

Vengono intercettate quando INIZIANO dove inizia una parola, e possono continuare. È quello che serve alla maggior parte delle lingue: scrivi "merda" e intercetta anche "merdaio" e "merdata", senza che tu debba elencarle.

Non intercetta una parola che ne contiene una solo nel mezzo: "merda" non tocca "camerda" (se fosse una parola), perché lì non inizia nessuna parola.

Parole intere

whole-word
[ass, cul, figa, sega, seghe, fag, cum, dick, cock, tits, wtf]+8

Intercettate SOLO quando stanno da sole come parola.

QUI VANNO LE PAROLE CORTE. "ass" scritto qui non tocca "passage", "class", "assassin" o "bass". Scritto nella lista sopra le intercetterebbe quasi tutte.

Regola pratica: sotto le 4 lettere, mettila qui.

Ovunque

anywhere[ ]

Intercettate anche nel mezzo di un'altra parola. Per stringhe lunghe e inconfondibili, come il dominio di un client di cheat.

Qui una parola corta fa danni. Nel dubbio, usa una delle due liste qui sopra.

Bloccate

blocked
["negro di merda", "sporco negro", "torna al tuo paese", "froci di merda", "ti ammazzo", "ti vengo a casa", "so dove abiti", "ti stupro", "kill yourself", "kys yourself", "hang yourself", "gas the", "heil hitler", "sieg …+17

Il messaggio non viene inviato affatto, invece di essere censurato. Per le cose che non vuoi che arrivino nemmeno camuffate: insulti gravi, minacce, link a cheat.

Sostituzioni

replacements5 chiavi

La parola viene scambiata con un'altra invece che con degli asterischi. Spesso funziona meglio: chi scrive non si accorge di essere stato filtrato, e smette di provarci.

stupido"simpatico"
scemo"adorabile"
noob"campione"
loser"campione"
trash"fenomeno"

Espressioni regolari

patterns[ ]

Per chi sa cosa sta facendo. Applicate esattamente come sono scritte, senza nessuna delle tolleranze qui sopra.

pattern: l'espressione
action:  CENSOR | BLOCK | REPLACE | WARN
with:    con cosa sostituirla, solo per REPLACE
- pattern: "(?i)\\bcompra\\s+oro\\b"
  action: BLOCK

Dove si applica

apply-to8 chiavi

Il filtro non vale niente se copre solo la chat pubblica e poi la stessa parola arriva in un messaggio privato o su un cartello.

chattrue
private-messagestrue
nicknamestrue
signstrue
anviltrue
booksfalse
team-chattrue

Chat del team e chat dello staff. Di solito lo staff non va filtrato, ma la chat del team è una chat tra giocatori a tutti gli effetti.

staff-chatfalse

Chi salta tutto questo: shadowessentials.chat.bypass-filter

npcs.yml

Gli NPC
2 impostazioni
plugins/ShadowEssentials/npcs.yml
Note del file

Gli NPC creati con /npc. QUESTO FILE LO SCRIVE IL PLUGIN.

Puoi leggerlo, e correggerlo a server spento. Le modifiche fatte con il server acceso vengono sovrascritte al primo cambiamento.

Le impostazioni stanno in modules/npc.yml.

config-version1
npcs{ }

rules.yml

Le regole del server
17 impostazioni
plugins/ShadowEssentials/rules.yml
Note del file

Testi in italiano: esempi/it_IT/rules.yml - copialo al posto di questo file.

Le regole del tuo server, scritte da te.

Escono in due modi, dagli stessi identici testi:

/rules        apre la GUI, una voce per regola
/rules chat   le stampa in chat, per chi preferisce leggerle lì

I colori si scrivono con &, come ha sempre fatto Minecraft.

config-version1
enabledtrue
default-viewGUI

Cosa fa /rules senza argomenti: GUI o CHAT.

gui5 chiavi
title"&5&lRules"
rows6
gui.entry3 chiavi

L'aspetto di una regola nella GUI. Valori: <number>, <title>, <short>, <text> (tutte le righe della regola, una dopo l'altra). Una riga che nomina un valore che la regola non ha sparisce.

glowfalse
name"<title>"
lore[<text>, <empty>]
gui
default-iconPAPER

L'item usato per una regola che non ne indica uno suo.

fillerBLACK_STAINED_GLASS_PANE
chat3 chiavi
header"&8&m &r &5&lRules &8&m "
numberedtrue

Numera le regole automaticamente: 1. 2. 3.

Le regole

rules10 chiavi

Ognuna ha un titolo e una descrizione su più righe.

icon:   l'item nella GUI (facoltativo)
short:  la riga scritta in chat (facoltativo: senza, viene usato
        il titolo)
rules.respect4 chiavi
title"&e1. Respect"
iconPLAYER_HEAD
short"&7Treat others the way you want to be treated."
lines
["&7No insults, harassment or discrimination.", "&7In public chat, in private, on signs", "&7and in the names of items, pets and builds."]+2
Ancora 9 voci con la stessa forma di respect: cheat, grief, exploit, spam, ads, scam, accounts, content, staff

teams.yml

Le squadre
2 impostazioni
plugins/ShadowEssentials/teams.yml
Note del file

I team creati dai giocatori. QUESTO FILE LO SCRIVE IL PLUGIN.

Puoi leggerlo per vedere cosa c'è, e correggerlo a server spento se qualcosa è andato storto. Le modifiche fatte con il server acceso vengono sovrascritte al primo cambiamento.

Le impostazioni - quanti membri, quanto durano gli inviti - stanno invece in modules/teams.yml.

config-version1
teams{ }

modules/afk.yml

Modulo: afk
13 impostazioni
plugins/ShadowEssentials/modules/afk.yml
config-version1
enabledtrue
commands1 chiave
afk{ enabled: true, aliases: [ ] }
detection2 chiavi
timeout"5m"

Quanto tempo senza attività prima che qualcuno venga segnato come AFK.

ignore-rotationtrue

Se true, girare la testa senza muoversi NON conta come attività: il modo più semplice per fermare le macro anti-AFK banali.

while-afk2 chiavi

Il tempo in AFK non conta come playtime, quindi non fa guadagnare premi orari: stare fermi con il client acceso non paga.

count-playtimefalse
tag"&7[AFK] "
kick4 chiavi
enabledfalse
after"30m"
bypass-permission"shadowessentials.afk.no-kick"
min-players30

Non kickare nessuno finché il server ha meno di questo numero di giocatori.

broadcast2 chiavi
on-afktrue
on-returntrue

modules/armorstand.yml

Modulo: armorstand
24 impostazioni
plugins/ShadowEssentials/modules/armorstand.yml
Note del file

Armor stand e mannequin, messi in posa e vestiti da una GUI.

Come funziona in gioco:

/armorstand          guarda uno stand e apri il suo editor
/armorstand tool     lo strumento: tasto destro su uno stand per selezionarlo,
                     sneak + tasto destro per aprire l'editor

Si possono modificare sia gli ARMOR STAND (sei arti messi in posa uno per uno, braccia, base, small, marker) sia i MANNEQUIN (l'entità a forma di giocatore: skin, le pose del gioco, la riga sotto il nome). I mannequin degli NPC creati con /npc vengono lasciati stare: li gestisce /npc.

Le pose che tutti possono scegliere stanno in armorstand-poses.yml. Le pose che i giocatori salvano per sé le scrive il plugin in data/armorstand-poses.yml.

Permessi: shadowessentials.command.armorstand apre la porta (di default solo per gli op); per il resto, vedi docs/10-PERMESSI.md.

config-version1
enabledtrue
commands1 chiave
armorstand{ enabled: true, aliases: [ "ast" ] }

Lo strumento

tool1 chiave
materialBREEZE_ROD

Qualsiasi item. Viene riconosciuto da un segno nascosto, non dal tipo, quindi un item normale dello stesso tipo non fa niente.

Selezionare uno stand

selection2 chiavi
range8.0

Da quanto lontano si può selezionare uno stand guardandolo (blocchi). Vengono trovati anche gli stand marker, che non hanno hitbox.

edit-distance16.0

Quanto puoi allontanarti dallo stand mentre lo modifichi.

Spostare e ruotare

move3 chiavi
steps[0.05, 0.25, 1]

Gli spostamenti proposti nella schermata di movimento, in blocchi.

max-step1.0

Lo spostamento più grande che un clic può fare: i passi oltre questo valore vengono ridotti. Ogni spostamento chiede anche ai plugin di protezione del posto DOVE va, non solo del posto che lascia.

rotate-steps[5, 15, 45, 90]

Le rotazioni proposte nella schermata di movimento, in gradi.

carry3 chiavi

"Portalo in mano": lo stand segue dove guardi finché non clicchi.

distance3.0

Quanto davanti a te fluttua quando non stai guardando un blocco.

reach6.0

Quanto può essere lontano un blocco che guardi per posarci sopra lo stand.

timeout"60s"

Dopo questo tempo senza un clic torna dov'era.

Mettere in posa

pose1 chiave
steps[1, 5, 15, 45]

I passi dell'editor delle pose, in gradi.

saved-poses2 chiavi

Pose che i giocatori possono salvare per sé (/armorstand savepose, o la schermata delle pose). Quante, in base al permesso, come per le home:

shadowessentials.limit.armorstand-poses.<n>
shadowessentials.limit.armorstand-poses.unlimited
default-limit5

Per chi non ha un permesso numerico.

hard-cap54

Mai più di questo, qualunque cosa dicano i permessi. -1 = nessun tetto.

Annulla

history2 chiavi
size15

Passi per giocatore. 0 disattiva l'annullamento.

merge-within"3s"

I clic sulla stessa parte dello stesso stand più ravvicinati di così diventano UN SOLO passo di annullamento: venti clic per sistemare un braccio si annullano con uno.

Dimensione

scale3 chiavi

La scala di uno stand o di un mannequin (l'attributo scale del gioco stesso).

min0.5
max2.0
step0.1

Nomi

names1 chiave
max-length48

Lunghezza massima del nome personalizzato, contata senza colori. I nomi si scrivono in chat e seguono le stesse regole di qualsiasi testo scritto da un giocatore: colori e stili sì (codici & e tag colore), click e hover no. Si applicano anche le parole bloccate di blocked-words.yml.

Survival

survival1 chiave
consume-stand-itemtrue

Piazzare un nuovo stand dal menu, clonarne uno, o creare un item "stand pronto" costa un armor stand dall'inventario - così il menu non è un modo per avere armor stand gratis. La modalità creativa e shadowessentials.armorstand.free non pagano.

Protezione

protection1 chiave
check-regionstrue

true: prima di ogni modifica, chiede ai plugin di protezione (WorldGuard, GriefPrevention, Lands, ShadowRegions...) se lì potresti modificare un armor stand a mano. Lancia gli stessi eventi che lancia il gioco quando un giocatore scambia un item su un armor stand, su uno stand sonda invisibile - mai una finta rottura di blocco, quindi nessun logger registra niente. false: contano solo i permessi, i lucchetti e i mondi qui sotto.

disabled-worlds[ ]

Mondi in cui gli strumenti non fanno niente (tranne che per shadowessentials.armorstand.bypass). Esempio: [ "spawn", "pvp_arena" ]

modules/autotool.yml

Modulo: autotool
30 impostazioni
plugins/ShadowEssentials/modules/autotool.yml
Note del file

L'attrezzo migliore in mano quando inizi a scavare, l'arma migliore dopo che colpisci qualcosa. Ogni giocatore lo accende per sé con /autotool, come /autopickup.

È silenzioso apposta: nessun messaggio e nessun suono quando cambia. /autotool why dice a un giocatore perché ha scelto l'ultimo attrezzo o l'ultima arma.

config-version1
enabledtrue
commands1 chiave
autotool{ enabled: true, aliases: [ "besttool" ] }
default-onfalse

Un attrezzo che ti salta in mano da solo sorprende chi non l'ha chiesto: spento per i nuovi giocatori, /autotool lo accende.

defaults4 chiavi

Cosa riceve un giocatore finché non sceglie. Può cambiare ognuna con /autotool <weapons|source|ores|swapback>.

weaponstrue
sourceHOTBAR

HOTBAR | INVENTORY (INVENTORY needs shadowessentials.autotool.inventory)

oresFORTUNE

FORTUNE | SILK_TOUCH | ANY

swap-backfalse
disabled-worlds[ ]

Mondi in cui non fa mai niente.

disable-while-sneakingtrue

Accovacciarsi = "lasciami stare, scavo con quello che ho in mano".

disable-in-minigamestrue

Non durante una partita di ShadowGames: i kit sono disposti apposta.

mining5 chiavi
enabledtrue
skip-if-instanttrue

L'attrezzo in mano rompe già il blocco in un colpo: non fare niente. (Erba alta, fiori: lì un cambio sarebbe solo rumore.)

min-durability-left5

Non scegliere mai un attrezzo con meno usi rimasti di questo, così il piccone buono non si rompe all'ultimo colpo.

prefer-cheapest-when-instanttrue

Diversi attrezzi lo rompono in un colpo: prendi il più economico, e tieni il piccone di netherite per quello che ne ha bisogno.

rules
[{ blocks: […], prefer: SILK_TOUCH, mode: PREFER }, { blocks: […], prefer: SILK_TOUCH, mode: REQUIRE }, { blocks: […], prefer: PLAYER, mode: PREFER }, { blocks: […], prefer: FORTUNE, mode: PREFER, even-if-instant: true …+4

Preferenze per blocco. "blocks" accetta materiali e tag (#name). Conta la prima regola che nomina un blocco.

prefer:  SILK_TOUCH | FORTUNE | PLAYER (quello scelto dal giocatore con /autotool ores)
mode:    PREFER  (un bonus: senza un attrezzo così, il più veloce)
         REQUIRE (senza un attrezzo così, non cambiare proprio)
avoid:   tipi di attrezzo mai usati su questi blocchi (SHEARS, HOE, ...)
even-if-instant: true = applica anche quando qualsiasi cosa lo rompe all'istante
blocks

Senza Tocco di velluto questi blocchi vanno persi.

blocks

Senza Silk Touch un ender chest diventa otto ossidiana: meglio nessuno scambio che quello sbagliato.

blocks

La scelta più personale di tutte: chi costruisce con i blocchi di minerale vuole Silk Touch. Ogni giocatore sceglie con /autotool ores.

blocks

Fortune dà più semi, carote e patate.

blocks

Le cesoie danno il blocco di foglie e tolgono arbusti e mele.

weapons8 chiavi
enabledtrue
against-playerstrue

Nel PvP qualcuno lo considera un vantaggio: spegnilo qui senza spegnere il resto.

metricDPS

DPS = danno x velocità d'attacco (una spada batte un'ascia lenta); DAMAGE = un colpo.

axe-vs-shieldtrue

Un colpo d'ascia disattiva uno scudo alzato.

mace-min-fall1.5

La mazza solo mentre cadi da almeno questa altezza (blocchi).

min-gain-percent10

Cambia solo per un guadagno reale, e non più spesso di così: due spade quasi uguali non devono far ballare la hotbar.

swap-cooldown"1s"
pre-swap-on-aimfalse

Lo scambio avviene nel tick DOPO un colpo: la carica di quel colpo è già spesa, quindi non costa niente. Con questa opzione attiva, un clic sinistro in aria mentre guardi un mob fa lo scambio anche prima del primo colpo. Costa un clic; spento di default.

actions2 chiavi
shears-on-entitiestrue

Click destro su una pecora, un mooshroom, un golem di neve, un bogged o un golem di rame: le cesoie ti arrivano in mano per quel click.

brush-on-suspicious-blocksfalse

Spazzolare è un'azione "tieni premuto il pulsante" avviata dal client di gioco: il cambio fatto dal server può richiedere una seconda pressione. Provalo con un client vero prima di attivarlo.

swap-back1 chiave
after"3s"

Per i giocatori che hanno attivato /autotool swapback: quanto tempo senza scavare né colpire prima di tornare allo slot di prima. Gli item spostati dall'inventario tornano indietro solo se nessuno li ha spostati nel frattempo.

never-use3 chiavi

Item che AutoTool non prende mai e non lascia mai. I giocatori possono segnare un item da soli con /autotool ignore (il segno viaggia con l'item).

materials[ ]
customizer-items[ ]

Id degli item di ShadowCustomizer.

lore-contains[ ]

Qualsiasi riga di lore che contiene una di queste (senza distinzione tra maiuscole e minuscole), per gli item "Soulbound" di altri plugin.

modules/chat.yml

Modulo: chat
47 impostazioni
plugins/ShadowEssentials/modules/chat.yml
Note del file

Testi in italiano: esempi/it_IT/modules/chat.yml - copialo al posto di questo file. Formato, canali, messaggi privati, filtri, menzioni. Spegnilo del tutto se usi un plugin di chat dedicato.

config-version1
enabledtrue
commands8 chiavi
msg
{ enabled: true, aliases: [ "tell", "w", "whisper", "pm" ] }+1
reply{ enabled: true, aliases: [ "r" ] }
ignore{ enabled: true, aliases: [ ] }
unignore{ enabled: true, aliases: [ ] }
ignorelist{ enabled: true, aliases: [ ] }
socialspy{ enabled: true, aliases: [ ] }
broadcast{ enabled: true, aliases: [ "bc" ] }
chat{ enabled: true, aliases: [ ] }

Formato dei messaggi

Placeholder disponibili qui:

<name>          il nickname, o il nome se non ne ha uno
<player>        il nome vero, sempre
<message>       quello che ha scritto
<rank_prefix>   prefisso del rango, dal plugin dei permessi
<rank_suffix>   suffisso del rango
<rank_group>    nome del gruppo di permessi
<channel>       il canale in cui sta parlando
<world>         il mondo in cui si trova
Continua a leggere

ATTENZIONE: <prefix> NON è il prefisso del rango. È il prefisso dei messaggi di ShadowEssentials stesso. Per il rango, usa <rank_prefix>.

Prefisso e suffisso arrivano da ShadowPermissions (o LuckPerms, o Vault: quello che c'è). Senza un plugin dei permessi, o con un gruppo che non ha prefisso, quei due placeholder restano vuoti e la riga resta pulita.

/perm group vip meta setprefix 100 "<gold>[VIP] "
format4 chiavi
default"<rank_prefix><name><rank_suffix><dark_gray>: <gray><message>"
format.by-group1 chiave

Per gruppo di permessi. La scala dei ranghi l'hai già scritta in ShadowPermissions: qui basta il nome del gruppo, non serve riscriverla come lista di permessi.

staff"<dark_gray>[<red>STAFF<dark_gray>] <rank_prefix><name><rank_suffix><dark_gray>: <white><message>"
format
by-permission
[{ permission: shadowessentials.chat.format.owner, format: "<gradient:#FF4E50:#F9D423>[OWNER]</gradient> <rank_prefix><name><rank_suffix><dark_gray>: <white><message>" }, { permission: shadowessentials.vip.epic, format: …+1

Per permesso: vince il primo posseduto, partendo dall'alto. Ha la precedenza su by-group.

allow-formatting-permission"shadowessentials.chat.colors"

Chi può usare MiniMessage nei propri messaggi. Senza questo permesso il testo viene inserito alla lettera: un giocatore normale non può iniettare tag nel formato.

Il nome dentro il messaggio

Passando il mouse sopra appare il tooltip, cliccando si apre un messaggio privato. Imposta interactive: false per avere solo il nome e nient'altro.

Chi entra e chi esce

Al posto della riga del gioco ("Tizio e' ora nella partita"), che e' l'unica cosa in chat che non assomiglia al resto del server: niente grado, niente nickname, e il nome vero anche di chi ne ha scelto un altro.

Continua a leggere

Valgono gli stessi segnaposto della chat: <name> (il nickname se ce l'ha), <player> (il nome vero), <rank_prefix>, <rank_suffix>, <rank_group>, <world>.

Lasciare vuota una delle due righe = non dire niente per quel caso. Chi e' invisibile non compare mai, qualunque cosa ci sia scritto qui.

announce3 chiavi
enabledtrue
join"<gray>[<green><bold>+</bold></green><gray>] <name>"

Le parentesi restano grigie: il colore lo porta il segno, non la scatola. Il <name> e' cliccabile come in chat - mouse sopra per il grado, clic per scrivergli in privato - e tiene i colori del suo grado o del suo nickname.

quit"<gray>[<red><bold>-</bold></red><gray>] <name>"
name3 chiavi
interactivetrue
hover
[<rank_prefix><name><rank_suffix>, "<dark_gray>rank: <gray><rank_group>", "", "<yellow>Click <gray>to message them in private"]+3
click"/msg <player> "

<player> viene sostituito con il nome vero. Vuoto = nessuna azione al clic.

default-channel"global"

Canali radius: -1 = tutto il server, altrimenti un raggio in blocchi.

channels2 chiavi
channels.global5 chiavi
display-name"Globale"
prefix""
command"g"
radius-1
cross-worldtrue
channels.local6 chiavi
display-name"Locale"
prefix"&8[&aL&8] "
command"l"
radius100
cross-worldfalse
empty-warning"&7Nessuno ti ha sentito. Usa &f/chat global."

Filtri

Chi ha shadowessentials.chat.bypass-filter li salta tutti.

filters5 chiavi
filters.cooldown2 chiavi
enabledtrue
duration"2s"
filters.repeat2 chiavi

Blocca lo stesso messaggio ripetuto (o quasi uguale).

enabledtrue
similarity0.85
filters.caps3 chiavi
enabledtrue
threshold0.6

Percentuale di maiuscole oltre la quale il messaggio viene messo in minuscolo.

min-length8
filters.advertising3 chiavi
enabledtrue
whitelist[ ]

Domini e IP lasciati passare: metti qui il TUO server e il TUO Discord, altrimenti anche i tuoi link vengono bloccati insieme agli altri.

whitelist: [ "discord.gg/iltuoinvito", "example.com" ]
actionBLOCK

ALLOW | CENSOR | BLOCK | WARN

filters.words3 chiavi
actionCENSOR

CENSOR sostituisce le lettere con asterischi, BLOCK rifiuta il messaggio.

normalizetrue

Normalizza il leetspeak e i caratteri cirillici somiglianti prima del confronto, così una grafia camuffata viene riconosciuta lo stesso.

list[ ]

Scrivi le parole in minuscolo, senza accenti.

Menzioni

mentions2 chiavi
enabledtrue
format"&e&l@<name>"

modules/command-rules.yml

Modulo: command-rules
22 impostazioni
plugins/ShadowEssentials/modules/command-rules.yml
Note del file

Attese e prezzi sui comandi. Una regola si mette davanti a un comando e decide se può essere eseguito: quanto tempo è passato dall'ultima volta, e quanto costa eseguirlo di nuovo.

Funziona su qualsiasi comando, non solo su quelli di questo plugin, quindi una regola può coprire /repair da qui, un comando di un altro plugin, o uno vanilla. Il comando stesso non deve saperne niente.

Le attese sopravvivono al riavvio. Vengono scritte nello stesso archivio dei kit riscattati nel momento in cui un comando viene usato, quindi spegnere il server non regala a tutti un giro gratis.

config-version1
enabledtrue

Regole

rules3 chiavi

Il nome di ogni blocco lo scegli tu. È quello che mostra /cooldowns e quello sotto cui viene salvata l'attesa, quindi se ne rinomini uno le sue attese vengono dimenticate.

rules.repair-all6 chiavi
enabledtrue
commands["repair all", "fix all"]

Quali comandi copre. Scritti come li digita un giocatore, senza lo slash. Il namespace viene ignorato, quindi elencare "repair" copre anche "/shadowessentials:repair".

repair all     esattamente quello, niente di più
repair *       /repair con qualsiasi argomento, o nessuno
repair         /repair da solo

Elenca anche gli alias se vuoi coprirli: "fix all".

cooldown"24h"

Quanto tempo tra un uso e l'altro. Un tempo semplice, oppure uno tra:

daily    una volta al giorno, si azzera a mezzanotte
weekly   una volta a settimana
once     una volta sola, per sempre
rules.repair-all.cost3 chiavi

Quanto costa. Qualsiasi combinazione; vengono presi tutti. Il denaro richiede un plugin di economia - senza, è semplicemente gratis.

money500.0
xp-levels10
xp-points0
rules.repair-all
bypass-permission"shadowessentials.bypass.rule.repair-all"

A chi la regola non si applica. Se lo ometti, il default è shadowessentials.bypass.rule.<name>.

message""

Una chiave di lingua con cui rispondere al posto del messaggio di attesa standard. Lascia vuoto per quello standard.

rules.repair-hand4 chiavi

Un secondo esempio: lo stesso comando, senza prezzo, un'attesa breve, così una singola riparazione non diventa un modo per spammare il server.

enabledtrue
commands[repair, fix]
cooldown"30m"
rules.repair-hand.cost3 chiavi
money50.0
xp-levels0
xp-points0
rules.daily-crate4 chiavi

Spento di default: un esempio di come coprire il comando di un altro plugin, e di un'attesa che lo lascia usare solo due volte a settimana.

enabledfalse
commands["crate daily"]
cooldown"daily"
rules.daily-crate.cost3 chiavi
money0.0
xp-levels0
xp-points0

modules/custom-command.yml

Modulo: custom-command
23 impostazioni
plugins/ShadowEssentials/modules/custom-command.yml
Note del file

Testi in italiano: esempi/it_IT/modules/custom-command.yml - copialo al posto di questo file. Comandi definiti interamente in questo file.

Ogni voce diventa un vero comando Brigadier: compare nel completamento con tab del client con i tipi di argomento giusti, e un argomento sbagliato viene rifiutato prima che parta una sola azione.

Linguaggio delle azioni: docs/moduli/kits.md (stessa sintassi ovunque)

config-version1
enabledtrue

NOTA: Minecraft accetta nuovi comandi solo mentre il server si avvia, quindi un comando AGGIUNTO qui compare dopo un riavvio. Cambiare il corpo di un comando esistente (azioni, costo, cooldown) funziona con /se reload.

commands7 chiavi

Dove inizia un nuovo giocatore

commands.guide4 chiavi

La scheda che risponde a "e adesso cosa faccio", con i comandi che questo plugin dà già a ogni giocatore. Attiva dal primo avvio.

enabledtrue
aliases[howtoplay]
description"How to play here"
actions
["message:&8&m ", "message:<gradient:#8A2BE2:#00BFFF>&lHOW TO PLAY HERE</gradient>", "message:&7", "message:&e/kits &8- &7your kits, starting with the starter", "message: …+13

Le regole, sotto un secondo nome

commands.serverrules4 chiavi

Il nome che un giocatore scrive quando /rules non gli viene in mente. L'esempio italiano (esempi/it_IT) lo chiama /regolamento.

enabledtrue
aliases[regulations]
description"The rules of the server"
actions["command:/rules"]

Il più semplice possibile

commands.discord4 chiavi

Spento, perché solo tu conosci il tuo invito: scrivilo e accendilo. È l'unica cosa in questo file che nessuno può scrivere al posto tuo.

enabledfalse
aliases[dc]
description"Discord invite"
actions["message:&9Discord: &f<click:open_url:'https:…]
Ancora 1 voce con la stessa forma di guide: fixall

Argomenti tipizzati

commands.reward4 chiavi

I tipi qui sotto guidano il completamento con tab che vede il giocatore. STRING · GREEDY_STRING · INTEGER · DOUBLE · BOOLEAN · PLAYER · OFFLINE_PLAYER · WORLD · MATERIAL · MONEY · DURATION · KIT · WARP · VIP_TIER · CHOICE (con una lista "values:")

enabledfalse
permission"server.reward"
arguments
[{ name: target, type: PLAYER, required: true }, { name: amount, type: MONEY, required: true }, { name: reason, type: GREEDY_STRING, required: false, default: "Well played" }]+2
actions
["console:eco give <target> <amount>", "message:&aYou rewarded <target> with <amount>.", "console:mail send <target> <reason>"]+2

Diramazioni

commands.myvip2 chiavi

if:<condition> ? <action> : <action>

Condizioni: permission · has-vip · world · gamemode · sneaking ·
            flying · op · level · money · playtime · health ·
            item-in-hand. Un ! davanti la nega.
enabledfalse
actions["if:has-vip:any ? message:&6You are VIP. : me…]

Solo console, per l'automazione

commands.restartwarn3 chiavi

"sleep:" passa il resto della catena allo scheduler, non blocca il server.

enabledfalse
console-onlytrue
actions
["broadcast:&cRestart in 5 minutes!", "sleep:4m", "broadcast:&cRestart in 1 minute!"]+2

modules/elevator.yml

Modulo: elevator
23 impostazioni
plugins/ShadowEssentials/modules/elevator.yml
Note del file

Ascensori, come in CMI: mettiti su un blocco ascensore e premi SALTO per salire al prossimo proprio sopra di te, o ACCOVACCIATI per scendere al prossimo sotto di te.

Costruiscine uno:

1. Piazza un blocco ascensore (WHITE_WOOL, con i livelli qui sotto).
2. Più in alto, nella STESSA colonna, piazza un altro blocco dello STESSO
   livello, entro il max-distance di quel livello, con 2 blocchi liberi
   sopra.
3. Mettiti su quello in basso e salta. Accovacciati su quello in alto per
   tornare giù.

Quello che c'è in mezzo non conta - pavimenti, soffitti, muri: la corsa ci passa dritta attraverso.

/elevator elenca i livelli come li ha capiti il plugin, e quali puoi usare (shadowessentials.command.elevator, solo op). /se reload applica le modifiche a questo file.

config-version1
enabledtrue
commands1 chiave
elevator{ enabled: true, aliases: [ ] }

Livelli

levels3 chiavi

Un livello è un tipo di ascensore: quali blocchi, a che distanza, e chi può usarlo. Aggiungi, togli e rinomina i livelli come vuoi - i nomi (level-1, level-2...) li scegli tu.

Continua a leggere
blocks        uno o più blocchi di Minecraft: WHITE_WOOL, EMERALD_BLOCK,
              minecraft:lime_wool... Devono essere blocchi SOLIDI su cui si
              può stare in piedi (tappeti, fiori, cartelli, binari vengono
              rifiutati). Un nome sbagliato viene saltato e la console dice
              perché. Un blocco appartiene a UN solo livello: quando due
              livelli elencano lo stesso blocco, lo tiene il primo.
max-distance  la differenza di altezza più grande, in blocchi, tra un
              blocco ascensore e il prossimo dello stesso livello.
              10 = il piano successivo può essere al massimo 10 blocchi più
              in alto (o più in basso). Uno più lontano non viene trovato.
permission    "" = tutti possono usarlo. Altrimenti il nodo che serve a un
              giocatore. Inventa quello che preferisci e dallo ai tuoi rank
              con ShadowPermissions o LuckPerms, per esempio
                /lp group vip permission set shadowessentials.elevator.level.2

Si collegano solo blocchi dello STESSO livello: un blocco level-1 non ti porta mai a uno level-2. Ogni giocatore ha anche bisogno di shadowessentials.elevator.use, che hanno tutti a meno che tu non lo tolga.

levels.level-13 chiavi
blocks[WHITE_WOOL]
max-distance10
permission""
levels.level-23 chiavi
blocks[LIGHT_BLUE_WOOL]
max-distance25
permission"shadowessentials.elevator.level.2"
levels.level-33 chiavi
blocks[LIME_WOOL, EMERALD_BLOCK]
max-distance50
permission"shadowessentials.elevator.level.3"
disabled-worlds[ ]

Mondi in cui gli ascensori non fanno niente (lì i blocchi sono solo blocchi).

cooldown"0.5s"

L'attesa tra due corse dello stesso giocatore. Funzionano i decimali: "0.5s", "1.5s", "250ms". "0" per nessuna attesa. Warm-up, cooldown e prezzo del modulo teletrasporti qui non valgono mai: un ascensore deve sembrare istantaneo.

center-playertrue

true: arrivi al centro del blocco di destinazione. false: arrivi nello stesso punto del blocco da cui sei partito. La direzione dello sguardo resta sempre quella.

record-backfalse

false: /back ignora le corse in ascensore, quindi ti riporta comunque al punto da cui ti sei teletrasportato l'ultima volta. true: una corsa conta come un teletrasporto.

Protezione

protectionenter

Se ogni lana bianca è un ascensore, un giocatore potrebbe metterne una sotto la base di qualcun altro e saltarci dentro. Cosa lo impedisce:

Continua a leggere
enter  (predefinito) la corsa viene controllata come un teletrasporto: i plugin
       di regioni e claim che sorvegliano i teletrasporti (i flag di ingresso di
       ShadowRegions, WorldGuard...) possono rifiutarla, e lo stesso vale per
       qualsiasi blocco dei teletrasporti registrato in ShadowEssentials.
       Basta quando le tue aree protette rifiutano l'ingresso agli estranei.
build  "enter", e in più il giocatore deve poter COSTRUIRE dove arriva -
       la stessa domanda che l'editor degli armor stand fa ai plugin di
       protezione. La scelta sicura per i claim in cui chiunque può entrare
       a piedi: nessuno arriva in ascensore dove non potrebbe costruire.
       Il prezzo: in un edificio condiviso dove gli ospiti possono entrare
       ma non costruire, gli ospiti non possono usarne nemmeno gli ascensori.
none   nessun controllo nostro. Il server annuncia comunque la corsa come
       teletrasporto, quindi un plugin che rifiuta i teletrasporti può
       comunque rifiutarla.

shadowessentials.elevator.bypass (op) salta questi controlli.

Feedback

messageactionbar

Dove vanno i messaggi brevi ("nessun ascensore sopra entro 10 blocchi", "l'ascensore sopra è bloccato"...): actionbar, chat, title, subtitle o none. I testi sono in lang/*.yml sotto "elevator:"; un testo lasciato vuoto lì non viene mandato. Lo stesso messaggio viene ripetuto allo stesso giocatore al massimo ogni 2 secondi.

sound3 chiavi

Suono riprodotto al giocatore quando arriva. name: "" per il silenzio.

name"ENTITY_ENDERMAN_TELEPORT"
volume0.5
pitch1.6
particles2 chiavi

Si vede nel punto in cui arriva il giocatore. type: NONE (o count: 0) per non mostrare niente.

typePORTAL
count20

modules/hologram.yml

Modulo: hologram
23 impostazioni
plugins/ShadowEssentials/modules/hologram.yml
Note del file

Testo fluttuante costruito sulle display entity del gioco stesso: niente armor stand invisibili, niente libreria di pacchetti, nessuna dipendenza.

Gli ologrammi veri e propri stanno in fondo a questo file. Creali in gioco con /hologram, o scrivili qui a mano - funzionano entrambi, e il file è sempre la fonte di verità.

Colori con &, come ovunque: &6 oro, &l grassetto, &#ff8800 per un colore esatto. I gradienti usano ancora <gradient:...>.

config-version1
enabledtrue
commands1 chiave
hologram{ enabled: true, aliases: [ "holo", "hd" ] }

Convivere con un altro plugin di ologrammi

conflict2 chiavi
auto-disabletrue

Se è installato DecentHolograms, HolographicDisplays, FancyHolograms o un plugin simile, questo modulo si fa da parte da solo: non crea niente e /hologram spiega perché. Spegni questa opzione per usarli entrambi.

include-cmifalse

CMI è un intero plugin essentials, quindi la sua presenza non significa di per sé che stia disegnando ologrammi. Imposta true se usi quelli di CMI.

Valori predefiniti

defaults12 chiavi

Ogni ologramma eredita questi valori e può sovrascriverne uno qualsiasi.

billboardCENTER

CENTER è sempre rivolto verso di te. FIXED non gira mai. VERTICAL e HORIZONTAL girano su un solo asse.

scale1.0
view-range40.0

Distanza in blocchi oltre la quale il testo smette del tutto di essere inviato.

background"transparent"

ARGB, quindi la prima coppia è l'opacità. "transparent" per nessuno sfondo.

default-backgroundfalse

true usa il riquadro scuro vanilla invece del colore qui sopra.

text-shadowfalse
see-throughfalse
alignmentCENTER

CENTER | LEFT | RIGHT

line-spacing0.28

Spazio verticale tra le righe, in blocchi.

line-width200

Larghezza in pixel oltre la quale una riga molto lunga va a capo.

item-spintrue

Se le righe con icona girano e ondeggiano sul posto. false: restano ferme sospese.

update-interval"1s"

Ogni quanto viene ridisegnato un ologramma con placeholder. Un ologramma senza niente di dinamico non viene mai ridisegnato, qualunque cosa ci sia scritto qui.

Distanza

visibility1 chiave
spawn-distance32

Un ologramma esiste solo mentre un giocatore è entro questo numero di blocchi da lui. Più lontano le sue entità vengono rimosse - niente da tickare, niente da inviare - e rimesse appena qualcuno si avvicina. Ogni plugin della suite che disegna tramite ShadowEssentials lo ottiene gratis. 0 = sempre presente.

Animazioni

animations2 chiavi

Usane una da una riga con: animation:<name>

animations.arrow2 chiavi
interval"250ms"
frames
["&e>>> &7CLICK &e ", "&e >>> &7CLICK &e ", "&e >>> &7CLICK &e ", "&e >>> &7CLICK &e "]+3
animations.rainbow2 chiavi
interval"150ms"
frames
["&c&lWELCOME", "&6&lWELCOME", "&e&lWELCOME", "&a&lWELCOME", "&b&lWELCOME", "&d&lWELCOME"]+3

Gli ologrammi

holograms{ }

Tipi di riga:

testo normale                    colori con &
""                               una riga vuota di spaziatura
icon:DIAMOND                     un item che fluttua, gira e ondeggia
animation:<name>                 scorre i frame definiti sopra
leaderboard:<board>:<1-10>:<fmt> una riga per posizione, dal
                                 modulo leaderboard
Continua a leggere
Placeholder:
  %online% %max_players% %tps%     uguali per tutti
  %player% <player> %world%        i valori di chi guarda
  %shadowessentials_...%               e qualsiasi placeholder di PlaceholderAPI

Un ologramma il cui testo cambia per ogni spettatore viene disegnato una volta per spettatore, automaticamente, e solo per i giocatori abbastanza vicini da leggerlo.

Esempio, copialo fuori dalle { } qui sopra per usarlo:

holograms:
  spawn:
    world: "world"
    x: 0.5
    y: 66.0
    z: 0.5
    lines:
      - "<gradient:#8A2BE2:#00BFFF>&lWELCOME</gradient>"
      - "&7Online: &f%online%&7/&f%max_players%"
      - ""
      - "icon:DIAMOND"
      - "&eClick for the kits"
    click:
      actions: [ "command:/kits" ]
      radius: 1.5
top-playtime:
  world: "world"
  x: 10.5
  y: 66.0
  z: 0.5
  update-interval: "60s"
  lines:
    - "&6&lMOST HOURS PLAYED"
    - "leaderboard:playtime:1-10:&7<rank>. &f<name> &8- &e<value>"
vip-only:
  world: "world"
  x: 20.5
  y: 66.0
  z: 0.5
  # Mostrato solo a chi soddisfa la condizione. Stesse condizioni di
  # tutto il resto: permission, has-vip, world, playtime, level...
  show-if: "has-vip:any"
  lines:
    - "&6Welcome back, &f%player%&6!"

modules/homes.yml

Modulo: homes
20 impostazioni
plugins/ShadowEssentials/modules/homes.yml
config-version1
enabledtrue
commands4 chiavi
home{ enabled: true, aliases: [ "h" ] }
homes{ enabled: true, aliases: [ "listhomes" ] }
sethome{ enabled: true, aliases: [ "sh" ] }
delhome{ enabled: true, aliases: [ "dh", "removehome" ] }
limits3 chiavi
default1

Per i giocatori senza nessun permesso specifico.

permission-basedtrue

Legge shadowessentials.limit.homes.<n> - vince il valore più alto. shadowessentials.limit.homes.unlimited toglie il limite.

hard-cap50

Tetto massimo assoluto, anche con i permessi. -1 = nessun tetto.

naming4 chiavi
default-name"home"

Nome usato da /sethome senza argomenti.

max-length16
pattern"[a-zA-Z0-9_-]+"
blacklist[list, help, set, del, icon]
placement1 chiave
blacklist-worlds[ ]

Mondi in cui non si possono creare home.

teleport3 chiavi
warmup"3s"

Lascia vuoto per ereditare da modules/teleport.yml.

cooldown"10s"
teleport.cost1 chiave
amount0
gui3 chiavi
allow-custom-icontrue

I giocatori possono scegliere l'icona di ogni home con /home icon <name> tenendo in mano l'item che vogliono.

right-click-deletetrue

Cliccando col tasto destro su una home nel menu viene proposto di eliminarla. La domanda viene fatta in chat con i due pulsanti, mai direttamente al clic, e serve comunque shadowessentials.command.delhome.

sortNAME

NAME | DATE | WORLD

modules/inventory.yml

Modulo: inventory
15 impostazioni
plugins/ShadowEssentials/modules/inventory.yml
Note del file
/chestorder on   ogni cassa, barile, shulker box o ender chest che il
                 giocatore apre viene prima riordinato: gli stack a metà
                 dello stesso oggetto vengono uniti, e gli stack ordinati.
/autopickup on   quello che il giocatore rompe o uccide finisce dritto
                 nell'inventario; quello che non ci sta cade come al solito.

Entrambi sono ATTIVI per un nuovo giocatore (default-on qui sotto) e vengono ricordati per ogni giocatore una volta che li cambia.

config-version1
enabledtrue
commands2 chiavi
chestorder
{ enabled: true, aliases: [ "chestsort", "sortchest" ] }+1
autopickup{ enabled: true, aliases: [ "autopick" ] }
chest-order4 chiavi
enabledtrue
default-ontrue

Attivo per ogni giocatore finché non lo spegne con /chestorder off.

shulker-boxestrue

Vengono ordinate anche le shulker box. Spegnilo se i tuoi giocatori le usano come kit organizzati e preferiscono che restino esattamente come le hanno riempite.

ender-chesttrue
auto-pickup7 chiavi
enabledtrue
default-ontrue

Attivo per ogni giocatore finché non lo spegne con /autopickup off.

mob-dropstrue

Anche i drop di un mob ucciso dal giocatore.

experiencetrue

L'esperienza: dai blocchi che il giocatore rompe e dai mob che uccide.

Si azzera quella che cadrebbe e si da' la stessa quantita' al giocatore, quindi il conto e' identico: cambia solo che non ci sono sfere da inseguire. Quella delle fornaci non si tocca - si ritira aprendole, e prenderla a distanza vorrebbe dire svuotarle senza guardarle.

experience-default-ontrue

Accesa per tutti finche' non la spengono con /autopickupxp off.

creative-toofalse

In modalità creativa di solito i drop non contano; attivalo se lo vuoi comunque.

never-collect[ ]

Materiali che cadono sempre a terra anche con la raccolta automatica attiva.

modules/kits.yml

Modulo: kits
17 impostazioni
plugins/ShadowEssentials/modules/kits.yml
Note del file

Impostazioni GLOBALI dei kit. Ogni kit è un file a sé in kits/<name>.yml

config-version1
enabledtrue
commands2 chiavi
kit{ enabled: true, aliases: [ "k" ] }
kits{ enabled: true, aliases: [ "kitlist" ] }
menu"kits"

File del layout della GUI: menus/kits.yml

defaults4 chiavi

Valori predefiniti applicati ai kit che non definiscono un valore proprio.

cooldown"24h"
full-inventoryQUEUE
DROP   = lascia cadere a terra gli item in eccesso
QUEUE  = tienili finché il giocatore non ha spazio (consigliato)
CANCEL = rifiuta il riscatto se l'inventario è pieno
cooldown-modeDURATION
respect-vip-multipliertrue

Coda di consegna

Quando l'inventario è pieno gli item rimasti vengono conservati invece di cadere a terra. Sopravvivono a relog, morti e riavvii. Riscattali con /kit claim.

queue3 chiavi
enabledtrue
max-items200

Numero massimo di item conservati per giocatore. -1 = illimitati.

notify-on-jointrue

Avvisa il giocatore al login che c'è qualcosa in attesa.

first-join2 chiavi

Kit consegnati automaticamente la prima volta che un giocatore entra.

enabledtrue
kits[starter]
timezone"Europe/Rome"

Fuso orario usato da cooldown-mode DAILY / WEEKLY / MONTHLY. DAILY si azzera a mezzanotte in questo fuso, che è quello che i giocatori si aspettano, invece che 24 ore dopo l'ultimo riscatto.

preview2 chiavi
enabledtrue
allow-lockedtrue

Permetti ai giocatori di vedere in anteprima i kit che non possono ancora riscattare: vedere cosa c'è dietro un rango lo vende meglio di qualsiasi descrizione.

modules/leaderboard.yml

Modulo: leaderboard
16 impostazioni
plugins/ShadowEssentials/modules/leaderboard.yml
Note del file

Testi in italiano: esempi/it_IT/modules/leaderboard.yml - copialo al posto di questo file. Classifiche. Ricalcolate in background e servite dalla cache: /leaderboard non tocca mai lo storage. Gli altri plugin Shadow possono registrare le proprie classifiche tramite l'API, e quelle compaiono qui da sole.

config-version1
enabledtrue
commands1 chiave
leaderboard{ enabled: true, aliases: [ "top10", "lb" ] }
refresh"5m"

Ogni quanto viene ricalcolata ogni classifica.

boards3 chiavi
boards.playtime4 chiavi
display-name"&bMost hours played"
stat"playtime"

"playtime" e "first-join" arrivano dal profilo, il resto dalle statistiche vanilla.

size10
format"&7<rank>. &f<name> &8- &b<value>"
boards.kills4 chiavi
display-name"&cPiu uccisioni"
stat"kills"
size10
format"&7<rank>. &f<name> &8- &c<value>"
boards.deaths4 chiavi
display-name"&4Piu morti"
stat"deaths"
size10
format"&7<rank>. &f<name> &8- &4<value>"

modules/lock.yml

Modulo: lock
39 impostazioni
plugins/ShadowEssentials/modules/lock.yml
Note del file

Blocca per te una cassa, un barile, una fornace o una porta: appendici un cartello con [Lock] sulla prima riga. Click destro sul cartello per scegliere chi altro può aprirla.

Dove stanno i lucchetti: nel mondo stesso (i dati dei chunk), non in un database. Un backup del mondo si riporta dietro i suoi lucchetti, un mondo eliminato se li porta via. data/locks.yml (o la tabella sb_lock) è solo un indice per contare ed elencare: perderlo non fa perdere nessun lucchetto.

Un lucchetto aggiunge un rifiuto, non concede mai niente: se una regione o un'isola tiene chiusa una cassa a qualcuno, essere tra gli ammessi del lucchetto non gliela apre.

config-version1
enabledtrue
commands1 chiave
lock{ enabled: true, aliases: [ "chestlock" ] }
sign-tags[Lock, Private, Privato]

Prima riga di un cartello del lucchetto. Maiuscole e minuscole non contano; valgono entrambe le facce. Questi tag sono riservati: un tipo di cartello in modules/sign.yml con lo stesso tag viene ignorato, e la console lo dice.

quick-locktrue

Clic destro su un contenitore con un cartello in mano: il cartello si appende da solo su un lato libero e il contenitore viene chiuso col lucchetto. Se non c'è un lato libero viene chiuso senza cartello.

lockable15 chiavi

Cosa si può bloccare. Le casse di rame e i vasi decorati sono spenti finché i golem di rame e le frecce non vengono gestiti (vedi il manuale). Le porte di ferro mai: le apre solo la redstone.

cheststrue

chest, trapped chest

copper-chestsfalse
barrelstrue
shulker-boxestrue
furnacestrue

furnace, smoker, blast furnace

hopperstrue
droppers-dispenserstrue
brewing-standstrue
crafterstrue
doorstrue

wooden doors, trapdoors, fence gates

shelvesfalse
lecternsfalse
jukeboxesfalse
decorated-potsfalse
chiseled-bookshelvesfalse
connected-doorstrue

Le porte doppie si aprono e si chiudono insieme, e un solo lucchetto le copre entrambe.

disabled-worlds[ ]

Mondi dove non si possono creare lucchetti (quelli già esistenti lì restano validi).

command-range5

Fin dove arriva /lock per il blocco che guardi.

notice-cooldown"2s"

Lo stesso "questa cassa è chiusa" viene detto allo stesso giocatore al massimo una volta in questo intervallo: un clic destro tenuto premuto ripete il clic.

limits1 chiave
default25

Lucchetti per giocatore. shadowessentials.lock.limit.<n> alza il limite (vince il nodo più alto), shadowessentials.lock.limit.unlimited lo toglie. Una cassa doppia conta uno. Il conteggio viene dall'indice.

hoppers1 chiave
auto-lock-own-hopperstrue

Un hopper che il proprietario piazza contro un proprio contenitore protetto viene protetto anche lui a suo nome, così le sue catene di hopper continuano a funzionare. Quegli hopper non contano per il limite.

modes1 chiave
deposittrue

DEPOSIT: tutti ci mettono le cose, solo i membri le tirano fuori.

groups1 chiave
permission-groups[ ]

Gruppi extra offerti nel menu, accanto a team, isola e regione. "vip" qui significa: chi ha shadowessentials.lock.group.vip (dallo a un gruppo in ShadowPermissions o LuckPerms).

land-owner2 chiavi

Chi possiede il terreno può toglierci un lucchetto (mai aprirlo di nascosto).

islandstrue
regionsfalse

Spento: le regioni dello spawn appartengono allo staff, che ha il bypass.

orphan-on-island-leavetrue

Un membro che ha lasciato l'isola: i suoi lucchetti lì contano come scaduti per il proprietario dell'isola, che può aprirli e toglierli.

expiry4 chiavi
after-days0

0 = i lucchetti non scadono mai. Altrimenti: proprietario non visto da questo numero di giorni.

actionBREAKABLE
UNLOCK    chiunque lo apre

BREAKABLE resta chiuso, ma chiunque può romperlo

NOTHING   lo dice solo /lock info
purgefalse

Toglie da solo, ogni tanto, i lucchetti dei proprietari scaduti.

purge-every"24h"
import4 chiavi
signsfalse

Converte i cartelli [Private] di Lockette, LockettePro e BlockLocker man mano che si caricano i loro chunk. Solo finché quei plugin NON sono installati.

private-tags[Private, Privato]

La prima riga di quei cartelli.

more-users-tags["More Users", "Altri Utenti"]
lwc-table"lwc_protections"

/lock admin import lwc mysql legge questa tabella nel database che usa ShadowEssentials.

modules/mail.yml

Modulo: mail
9 impostazioni
plugins/ShadowEssentials/modules/mail.yml
config-version1
enabledtrue
commands1 chiave
mail{ enabled: true, aliases: [ "inbox" ] }
limits2 chiavi
max-messages50

Numero massimo di messaggi che una casella può contenere.

max-length256
expiry2 chiavi
unread"30d"

I messaggi non letti scadono dopo...

read"7d"

I messaggi letti vengono eliminati dopo...

notify2 chiavi
on-jointrue

Un avviso al login quando ci sono messaggi non letti.

delay"2s"

modules/moderation.yml

Modulo: moderation
61 impostazioni
plugins/ShadowEssentials/modules/moderation.yml
Note del file

Testi in italiano: esempi/it_IT/modules/moderation.yml - copialo al posto di questo file. Ban, mute, kick, warn, jail, freeze, vanish. Tutto nello storage: funziona offline e su più server.

config-version1
enabledtrue
commands15 chiavi
ban{ enabled: true, aliases: [ ] }
tempban{ enabled: true, aliases: [ "tban" ] }
unban{ enabled: true, aliases: [ "pardon" ] }
kick{ enabled: true, aliases: [ ] }
mute{ enabled: true, aliases: [ ] }
tempmute{ enabled: true, aliases: [ "tmute" ] }
unmute{ enabled: true, aliases: [ ] }
warn{ enabled: true, aliases: [ ] }
jail{ enabled: true, aliases: [ ] }
unjail{ enabled: true, aliases: [ ] }
freeze{ enabled: true, aliases: [ ] }
history{ enabled: true, aliases: [ "punishments" ] }
alts{ enabled: true, aliases: [ ] }
vanish{ enabled: true, aliases: [ "v" ] }
staffchat{ enabled: true, aliases: [ "sc" ] }

Modelli di punizione

Motivi preimpostati con le durate già decise:

/ban SomePlayer #cheating

Quale durata viene scelta dipende da quante volte quel giocatore ha già ricevuto lo stesso modello, così due moderatori diversi danno la stessa pena per la stessa cosa senza doverselo ricordare.

templates4 chiavi
templates.spam3 chiavi
display"Spam in chat"
typeMUTE
durations[10m, 1h, 12h, 7d]
templates.insults3 chiavi
display"Offensive language"
typeMUTE
durations[30m, 3h, 1d, 7d]
templates.cheating4 chiavi
display"Cheating clients"
typeBAN
durations[30d, perm]
broadcasttrue
templates.griefing3 chiavi
display"Griefing"
typeBAN
durations[3d, 14d, perm]

Avvertimenti

warns2 chiavi
expire"30d"

Quanto tempo prima che un avvertimento smetta di contare per la scala.

warns.ladder3 chiavi

Azioni automatiche al raggiungimento di N avvertimenti attivi. Scatta solo il gradino esatto, non tutti quelli sotto.

warns.ladder.33 chiavi
actionMUTE
duration"1h"
reason"3 warnings"
warns.ladder.53 chiavi
actionBAN
duration"1d"
reason"5 warnings"
warns.ladder.83 chiavi
actionBAN
duration"perm"
reason"8 warnings"

Ban

ban2 chiavi
screen
["&c&lYOU ARE BANNED", "", "&7Reason: &f<reason>", "&7By: &f<actor>", "&7Expires: &f<expires>", "", "&eIf you think this is a mistake, write on Discord."]+5

La schermata mostrata a un giocatore bannato. Qui funziona MiniMessage. Placeholder: <reason> <actor> <expires>

broadcasttrue
kick1 chiave
screen
["&c&lYOU WERE KICKED", "", "&7Reason: &f<reason>"]+1

Mute

mute2 chiavi
blocked-commands[msg, tell, w, r, reply, mail, me, sc]

Comandi bloccati durante il mute, così non si aggira un mute scrivendo in privato.

shadow-mutetrue

Shadow mute: il giocatore vede i propri messaggi, nessun altro li vede. Molto più efficace di un mute normale contro chi provoca.

Prigione

Le celle si creano con /jail create <name> stando nel punto giusto, o si scrivono qui a mano.

jail2 chiavi
cells{ }
contain-radius20

Un giocatore che si allontana dalla cella viene rimesso dentro.

Rilevamento degli account secondari

alts3 chiavi
enabledtrue
notify-on-jointrue

Avvisa lo staff al login quando l'indirizzo è già noto per altri account.

only-if-punishedfalse

true = avvisa solo quando uno degli altri account è bannato

Vanish

/vanish nasconde del tutto l'entità del giocatore agli altri client: niente modello, niente armatura, niente nome, niente particelle delle pozioni, nessuna riga nella tab list. Per quanto li riguarda, il giocatore non c'è.

Le impostazioni qui sotto riguardano tutti gli altri modi in cui chi è invisibile si tradisce comunque.

vanish10 chiavi
silent-join-quittrue

Nessun messaggio di entrata e uscita mentre sei invisibile.

block-pickuptrue

Un item che si alza da terra verso il nulla si nota.

block-mob-targetingtrue

Anche uno zombie che insegue un corridoio vuoto.

block-pressure-platestrue

E una pedana a pressione che si abbassa da sola, ancora di più.

invulnerabletrue

Nessun danno mentre sei invisibile: non puoi morire durante un'indagine.

freeze-hungertrue

La fame resta dov'è.

remindertrue

Un promemoria nella action bar, perché dimenticarsi di essere invisibili è il modo classico di rovinare un'indagine.

hide-from-player-counttrue

Il conteggio dei giocatori - lista dei server, tab list, ologrammi, placeholder - esclude chi è invisibile.

hide-from-listtrue

Il /list vanilla nominerebbe comunque tutti, quindi rispondiamo noi, con le stesse parole e senza chi non può essere visto.

auto-on-joinfalse

Chi ha shadowessentials.vanish.auto entra già invisibile.

notify1 chiave
permission"shadowessentials.moderation.notify"

Chi riceve le notifiche di moderazione.

modules/motd.yml

Modulo: motd
24 impostazioni
plugins/ShadowEssentials/modules/motd.yml
Note del file

Testi in italiano: esempi/it_IT/modules/motd.yml - copialo al posto di questo file.

Come appare il tuo server nella lista multiplayer: le due righe di testo, l'immagine accanto, il conteggio dei giocatori e la piccola lista che appare quando passi il mouse sul conteggio.

È la prima cosa che chiunque vede del tuo server, e di solito l'unica in base a cui lo confronta.

COLORI con &, come ovunque:

&6 oro  &c rosso  &l grassetto  &#ff8800 colore esatto  &r reset

I gradienti usano il tag, perché & non sa farli:

<gradient:#8A2BE2:#00BFFF>SHADOW</gradient>
config-version1
enabledtrue
commands1 chiave
motd{ enabled: true, aliases: [ ] }

Le due righe

motd4 chiavi
enabledtrue
modeRANDOM
RANDOM  = una diversa a ogni aggiornamento della lista dei server
ORDERED = una dopo l'altra, nell'ordine scritto qui

Una sola voce significa che non cambia mai, e va bene anche così.

centertrue

Riempie ogni riga di spazi così che stia al centro del pannello. La larghezza viene misurata carattere per carattere, perché il font di Minecraft non è monospaziato e "basta contare le lettere" viene storto.

motd.messages3 chiavi

Placeholder che funzionano qui:

%online%  %max_players%  %tps%  %version%
e ogni placeholder di PlaceholderAPI, se è installato.
motd.messages.default1 chiave
lines
["<gradient:#8A2BE2:#00BFFF>&lSHADOW &fNETWORK</gradient>", "&7Survival &8| &7SkyBlock &8| &7Events every weekend"]+1
motd.messages.second1 chiave
lines
["<gradient:#8A2BE2:#00BFFF>&lSHADOW &fNETWORK</gradient>", "&e&lNEW &8| &7A new SkyBlock season is out"]+1
motd.messages.third1 chiave
lines
["<gradient:#8A2BE2:#00BFFF>&lSHADOW &fNETWORK</gradient>", "&7Online now: &a%online%&7/&f%max_players%"]+1

L'immagine

icon3 chiavi
enabledtrue
folder"icons"

Metti i tuoi file PNG in plugins/ShadowEssentials/<folder>/. Minecraft vuole esattamente 64x64: qualsiasi altra misura viene ridimensionata per te all'avvio, quindi puoi metterci il logo che hai già.

modeRANDOM

RANDOM | ORDERED | FIRST

La lista sotto il conteggio dei giocatori

hover2 chiavi

Passando il mouse sul conteggio compare questa. Anche qui funzionano i colori con &, esadecimali compresi. Una riga vuota "" lascia uno spazio. Tieni le righe corte: il riquadro è largo solo quanto la più lunga.

enabledtrue
lines
["&7Welcome to", "&#8A2BE2SHADOW", "", "&7Online: &f%online%"]+1

Conteggio dei giocatori

players5 chiavi
hidefalse

Nasconde del tutto il conteggio e la lista.

count-modeREAL
REAL            = la verità
ADD             = la verità più "add" qui sotto
FIXED           = sempre "fixed" qui sotto
ALWAYS_ONE_MORE = gli slot mostrano sempre un posto libero, così non sembra mai pieno
add0
fixed0
max-slots0

0 = lascia stare gli slot di server.properties.

Riga della versione

version1 chiave

Mostrata in rosso accanto al conteggio quando la versione del client del giocatore non corrisponde, che è proprio il momento di dirgli cosa usare. null = lascia quella vera.

textnull

Esempio: "&cRequires 1.26.2"

Manutenzione

maintenance4 chiavi

Attivala con /motd maintenance on|off. Cambia solo quello che mostra la lista dei server: non chiude il server a nessuno.

enabledfalse
lines
["&c&lMAINTENANCE", "&7Back soon. Thank you for your patience!"]+1
iconnull

Un PNG dalla stessa cartella delle icone, senza l'estensione.

hover["&cUnder maintenance", "&7Back soon"]

modules/npc.yml

Modulo: npc
4 impostazioni
plugins/ShadowEssentials/modules/npc.yml
Note del file

NPC a cui puoi avvicinarti e che puoi cliccare.

Sono costruiti sul MANNEQUIN, l'entità a forma di giocatore che il gioco stesso fornisce. Conta più di quanto sembri: ogni altro plugin che mette nel mondo un giocatore con skin lo fa inviando pacchetti finti, il che significa una libreria in più, una dipendenza in più, e una cosa in più che si rompe al prossimo aggiornamento. Un mannequin è una normale entità con una normale API.

Gli NPC stanno in npcs.yml. Quel file lo scrive il plugin.

config-version1
enabledtrue
commands1 chiave
npc{ enabled: true, aliases: [ ] }
look-range6.0

Entro quanti blocchi un NPC gira la testa verso chi passa.

modules/particles.yml

Modulo: particles
16 impostazioni
plugins/ShadowEssentials/modules/particles.yml
Note del file

Testi in italiano: esempi/it_IT/modules/particles.yml - copialo al posto di questo file.

Particelle: quelle che indossano i giocatori, e quelle fissate in un punto preciso - un altare, una fontana, una crate.

Un effetto è due cose separate: la FORMA, dove vengono disegnate, e la PARTICELLA, quale. Tenerle separate vuol dire che un'aureola per ogni particella del gioco è una riga di config invece di cento, e che una particella aggiunta da un aggiornamento del gioco funziona senza che qui si tocchi niente.

config-version1
enabledtrue
commands1 chiave
particles{ enabled: true, aliases: [ "particle", "pp" ] }
interval-ticks4

Quanti tick tra un ridisegno e l'altro. 4 = cinque volte al secondo, che sembra fluido. Alzalo se tantissimi giocatori hanno un effetto attivo.

max-range32

La distanza oltre la quale non ha senso disegnarle.

hide-when-vanishedtrue

Un membro dello staff invisibile che si lascia dietro una scia di scintille non è invisibile.

hide-when-afktrue

Un giocatore lasciato AFK allo spawn per sei ore è un generatore di particelle che nessuno ha chiesto.

Le forme

HALO    anello sopra la testa
AURA    nuvola intorno al corpo
TRAIL   una scia lasciata camminando
FEET    cerchio ai piedi
WINGS   due ali dietro le spalle (seguono la rotazione)
ORBIT   anello che gira all'altezza della vita
BEAM    colonna che sale verso l'alto
RAIN    pioggia dall'alto
HELIX   doppia elica che sale

Le voci

effects7 chiavi
shape       una delle forme qui sopra
particle    il nome Minecraft della particella
color       #RRGGBB, solo per DUST e ENTITY_EFFECT
count       quante per frame
size        raggio, o scala per DUST
group       come vengono raggruppate nel menu
permission  chi può indossarla (default shadowessentials.particle.<id>)
icon        l'item nel menu
effects.sparks8 chiavi
name"&eSparks"
shapeHALO
particleEND_ROD
count8
size0.7
groupbase
iconNETHER_STAR
lore["&7A ring of light above your head."]
Ancora 6 voci con la stessa forma di sparks: flame, hearts, dust, wings, helix, beam

Effetti fissati in un punto

blocks{ }

Scritti da /particles block <name> <effect> mentre guardi il blocco.

Gli altri plugin - quello delle crate, per esempio - NON scrivono qui: attaccano i loro a runtime tramite l'API, e spariscono quando il plugin li rimuove. Così cento crate non ti lasciano cento blocchi di YAML da leggere.

modules/player.yml

Modulo: player
38 impostazioni
plugins/ShadowEssentials/modules/player.yml
Note del file

Le classiche utilità essentials.

config-version1
enabledtrue
commands17 chiavi
heal{ enabled: true, aliases: [ ] }
feed{ enabled: true, aliases: [ "eat" ] }
fly{ enabled: true, aliases: [ ] }
god{ enabled: true, aliases: [ ] }
gamemode{ enabled: true, aliases: [ "gm" ] }
speed{ enabled: true, aliases: [ ] }
repair{ enabled: true, aliases: [ "fix" ] }
hat{ enabled: true, aliases: [ ] }
more{ enabled: true, aliases: [ ] }
workbench{ enabled: true, aliases: [ "craft", "wb" ] }
enderchest{ enabled: true, aliases: [ "ec" ] }
trash{ enabled: true, aliases: [ "disposal", "bin" ] }
invsee{ enabled: true, aliases: [ ] }
clearinventory{ enabled: true, aliases: [ "ci" ] }
suicide{ enabled: true, aliases: [ ] }
ping{ enabled: true, aliases: [ ] }
seen{ enabled: true, aliases: [ ] }
heal5 chiavi
cooldown"60s"
restore-healthtrue
restore-hungertrue
clear-effectstrue
extinguishtrue
fly3 chiavi
persisttrue

Mantieni il volo attivo tra un relog e l'altro.

blacklist-worlds[ ]

Mondi in cui il volo viene rifiutato anche con il permesso.

safe-landingtrue

Breve immunità alla caduta quando il volo viene tolto a mezz'aria, così togliere il volo a qualcuno in cielo non è una condanna a morte.

invsee2 chiavi
allow-edittrue
readonly-against"shadowessentials.invsee.protect"

I giocatori con questo permesso non possono avere l'inventario modificato, solo visto. Protegge lo staff senior dallo staff junior.

repair1 chiave
cooldown"30s"

Nickname

nick8 chiavi

Il nome mostrato in chat, nella tab list e agli altri plugin. Il nome vero dell'account non cambia mai, e /realname lo mostra sempre.

Continua a leggere

I colori vengono concessi un permesso alla volta, così un rango può avere un nome colorato senza che ogni rango possa colorarsi come un membro dello staff:

shadowessentials.nick.color     &a &c &7 ...
shadowessentials.nick.hex       &#ff8800
shadowessentials.nick.gradient  <gradient:...>
shadowessentials.nick.format    grassetto, corsivo, sottolineato
shadowessentials.nick.magic     &k

Tutto ciò che non è consentito viene tolto dal nome, non rifiutato.

enabledtrue
min-length3

La lunghezza si misura sul testo visibile, i colori non contano.

max-length16
allow-spacesfalse

Solo lettere, cifre e _. shadowessentials.nick.bypass.characters salta questo controllo.

prefix"&7~&r"

Messo davanti a ogni nickname, così un giocatore con un nickname è riconoscibile. Lascia vuoto per nessun segno.

block-real-namestrue

Rifiuta un nickname che è il nome vero dell'account di qualcun altro. Spegnendo questa opzione un giocatore può diventare indistinguibile da un altro.

uniquetrue

Rifiuta un nickname che un altro giocatore online sta già usando.

blacklist[admin, owner, staff, mod, console, server]

Confrontato con il testo visibile, senza distinguere maiuscole e minuscole, in qualsiasi punto.

modules/portal.yml

Modulo: portal
10 impostazioni
plugins/ShadowEssentials/modules/portal.yml
Note del file

Aree che eseguono qualcosa quando un giocatore ci entra.

NON sono regioni protette: niente claim, niente flag, nessuna sovrapposizione con ShadowRegions. Tutto quello che fa un portale è accorgersi che sei entrato.

Costruiscine uno in gioco:

/portal wand      poi clic sinistro su un angolo, clic destro sull'altro
/portal create hub-to-survival command:/warp survival

Due portali che portano l'uno nell'altro:

/portal create entrance
(vai da un'altra parte)
/portal create exit
/portal link entrance exit both

"both" collega anche il ritorno; toglilo per un solo senso. /portal da solo apre la lista, e da lì ogni portale ha una scheda con tutto questo - collegamento, blocco, costo, attesa, specchio.

config-version1
enabledtrue
commands1 chiave
portal{ enabled: true, aliases: [ ] }

Portali

portals{ }

Vuoto di default. Il listener del movimento è sempre registrato, ma la sua prima riga esce subito quando non ci sono portali, quindi una lista vuota costa un confronto per movimento e nient'altro.

Prima veniva registrato solo se all'avvio esisteva già un portale, ed è per questo che il PRIMO portale di un server non faceva niente fino al riavvio successivo - mentre il messaggio diceva che era attivo da subito.

Esempio, copialo fuori dalle { } qui sopra per usarlo:

portals:
  hub-to-survival:
    world: "world"
    corner1: { x: 10, y: 60, z: 10 }
    corner2: { x: 14, y: 65, z: 14 }
    actions:
      - "command:/warp survival"
# Limite di accesso facoltativo. Senza il permesso al giocatore viene detto perché.
permission: null
denied-message: "&cYou cannot go through here."
# Prezzo e attesa facoltativi.
cooldown: "3s"
cost:
  amount: 0
# Requisiti facoltativi.
requirements:
  vip-tier: null
  playtime: null
# Scatta solo stando in questo blocco, così puoi posare l'area
# sopra un vero portale del Nether o una colonna d'acqua.
trigger-block: null
effects:
  sound: { name: "BLOCK_PORTAL_TRAVEL", volume: 0.4, pitch: 1.2 }
  particles: { type: PORTAL, count: 30 }
  title: "<gradient:#8A2BE2:#00BFFF>SURVIVAL</gradient>"

Come appare quando lo crei

creation3 chiavi

Un portale è un'area, non dei blocchi: senza questo, chi ne creava uno non vedeva niente nel mondo e doveva costruirlo a mano per sapere dov'era.

filltrue

false per lasciare l'area invisibile, come prima.

blockNETHER_PORTAL

Di cosa è riempito. Cambia il blocco di un portale esistente con

/portal block <id> <blocco>

e usa "air" per svuotarlo.

Continua a leggere

Deve essere un blocco in cui puoi ENTRARE camminando. Questo esclude vetro, pannelli e ogni altro blocco solido: un portale fatto di quelli è un muro, ti fermi davanti e non succede niente - senza niente sullo schermo che dica perché. NETHER_PORTAL ha l'aspetto giusto e ti lascia passare; il viaggio vanilla verso il Nether viene annullato dentro i nostri portali, quindi si va invece dove dice il collegamento. Funzionano anche WATER, AIR e LIGHT.

frame-blockOBSIDIAN

Il blocco con cui vengono disegnate le cornici già pronte (/portal shape ... circle, rect). Un contorno a mano libera (/portal build) è fatto dei blocchi che piazzi tu.

Forme, aspetto e lo specchio

Un portale è un'area fatta con la wand, o qualsiasi insieme di celle disegnate su un piano:

/portal shape <id> circle <radius>      un anello dove guardi
/portal shape <id> rect <width> <height>
/portal build <id>   ...piazza i blocchi...   /portal finish [action]

Il contorno che costruisci resta; quello che racchiude è il portale (cells:).

Per ogni portale, nel file o con /portal edit <id> <field> <value>:

fill-block: WHITE_STAINED_GLASS_PANE   il blocco all'interno (air = niente)
facing: SOUTH                          il lato su cui stanno i giocatori; impostato
                                       alla creazione, conta per lo specchio
effects:
  ambient: { type: PORTAL, count: 6, distance: 24, interval: 10 }
                                       particelle al suo interno mentre qualcuno
                                       è entro "distance" blocchi
mirror:                                vedi l'altro lato di un altro portale
  enabled: true
  target: other-portal                 /portal mirror <id> <target|off>
  distance: 24                         solo per i giocatori così vicini
  depth: 12                            quanto è profonda la finestra
  refresh-ticks: 40                    ogni quanto viene ridisegnata la finestra
  max-blocks: 4096                     il massimo di blocchi che una finestra può usare
  show-players: true                   i giocatori dall'altro lato, come un nome
                                       con la loro testa sotto

Lo specchio viene disegnato solo sul client: i blocchi dietro il portale vengono mostrati come i blocchi davanti al target, per ogni spettatore, e rimessi a posto appena si allontana. Non costa niente finché nessuno è vicino.

Azioni: "portal:<id>" fa arrivare sulla soglia di quel portale, girati di spalle al portale - il modo solito per collegare due portali tra loro.

Prestazioni

performance1 chiave

Le aree sono indicizzate per chunk, quindi il controllo sul movimento è una sola ricerca in una mappa, per quanti portali esistano. Niente da regolare qui, la voce resta per memoria.

check-on-block-change-onlytrue

Sicurezza

safety2 chiavi

Un portale è un pezzo di mondo che reagisce a chi ci sta dentro, e un attimo dopo quel giocatore di solito è da un'altra parte. Da questo nascono tre tipi di guai, e sono di quelli che fermano il server, non di quelli che danno fastidio alla gente:

Continua a leggere
- due portali che puntano l'uno all'altro: A ti porta a B, B ti riporta
  ad A, e all'arrivo scatta di nuovo. Nella config non c'è niente
  di sbagliato; il server semplicemente smette di rispondere.
- il bordo: stare sul confine ed entrare e uscire fa scattare
  il portale a ogni cambio di blocco. Per un portale che esegue comandi
  da console, significa eseguirli venti volte al secondo.
- pagare due volte: il prezzo passa dal plugin di economia, che
  risponde più tardi. Rientrare mentre la prima risposta è ancora in
  viaggio fa partire un secondo pagamento.

Sono una sola cosa vista da tre lati, quindi hanno una sola cura: dopo che un portale scatta, quel giocatore è sordo ai portali per un momento.

grace"1s"

Per quanto tempo resta sordo. Alzalo se hai catene di portali vicini tra loro.

max-per-10s20

Una rete di sicurezza per una catena abbastanza lunga da superare il periodo di grazia: oltre questo numero di attivazioni in 10 secondi il portale viene rifiutato e la console ti dice chi e dove.

modules/reward.yml

Modulo: reward
25 impostazioni
plugins/ShadowEssentials/modules/reward.yml
Note del file

Testi in italiano: esempi/it_IT/modules/reward.yml - copialo al posto di questo file. Ricompense giornaliere con serie di giorni consecutivi, e ricompense per il playtime. Le azioni usano lo stesso linguaggio di GUI, voucher e cartelli:

money:give:500 · xp:give:100 · kit:give:bonus · console:<command>
message:&aCiao · sound:ENTITY_PLAYER_LEVELUP
config-version1
enabledtrue
commands1 chiave
daily{ enabled: true, aliases: [ "dailyreward" ] }

Ricompensa giornaliera

daily6 chiavi
enabledtrue
timezone"Europe/Rome"
grace-period"6h"

Di quanto puoi sforare prima di perdere la serie. Senza questo, entrare alle 00:30 invece che alle 23:30 cancellerebbe trenta giorni di fila, che è la parte più esasperante di sistemi come questo.

cycle7

Durata del ciclo: una volta finito ricomincia dal giorno 1.

daily.streak-bonus2 chiavi

Un bonus cumulativo per le serie lunghe.

multiplier1.1

+10% for every week in a row

max-multiplier2.0
daily.days7 chiavi
daily.days.12 chiavi
iconIRON_INGOT
actions["money:give:250", "message:&aDay 1: 250 coins"]
daily.days.22 chiavi
iconIRON_INGOT
actions["money:give:500", "message:&aDay 2: 500 coins"]
daily.days.32 chiavi
iconDIAMOND
actions
["console:give <player> diamond 2", "message:&aDay 3: 2 diamonds"]+1
daily.days.42 chiavi
iconGOLD_INGOT
actions
["money:give:1000", "message:&aDay 4: 1000 coins"]+1
daily.days.52 chiavi
iconCHEST
actions
["xp:give:200", "message:&aDay 5: 200 experience"]+1
daily.days.62 chiavi
iconEMERALD
actions
["money:give:2000", "message:&aDay 6: 2000 coins"]+1
daily.days.72 chiavi
iconNETHER_STAR
actions
["money:give:5000", "console:give <player> diamond 5", "sound:UI_TOAST_CHALLENGE_COMPLETE", "broadcast:&6<player> completed the week!"]+3

Ricompense per il playtime

Il tempo in AFK NON conta (vedi modules/afk.yml), quindi non si possono farmare lasciando il client acceso.

playtime2 chiavi
enabledtrue
tiers
[{ after: 1h, repeating: true, actions: […] }, { after: 10h, repeating: false, actions: […] }, { after: 50h, repeating: false, actions: […] }, { after: 100h, repeating: false, actions: […] }]+3

modules/sign.yml

Modulo: sign
20 impostazioni
plugins/ShadowEssentials/modules/sign.yml
Note del file

Cartelli che fanno qualcosa quando vengono cliccati, più i colori sui cartelli normali.

Un tipo di cartello è solo un blocco in "types:" qui sotto. Le azioni sono lo stesso linguaggio a catena usato da GUI, kit e voucher, quindi puoi inventare i tuoi tipi di cartello senza aspettare un aggiornamento del plugin.

config-version1
enabledtrue

Colori sui cartelli normali

colors2 chiavi
enabledtrue
permission"shadowessentials.sign.color"

Solo ai giocatori con questo permesso vengono convertiti i codici colore.

Cartelli funzionali

types7 chiavi

La prima riga è [Tag]. Le altre righe sono parametri, disponibili nelle azioni come <line2>, <line3> e <line4>.

types.warp5 chiavi
tag"Warp"
create-permission"shadowessentials.sign.create.warp"
use-permission"shadowessentials.sign.use.warp"
format["&8[&bWarp&8]", "&f<line2>"]

Come viene riscritto il cartello quando viene piazzato.

actions["command:/warp <line2>"]
Ancora 5 voci con la stessa forma di warp: kit, heal, spawn, trash, craft
types.command5 chiavi

Esegue quello che è scritto sulle righe da 2 a 4. Solo per lo staff, per ovvie ragioni: chi può piazzarne uno può eseguire qualsiasi comando.

tag"Command"
create-permission"shadowessentials.sign.create.command"
use-permission"shadowessentials.sign.use.command"
format
["&8[&dCommand&8]", "&f<line2>", "&f<line3>", "&f<line4>"]+1
actions["command:/<line2> <line3> <line4>"]

Protezione

protection3 chiavi
prevent-breaktrue

Un cartello funzionale può essere rotto solo da chi ha il permesso.

break-permission"shadowessentials.sign.break"
protect-attachedtrue

Protegge anche il blocco a cui è appeso il cartello, così non lo si può far cadere minando il muro dietro.

Feedback

feedback1 chiave
feedback.sound3 chiavi
name"UI_BUTTON_CLICK"
volume0.6
pitch1.2

modules/skin.yml

Modulo: skin
23 impostazioni
plugins/ShadowEssentials/modules/skin.yml
Note del file

Skin: /skin set <name>, /skin url <link>, /skin reset, e un menu guardaroba con /skin. Le stesse sorgenti funzionano per gli NPC (npcs.yml "skin:") e per i manichini.

Una sorgente di skin è una riga:

Notch  o  name:Notch         la skin di quell'account Mojang
url:https://.../skin.png     un'immagine, firmata tramite MineSkin (*)
file:guard                   skins/guard.png, firmata una volta tramite MineSkin (*)
preset:knight                uno dei preset qui sotto

(*) solo dopo che hai compilato "mineskin:" qui sotto. Le skin per nome

non chiedono niente: arrivano da Mojang.

La skin viene messa nel profilo del giocatore PRIMA che entri, così nessuno lo vede mai con quella sbagliata, nemmeno per un secondo.

config-version1
enabledAUTO

AUTO = attivo, a meno che SkinsRestorer non sia installato su questo server (si tiene /skin, e la console lo dice una volta). Se SkinsRestorer gira sul tuo PROXY, scrivi tu false qui: un server non vede il proxy, e due plugin che scrivono la stessa skin si sovrascrivono a vicenda.

commands1 chiave
skin{ enabled: true, aliases: [ "skins" ] }
default-skinAUTO

Cosa indossa un giocatore prima di scegliere qualcosa.

AUTO      OWN_NAME in offline mode, KEEP in online mode (e KEEP
          ogni volta che il login ha già portato una skin firmata, come
          succede con un proxy che inoltra quella vera)
KEEP      quella che gli ha dato il login
OWN_NAME  la skin Mojang dell'account con lo stesso nome, se esiste
LIST      una di default-list, sempre la stessa per lo stesso giocatore
default-list[ ]
sources3 chiavi

Quali tipi di sorgente possono usare i giocatori (ognuno ha anche un permesso).

nametrue
urltrue

needs "mineskin:" below filled in

filetrue

skins/<id>.png, uploaded once through MineSkin

presets3 chiavi

Skin pronte per il guardaroba: name:, url: o file:. Un preset file richiede il PNG in plugins/ShadowEssentials/skins/ e

"mineskin:" compilato, es.   knight: "file:knight"
notch"name:Notch"
jeb"name:jeb_"
dinnerbone"name:Dinnerbone"
mineskin6 chiavi
endpoint""

Le skin da link o da file sono firmate da MineSkin, un servizio esterno, e restano spente finché non compili ENTRAMBE le righe qui sotto: crea un account MineSkin e incolla qui l'indirizzo e la chiave della sua API (il manuale mostra dove trovarli). Finché una delle due è vuota, /skin url e le skin file: vengono rifiutate e dicono perché. Ogni server usa la sua chiave: una chiave condivisa da tutti i server finirebbe in un'ora.

api-key""
visibilityUNLISTED

UNLISTED tiene le skin dei tuoi giocatori fuori dalla galleria pubblica di MineSkin.

timeout"30s"
max-queue5

Quanti caricamenti possono restare in attesa insieme su questo server.

allowed-hosts[ ]

Vuoto = qualsiasi indirizzo https. Altrimenti solo questi host (e i loro sottodomini). Gli indirizzi locali e privati vengono sempre rifiutati.

cache2 chiavi
name-refresh"3d"

Una skin presa da un nome viene riscaricata dopo questo tempo: il proprietario di quell'account potrebbe averla cambiata.

keep-unused"30d"

Le voci che nessuno ha indossato per tutto questo tempo vengono buttate.

cooldown"30s"

Tra due cambi dello stesso giocatore (shadowessentials.skin.bypass-cooldown lo salta).

apply-livetrue

Applica subito (Paper aggiorna il giocatore; una finestra aperta si chiude). false = dal prossimo ingresso. Su Folia è sempre dal prossimo ingresso.

join-wait"1s"

Quanto può aspettare un ingresso per una skin non ancora in cache. Dopo, il giocatore entra, e la skin arriva un attimo più tardi.

blocked-names[ ]

Nomi la cui skin non si può copiare: il tuo staff, per esempio.

modules/spawn.yml

Modulo: spawn
16 impostazioni
plugins/ShadowEssentials/modules/spawn.yml
config-version1
enabledtrue
commands2 chiavi
spawn{ enabled: true, aliases: [ ] }
setspawn{ enabled: true, aliases: [ ] }
main{ }

Scritto automaticamente da /setspawn. Puoi anche modificarlo a mano.

per-world2 chiavi
enabledfalse
worlds{ }

Scritto da /setspawn --world

first-join5 chiavi
teleporttrue

Teletrasporta il giocatore la prima volta che si collega.

Va al punto qui sotto se c'è, altrimenti allo spawn normale. Spegnerlo NON spegne il messaggio, l'annuncio e i comandi: quelli vengono eseguiti lo stesso, sono cose separate.

location{ }

Il punto del primo accesso, scritto da /setfirstspawn. Per quando la prima cosa che vuoi far vedere a qualcuno non è il centro dell'hub ma il cartello che spiega le regole. Toglilo, o usa /setfirstspawn clear, per usare lo spawn normale.

message"<gradient:#8A2BE2:#00BFFF>Welcome, <player>!</gradient>"
broadcast"&8[&a+&8] &f<player> &7joined for the first time!"
commands[ ]

Comandi eseguiti una volta, al primo accesso. <player> viene sostituito.

on-join1 chiave
teleportfalse

Teletrasporta allo spawn a ogni login.

respawn1 chiave
modeBED
SPAWN = sempre lo spawn del plugin
BED = letto o ancora di rinascita se disponibili, altrimenti lo spawn del plugin
VANILLA = lascia fare al server
teleport2 chiavi
warmup"3s"
cooldown"5s"

modules/spawner.yml

Modulo: spawner
15 impostazioni
plugins/ShadowEssentials/modules/spawner.yml
Note del file

Testi in italiano: esempi/it_IT/modules/spawner.yml - copialo al posto di questo file.

Raccogliere gli spawner, e decidere DOVE si possono raccogliere.

La seconda metà è quella che conta. Un server vuole quasi sempre che si possano raccogliere in alcuni mondi e non in altri: lasciare che un piccone con silk touch svuoti il mondo delle risorse e porti gli spawner in un mondo dei plot è la strada più breve verso un'economia che poi non si può più riparare.

config-version1
enabledtrue
commands1 chiave
spawner{ enabled: true, aliases: [ "spawnermob" ] }

Condividere il server con un altro plugin di spawner

conflict1 chiave

ShadowSpawners, SilkSpawners e simili fanno questo stesso lavoro. Due plugin sullo stesso evento di rottura significano che lo spawner che piazzi e quello che raccogli prendono il nome da plugin diversi, e non corrispondono.

Quindi quando uno di questi è installato questo modulo si fa da parte e lo lascia lavorare. Imposta false per prendere comunque il controllo - e aspettati che i due non vadano d'accordo.

auto-disabletrue

Dove

worlds4 chiavi

Raccogliere e piazzare sono due domande separate: volerli raccoglibili solo in survival ma piazzabili ovunque è del tutto normale.

pickup-everywherefalse

true = si possono raccogliere in qualsiasi mondo e la lista qui sotto viene ignorata. false = solo nei mondi elencati.

pickup[world]
place-everywheretrue
place[ ]

Come

pickup5 chiavi
require-silk-touchtrue

Serve il silk touch sul piccone in mano.

minimum-fortune0

Livello minimo di fortuna. 0 per non richiederlo.

chance1.0

Probabilità che lo spawner sopravviva alla rottura. 1.0 = sempre. Sotto 1 diventa un drop raro invece di una certezza.

creative-always-dropstrue

In creativa cade comunque, senza silk touch.

explosions-dropfalse

Le esplosioni lo fanno cadere. Lasciato spento: acceso significa raccoglierli con il TNT e senza nessun piccone.

L'item

item2 chiavi

<mob> è il nome leggibile, <type> quello tecnico. Colori con &.

name"&e&l<mob> Spawner"
lore
["&7Place it to make &f<mob> &7appear.", "&8<type>"]+1
Permessi:
  shadowessentials.spawner.pickup        raccoglierli
  shadowessentials.spawner.place         piazzarli
  shadowessentials.spawner.mob.<mob>     un mob in particolare
  shadowessentials.spawner.mob.*         tutti
  shadowessentials.command.spawner       /spawner

modules/tablist.yml

Modulo: tablist
17 impostazioni
plugins/ShadowEssentials/modules/tablist.yml
Note del file

Testi in italiano: esempi/it_IT/modules/tablist.yml - copialo al posto di questo file. Header della lista giocatori e scoreboard laterale. Le righe vengono ridisegnate solo quando cambiano davvero: una scoreboard di righe fisse non costa niente per tick.

config-version1
enabledtrue
commands1 chiave
scoreboard{ enabled: true, aliases: [ "sidebar" ] }

Lista giocatori (il tasto TAB)

Placeholder disponibili: %player%, %world%, %ping%, %online%, %max_players%, %tps%, e ogni %shadowessentials_...%

tablist6 chiavi
enabledtrue
header
["<gradient:#8A2BE2:#00BFFF>&lSHADOW &fNETWORK</gradient>", "&7Online: &f%online%&8/&f%max_players%", ""]+2
name-format"<rank_prefix><white><name><rank_suffix>"

Il nome mostrato nella lista. Oltre ai placeholder %...%, qui funzionano anche <name>, <player>, <rank_prefix>, <rank_suffix> e <rank_group>. Lascia esattamente "<name>" per non toccare affatto il nome.

nametagtrue

Anche il rango sopra la testa, usando i team della scoreboard che servono già per l'ordinamento: non costa nemmeno un pacchetto in più. Imposta false se è un altro plugin a gestire i nametag.

tablist.sorting1 chiave
enabledtrue

Ordina per peso del rango, così lo staff e i giocatori con un rango finiscono in cima. Usa i team della scoreboard, che sono l'unico modo affidabile per farlo senza pacchetti personalizzati.

Scoreboard laterale

Ogni riga è un componente, non testo semplice: colori, gradienti e placeholder funzionano su tutta la riga, e due righe identiche non sono un problema (non servono spazi finti per distinguerle).

Continua a leggere

Una scoreboard con "worlds" vale solo in quei mondi. Due nomi hanno un significato speciale:

default   vale dovunque non valga nessun'altra scoreboard
skyblock  senza "worlds", vale nel mondo delle isole di ShadowSkyBlock
          comunque si chiami: il nome lo chiediamo a lui.
          Senza ShadowSkyBlock installato non vale mai.

CHI GESTISCE LA SIDEBAR

Minecraft ne ha una per giocatore. Di serie la gestisce questo plugin, ovunque, isole comprese: sulle isole disegna la scoreboard "skyblock" qui sotto, i cui dati reali - livello, membri, banca - li chiede a ShadowSkyBlock. Dall'altra parte island_scoreboard.yml ha "enabled: false", quindi i due non si scontrano mai.

Se la preferisci al contrario - la sidebar delle isole disegnata da ShadowSkyBlock stesso - imposta "yield-to-skyblock: true" qui e "enabled: true" nel suo island_scoreboard.yml.

scoreboard5 chiavi
enabledtrue
update-interval"1s"
yield-to-skyblockfalse

true = nel mondo delle isole la sidebar la disegna ShadowSkyBlock e a questo plugin restano solo header, footer e ordinamento del TAB. False di serie: la disegna questo plugin, con la scoreboard "skyblock".

ignored-worlds[ ]

Mondi in cui questa sidebar non deve comparire, per qualsiasi motivo (una lobby con la sua GUI, un minigioco). Header, footer e ordinamento del TAB continuano a funzionare.

scoreboard.boards2 chiavi
scoreboard.boards.default2 chiavi
title"<gradient:#8A2BE2:#00BFFF>&lSHADOW &fNETWORK</gradient>"
lines
["&7", "&f%player%", "&7Rank: &f%shadowessentials_vip_tier_name%", "&7Money: &a%shadowessentials_balance_formatted%", "&7", "&7Online: &f%online%&7/&f%max_players%", "&7Played: &f%shadowessentials_playtime%", "&7", "&7H …+7
scoreboard.boards.skyblock2 chiavi

La scoreboard dell'isola. I placeholder %island_...% arrivano da ShadowSkyBlock, e una riga che ne contiene uno si toglie da sola per chi non ha un'isola - un visitatore, qualcuno appena arrivato - invece di mostrargli degli zeri:

%island_name%    %island_owner%       %island_role%
%island_level%   %island_members%     %island_max_members%
%island_radius%  %island_bank%        %has_island%
title"<gradient:#8A2BE2:#00BFFF>&lSKYBLOCK</gradient>"
lines
["&7", "&f%player%", "&7Money: &a%shadowessentials_balance_formatted%", "&7", "&fIsland: &b%island_name%", "&7Owner: &f%island_owner%", "&7Role: &f%island_role%", "&7Level: &e%island_level%", "&7Members: &f%island_membe …+11

modules/teams.yml

Modulo: teams
9 impostazioni
plugins/ShadowEssentials/modules/teams.yml
Note del file

I team che i giocatori si creano da soli: un gruppo, qualche ruolo, e una chat tutta loro.

Non è un gruppo di permessi e non è un rango. È la squadra, la gilda, i quattro amici che costruiscono sempre insieme.

I team stanno in teams.yml, nella cartella del plugin. Quel file lo scrive il plugin: puoi leggerlo e correggerlo, ma di solito non c'è bisogno di toccarlo.

config-version1
enabledtrue
commands2 chiavi
team{ enabled: true, aliases: [ "t", "party" ] }
teamchat{ enabled: true, aliases: [ "tc" ] }
max-size8

Quanti membri al massimo. Un tier VIP che definisce teams.size-multiplier lo allarga per chi lo possiede.

name2 chiavi
min-length3
max-length16
invite-timeout"2m"

Quanto tempo resta valido un invito prima di scadere.

allow-tagstrue

Permette al proprietario di dare al team un tag breve, mostrato accanto ai nomi dei suoi membri.

modules/teleport.yml

Modulo: teleport
40 impostazioni
plugins/ShadowEssentials/modules/teleport.yml
Note del file

Tutto ciò che sposta un giocatore: /tp, /tpa, /back, /rtp, /top. Home, warp e spawn riusano la logica di warmup/cooldown/sicurezza di qui.

config-version1
enabledtrue
commands9 chiavi

Rinomina un comando, aggiungi alias, o spegnilo del tutto.

tp{ enabled: true, aliases: [ "teleport" ] }
tphere{ enabled: true, aliases: [ "s" ] }
tpa{ enabled: true, aliases: [ "call", "tpask" ] }
tpahere{ enabled: true, aliases: [ ] }
tpaccept{ enabled: true, aliases: [ "tpyes", "tpok" ] }
tpdeny{ enabled: true, aliases: [ "tpno" ] }
back{ enabled: true, aliases: [ ] }
rtp{ enabled: true, aliases: [ "wild", "randomtp" ] }
top{ enabled: true, aliases: [ ] }

Warmup: l'attesa prima che avvenga il teletrasporto

warmup5 chiavi
duration"3s"
cancel-on-movetrue
cancel-on-damagetrue
move-tolerance0.6

Blocchi di movimento tollerati prima che il teletrasporto venga annullato. Senza questo, il minimo movimento del mouse annulla il teletrasporto, ed è per questo che la maggior parte dei server finisce per disattivare del tutto i warmup.

displayACTION_BAR

ACTION_BAR | BOSSBAR | TITLE | CHAT | NONE

cooldown1 chiave
duration"5s"
cost1 chiave
amount0

Richieste /tpa

requests2 chiavi
expire"60s"
max-pending5

/back

back3 chiavi
enabledtrue
history-size3

Quante posizioni precedenti ricordare: /back 1, /back 2, ...

on-deathtrue

/rtp - teletrasporto casuale

Le destinazioni vengono preparate in background e verificate prima che un giocatore le chieda, così il comando risponde all'istante invece di bloccare il server mentre cerca un punto sicuro.

rtp9 chiavi
rtp.cache2 chiavi
enabledtrue
size-per-world20
rtp.center2 chiavi
x0
z0
rtp
min-radius500
max-radius10000
min-y50
max-attempts20
cooldown"5m"
rtp.cost1 chiave
amount0
rtp
worlds[ ]

Lista vuota = tutti i mondi sono consentiti.

Sicurezza

Prima che un teletrasporto arrivi, la destinazione viene controllata e, se serve, viene usato invece il punto sicuro più vicino.

safety6 chiavi
enabledtrue
search-radius5
require-solid-groundtrue
require-air-above2
on-failCANCEL

CANCEL = rifiuta il teletrasporto | FORCE = vai comunque

unsafe-blocks
[LAVA, FIRE, SOUL_FIRE, MAGMA_BLOCK, CACTUS, POWDER_SNOW, WITHER_ROSE, SWEET_BERRY_BUSH, CAMPFIRE]+6

modules/vip.yml

Modulo: vip
10 impostazioni
plugins/ShadowEssentials/modules/vip.yml
Note del file

Impostazioni GLOBALI dei VIP. Ogni tier è un file a sé in vips/<name>.yml

config-version1
enabledtrue
commands1 chiave
vip{ enabled: true, aliases: [ ] }
menu"vip"
check-interval"1m"

Ogni quanto vengono controllate le scadenze. Il controllo viene fatto sul database, quindi funziona anche per i giocatori offline e su più server.

Risoluzione dei perk

Un giocatore può avere più di un tier alla volta. Queste impostazioni decidono cosa succede quando due tier definiscono lo stesso perk.

perk-resolution3 chiavi
flagsANY_TRUE

ANY_TRUE | ALL_TRUE | HIGHEST_WEIGHT

valuesHIGHEST

HIGHEST | LOWEST | HIGHEST_WEIGHT | SUM

multipliersBEST
BEST = quello più favorevole al giocatore
  (il più basso per i perk di costo/cooldown, il più alto per i perk di guadagno)

MULTIPLY | HIGHEST_WEIGHT

Cosa succede ai perk "materiali" quando un tier scade

Per esempio un giocatore con 15 home il cui limite base è 1.

KEEP   = le home in più restano utilizzabili
LOCK   = restano ma non si possono usare finché il rango non viene rinnovato
REMOVE = vengono eliminate (sconsigliato)
overflow-policyLOCK

Il testo dei perk

Ogni perk che questo plugin conosce ha già una riga tradotta nei file di lingua, sotto vip.perk. Questa sezione ti serve solo per sovrascriverne uno, o per dare un nome a un perk inventato da un altro plugin.

Continua a leggere

Disponibili dentro una riga:

<value>    il numero in sé                7   1.25x
<percent>  la differenza dal normale, sempre positiva   25%

Colori con &, come ovunque.

perk-descriptions

Esempio, togli il # per usarlo: homes.limit: "&8 • &7Up to &f<value>&7 homes"

modules/voucher.yml

Modulo: voucher
7 impostazioni
plugins/ShadowEssentials/modules/voucher.yml
Note del file

Codici riscattabili. Un codice esegue una catena di azioni, quindi copre giveaway, consegne dello store, premi degli eventi e promozioni senza una riga di codice per ogni caso.

config-version1
enabledtrue
commands2 chiavi
redeem{ enabled: true, aliases: [ "code" ] }
voucher{ enabled: true, aliases: [ ] }
generation2 chiavi
pattern"XXXX-XXXX-XXXX"

X viene sostituita con un carattere casuale.

charset"ABCDEFGHJKLMNPQRSTUVWXYZ23456789"

Niente 0/O e niente 1/I/l: un codice deve anche poter essere letto ad alta voce.

redeem1 chiave
cooldown"3s"

L'attesa tra un tentativo e il successivo, che rende impraticabile indovinare un codice.

Esempi:
  /voucher create christmas money:give:5000;kit:give:bonus --uses 500 --per-player 1 --expires 30d
  /voucher create vipgold vip:give:gold:30d --uses 1
  /voucher bulk christmas 100       genera 100 codici monouso

modules/warps.yml

Modulo: warps
20 impostazioni
plugins/ShadowEssentials/modules/warps.yml
Note del file

Warp di sistema, creati dallo staff. Documentazione: docs/moduli/warps.md

config-version1
enabledtrue
commands4 chiavi
warp{ enabled: true, aliases: [ ] }
warps{ enabled: true, aliases: [ "warplist" ] }
setwarp{ enabled: true, aliases: [ "createwarp" ] }
delwarp{ enabled: true, aliases: [ "removewarp" ] }
permissions2 chiavi
per-warptrue

Richiedi shadowessentials.warp.<name> per ogni warp.

show-lockedtrue

Mostra i warp che il giocatore non può usare (in grigio) invece di nasconderli. Mostrare ciò che esiste di solito è meglio: dà ai giocatori un obiettivo.

teleport3 chiavi
warmup"3s"
cooldown"10s"
teleport.cost1 chiave
amount0
categories3 chiavi

Le categorie servono a raggruppare i warp nella GUI. Un warp dichiara la sua categoria quando viene creato: /setwarp <name> <category>

categories.main3 chiavi
display-name"&6Main"
iconNETHER_STAR
weight100
categories.shops3 chiavi
display-name"&aShops"
iconEMERALD
weight90
categories.events3 chiavi
display-name"&dEvents"
iconFIREWORK_ROCKET
weight80

modules/world.yml

Modulo: world
35 impostazioni
plugins/ShadowEssentials/modules/world.yml
Note del file

Gestione dei mondi e comandi diagnostici.

Crea, carica, scarica, elimina e applica regole ai mondi, così un server non ha bisogno di un secondo plugin per averne più di uno:

/world create <name> <kind> [--seed <s>] [--no-structures]
/world delete <name>          chiede due volte, poi la cartella sparisce
/world load <name> [<kind>]   per una cartella copiata a mano
/world tp <name>

Tipi: normal, flat, large_biomes, amplified, void, nether, end

config-version1
enabledtrue
commands7 chiavi
world{ enabled: true, aliases: [ ] }
time{ enabled: true, aliases: [ ] }
weather{ enabled: true, aliases: [ ] }
killall{ enabled: true, aliases: [ "butcher" ] }
tps{ enabled: true, aliases: [ ] }
entitycount{ enabled: true, aliases: [ "entities" ] }
gc{ enabled: true, aliases: [ "memory", "mem" ] }

Mondi gestiti

worlds3 chiavi

Vengono toccati solo i mondi elencati qui. Un mondo non elencato mantiene le impostazioni che gli ha dato il server stesso.

Continua a leggere

/world create scrive qui il suo mondo da solo, con il "kind" con cui è stato creato. Quella riga non è decorazione: il server ricorda i blocchi di un mondo ma non il generatore che li ha creati, quindi un mondo void riaperto senza di essa torna pieno di pietra.

kind:       normal | flat | large_biomes | amplified | void
            | nether | end     (omettilo per un mondo che il server
            conosce già, come quelli in server.properties)
seed:       il seed con cui è stato creato, omesso per lasciarlo scegliere al server
structures: false per non generare villaggi, templi o fortezze
worlds.world10 chiavi
auto-loadtrue

Carica questo mondo all'avvio se il server non l'ha già caricato. Il caricamento genera terreno, quindi avviene solo all'avvio, mai con un /se reload.

worlds.world.gamerules4 chiavi

Applicato ogni volta che il mondo viene caricato o il modulo viene ricaricato.

doDaylightCycletrue
keepInventoryfalse
mobGriefingtrue
announceAdvancementstrue
worlds.world
difficultyNORMAL
pvptrue
fixed-timenull

Blocca l'orologio su questo tick. Impostarlo spegne anche doDaylightCycle, altrimenti l'ora si sposterebbe subito. 0 = alba, 6000 = mezzogiorno, 13000 = notte, 18000 = mezzanotte.

fixed-weathernull

CLEAR | RAIN | THUNDER, oppure null per non toccare il meteo.

spawn-monsterstrue
spawn-animalstrue
allow-flytrue

Il volo in questo mondo. A un giocatore che arriva qui mentre vola il volo viene tolto, a meno che non abbia shadowessentials.world.fly.bypass.

enter-messagenull

Mostrato quando un giocatore entra in questo mondo. MiniMessage, <world> funziona.

worlds.world_nether3 chiavi
auto-loadtrue
allow-flytrue
worlds.world_nether.gamerules1 chiave
keepInventoryfalse
worlds.world_the_end2 chiavi
auto-loadtrue
allow-flytrue

killall

killall5 chiavi
protected
[PLAYER, ARMOR_STAND, ITEM_FRAME, GLOW_ITEM_FRAME, PAINTING, VILLAGER, ALLAY, END_CRYSTAL]+5

Mai rimossi, qualunque cosa dica il comando.

skip-namedtrue

Un mob con un nome è il progetto del cuore di qualcuno: lascialo stare.

skip-tamedtrue
default-radius-1

-1 = tutto il mondo. Qualsiasi altro numero è un raggio in blocchi intorno al giocatore che ha eseguito il comando.

confirm-above200

Oltre questo numero di entità il comando chiede prima una conferma, con i soliti pulsanti cliccabili.

Diagnostica

diagnostics3 chiavi
detailed-tpstrue

/tps mostra anche MSPT, memoria, chunk ed entità.

tps-historytrue

Due giorni di TPS come fila di barre sotto /tps, una barra ogni mezz'ora, passa il mouse sopra per l'ora e il valore più basso registrato. Salvati in data/tps-history.yml.

entity-warn-threshold200

/entitycount segnala i chunk peggiori appena uno di loro supera questo numero di entità.

Lingue

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

lang/

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

Questo file è l'ultimo fallback: ogni chiave che manca in un'altra lingua viene cercata qui, quindi una traduzione parziale funziona comunque.

Formato: MiniMessage, spiegato nel manuale. I placeholder si scrivono <in_questo_modo>.

Per iniziare una nuova lingua: /se lang export <locale>

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 (US) 1681
lang/it_IT.yml Italiano 1681

Segnaposto più usati

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

  • <prefix>
  • <player>
  • <id>
  • <count>
  • <name>
  • <world>
  • <value>
  • <time>
  • <state>
  • <file>
  • <kit>
  • <x>
  • <y>
  • <z>

Gruppi di messaggi

  • prefix 1
  • common 2
  • command 7
  • confirm 6
  • input 3
  • gui 14
  • lang 5
  • admin 179
  • economy 1
  • world 98
  • teleport 31
  • homes 21
  • warps 18
  • spawn 9
  • kits 55
  • vip 44
  • kitadmin 6
  • kiteditor 16
  • chat 25
  • inventory 8
  • afk 3
  • mail 15
  • moderation 80
  • reward 3
  • voucher 28
  • leaderboard 7
  • tablist 5
  • hologram 40
  • player 59
  • custom 2
  • sign 5
  • portal 108
  • motd 10
  • rules 10
  • teams 68
  • rules-book 3
  • spawner 12
  • particles 31
  • npc 47
  • item 10
  • armorstand 312
  • elevator 18
  • autotool 65
  • lock 145
  • skin 46

Altro

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

data/particles.yml

Dati scritti dal plugin
1 impostazione
plugins/ShadowEssentials/data/particles.yml
Note del file

Quale effetto ha scelto ogni giocatore. QUESTO FILE LO SCRIVE IL PLUGIN: le impostazioni stanno in modules/particles.yml.

config-version1

kits/

I kit, uno per file
9 file
plugins/ShadowEssentials/kits/

9 file con la stessa forma. Qui sotto quello più commentato, per intero, come modello; gli altri sono elencati per nome.

  • daily-basic.yml
  • daily-epic.yml
  • daily-magic.yml
  • daily-staff.yml
  • daily.yml
  • starter.yml
  • twitch.yml
  • youtuber-daily.yml
  • youtuber.yml

Esempio kits/starter.yml

Note del file

Un file per kit. Copia questo file per crearne uno nuovo: il nome del file è l'id del kit, quindi kits/pvp.yml diventa /kit pvp.

config-version1
enabledtrue
Presentazione
display-name"&a&lStarter"
description"&7Il necessario per iniziare."
category"base"
iconWOODEN_SWORD
weight100

Peso più alto = più in alto nel menu.

hide-when-lockedfalse

Nascondi il kit dal menu quando il giocatore non ha il permesso.

Chi può riscattarlo
permission"shadowessentials.kit.starter"
publictrue

true = nessun permesso necessario, il kit è aperto a tutti.

requirements4 chiavi
playtime"0m"
level0
vip-tiernull
worlds[ ]

Lista vuota = tutti i mondi.

Cooldown
cooldown"once"

"once" = riscattabile una volta sola, per sempre.

cooldown-modeDURATION
DURATION = N ore dopo l'ultimo riscatto
DAILY    = si azzera a mezzanotte (vedi modules/kits.yml -> timezone)

WEEKLY | MONTHLY

max-claims-1

-1 = riscatti illimitati

respect-vip-multipliertrue
cost1 chiave
amount0
full-inventoryQUEUE

Cosa fare quando l'inventario è pieno: DROP | QUEUE | CANCEL

Contenuto
items
["STONE_SWORD 1", "STONE_PICKAXE 1", "STONE_AXE 1", "STONE_SHOVEL 1", "COOKED_BEEF 16", "TORCH 32", { material: LEATHER_CHESTPLATE, amount: 1, slot: 38, name: "&6Corazza del Novizio", lore: […], enchantments: {…}, color …+5

Forma breve: "MATERIAL amount" Forma lunga: un blocco con name, lore, enchantments, slot, chance, ...

slot

38 = slot della corazza. Omettilo per usare il primo slot libero dell'inventario.

Ricompense extra
rewards3 chiavi
experience0
rewards.money1 chiave

Richiede un provider di economia (ShadowEconomy o Vault).

default0
rewards
commands[ ]
Feedback
feedback5 chiavi
message"&aBenvenuto! Hai ricevuto il kit &f<kit>."
title"<gradient:#00FF87:#60EFFF>KIT RICEVUTO</gradient>"
subtitle"&7Starter"
feedback.sound3 chiavi
name"ENTITY_PLAYER_LEVELUP"
volume0.8
pitch1.2
feedback
broadcastnull

Annuncia a tutto il server. null = nessun annuncio.

vips/

I gradi VIP, uno per file
3 file
plugins/ShadowEssentials/vips/

3 file con la stessa forma. Qui sotto quello più commentato, per intero, come modello; gli altri sono elencati per nome.

  • basic.yml
  • epic.yml
  • magic.yml

Esempio vips/basic.yml

Note del file

Testi in italiano: esempi/it_IT/vips/basic.yml - copialo al posto di questo file.

COLORI: si scrivono con &, come in Minecraft.
  &6 oro  &c rosso  &7 grigio  &#ff8800 colore esatto  &r reset

Solo i gradienti usano il tag, perché non si possono fare con &.

config-version1
enabledtrue
display-name"<gradient:#7FD8FF:#3BA7E0>BASIC</gradient>"
short-name"&b[BASIC]"
description
["&7The first step. What you need to be comfortable:", "&7more homes, less waiting, and flight at the spawn."]+1
iconIRON_INGOT
weight100
inheritsnull
next"magic"
permission"shadowessentials.vip.basic"
default-duration"30d"
grant1 chiave

Cosa eseguire quando il rango viene dato e tolto. Niente di default: i permessi li gestisce il tuo plugin dei permessi, e questi comandi sono il posto dove glielo dici.

commands[ ]
revoke1 chiave
commands[ ]
perks3 chiavi
perks.flags3 chiavi
fly.enabledtrue
chat.colorstrue
kits.preview-lockedtrue
perks.values3 chiavi
homes.limit5
back.history2
warps.player-limit1
perks.multipliers9 chiavi
teleport.cooldown-multiplier0.75
teleport.warmup-multiplier0.5
kits.cooldown-multiplier0.9
economy.cost-multiplier0.95
economy.gain-multiplier1.1
shop.price-multiplier0.95
crate.luck-multiplier1.05
minion.speed-multiplier1.1
skyblock.island-size-multiplier1.1
on-grant3 chiavi
message"<gradient:#7FD8FF:#3BA7E0>You are BASIC now. Thank you for your support!</gradient>"
broadcast"&7Welcome &f<player> &7to the <gradient:#7FD8FF:#3BA7E0>BASIC</gradient> &7rank!"
commands[ ]
expiry2 chiavi
reminders[7d, 3d, 1d, 6h, 1h]
expiry.on-expire1 chiave
message"&7Your BASIC rank has expired. &fThank you for supporting us."

Tutta la documentazione