Configurazione
ShadowControl
Un posto solo dove vedere cosa hai, cosa gira e cosa e' da aggiornare. E un pulsante che aggiorna tutto.
Dove sono i file
plugins/ShadowControl/ Il plugin li crea al primo avvio e li aggiorna da solo alle nuove versioni, senza toccare le tue modifiche.
Applicare le modifiche
/sctrl reload Rilegge i file senza riavviare il server.
Nessuna impostazione trovata
Prova con un’altra parola, oppure cerca in tutti i plugin.
Impostazioni
I file che decidono come si comporta il plugin. Si parte da qui.
config.yml
Impostazioni generali 52 impostazioni
config.ymlplugins/ShadowControl/config.yml Note del file
Il pannello che tiene insieme la suite Shadow. Ti dice cosa hai installato, cosa è in funzione, cosa va aggiornato, e aggiorna tutto con un pulsante.
Gli altri file sono:
catalog.yml la lista dei plugin della suite lang/<locale>.yml le parole menus/<name>.yml la disposizione dei pannelli
All'aggiornamento i tuoi file vengono portati automaticamente alla nuova versione: ciò che hai cambiato resta, le vecchie copie sono in backup/<date>/, e se qualcosa richiede la tua attenzione troverai PORTING-<version>.txt nella cartella del plugin.
Una nota sulla lingua. Ogni nome di impostazione e ogni commento in questo file è in inglese, perché un'impostazione la legge chi gestisce il server e queste persone vengono da ogni parte del mondo. Ciò che leggono i tuoi giocatori è un'altra faccenda: vive in lang/, è tradotto, e la lingua che servi di default è messages.default-locale qui sotto.
config-version1general1 chiaveserver-id"server-1"Il nome di questo server. Viene inviato al repository insieme alla licenza, così chi vende può distinguere un'installazione dall'altra. Non viene mai inviato niente sui tuoi giocatori.
Messaggi
Aggiungere una lingua = mettere un file in lang/. Viene rilevato da solo, nessuna impostazione da cambiare.
messages2 chiavidefault-locale"en_US"La lingua che ricevono tutti a meno che il loro client non ne chieda un'altra, e la lingua della console. Include en_US e it_IT: metti "it_IT" qui per un server italiano.
follow-client-localetrueOgni giocatore legge nella lingua impostata nel suo client, quando esiste un file per quella lingua. Disattivalo per servire una sola lingua a tutti.
I limiti. Non toglierli
Un comando che chiama un servizio a pagamento, aperto a chiunque entri, senza tetto, è una carta di credito lasciata sul bancone: la prima persona che scrive una macro la svuota in una notte. I limiti fermano tre cose diverse -- la macro, il giocatore insistente, e la somma di cento giocatori ragionevoli.
Continua a leggere
-1 toglie un limite. max-spend-per-day è in dollari e usa i prezzi scritti qui sotto: è una stima, non una fattura.
ai.limits4 chiavicooldown-seconds15per-player-per-day20per-server-per-day400max-spend-per-day5.0Claude (Anthropic)
Chiave: https://console.anthropic.com
ai.claude2 chiaviapi-key""model"claude-opus-5"OpenAI
Chiave: https://platform.openai.com
Tocca endpoint solo per usare un servizio che parla il Chat Completions di OpenAI (un proxy, un modello che fai girare tu).
ai.openai3 chiaviapi-key""model"gpt-4o-mini"endpoint""I prezzi, in dollari per milione di token
Servono a due cose: mostrare quanto stai spendendo in /sctrl ai, e far funzionare max-spend-per-day. Un modello che non è in questa lista funziona lo stesso, ma conta zero nella spesa -- meglio aggiungerlo che avere un tetto che non scatta mai.
Continua a leggere
ATTENZIONE: i prezzi cambiano. Questi sono di agosto 2026 e vanno verificati su:
Anthropic https://www.anthropic.com/pricing OpenAI https://openai.com/api/pricing
Quelli di Anthropic qui sotto sono verificati; quelli di OpenAI sono indicativi, quindi controlla la loro pagina prima di fidarti del tetto.
Per farti un'idea, con circa 3.000 token di contesto, una domanda breve e una risposta breve, 200 domande al giorno:
claude-haiku-4-5 ~25 dollari al mese gpt-4o-mini ~5 dollari al mese claude-sonnet-5 ~70 dollari al mese claude-opus-5 ~120 dollari al mese
Il prompt caching, che il plugin richiede da solo, taglia parecchio su tutti: il contesto è identico a ogni domanda ed è la parte più grossa.
ai.pricing7 chiaviAnthropic
ai.pricing.claude-opus-52 chiaviinput5.00output25.00ai.pricing.claude-sonnet-52 chiaviinput3.00output15.00ai.pricing.claude-haiku-4-52 chiaviinput1.00output5.00ai.pricing.claude-opus-4-82 chiaviinput5.00output25.00ai.pricing.claude-sonnet-4-62 chiaviinput3.00output15.00OpenAI (indicativi: controllali)
ai.pricing.gpt-4o2 chiaviinput2.50output10.00ai.pricing.gpt-4o-mini2 chiaviinput0.15output0.60Licenza
Un solo jar, due edizioni. Senza chiave gira in versione FREE: il pannello è completo, vedi cosa hai, cosa è in esecuzione, cosa va aggiornato, e aggiorni un plugin alla volta, fino a 3 plugin Shadow installati.
Continua a leggere
Con una chiave firmata gira in versione PREMIUM, che aggiunge quello che ti serve quando i plugin diventano tanti: il pulsante che li aggiorna tutti insieme, i controlli automatici, il download automatico, l'avviso agli admin quando entrano, e i riavvii automatici e i comandi programmati di automation.yml.
Come attivarla
Hai un CODICE d'acquisto (quello del marketplace):
/sctrl license claim <code>
Il server si presenta al servizio, che gli firma una licenza legata ai SUOI indirizzi. Un secondo, nessuna email da mandare.
Hai già una CHIAVE:
/sctrl license activate <key>
La chiave finisce in license.yml, non qui: così una richiesta di supporto che dice "mandami il tuo config" non arriva con dentro la licenza di qualcuno.
Se qualcosa non torna
Non succede mai niente di grave: il caso peggiore è tornare all'edizione gratuita, detto chiaramente in console. Il plugin non si spegne e non interrompe niente a metà.
Una licenza appena scaduta, o che non riconosce gli indirizzi di questo server, ha grace-days giorni di tolleranza prima di tornare alla versione free: quasi sempre è un rinnovo in arrivo o un proxy, non un furto.
license4 chiaviLA CHIAVE VIVE IN license.yml (stessa cartella di questo file), oppure nel file centrale plugins/ShadowControl/licenses.yml per tutta la suite. La 'key' qui sotto è solo un ripiego per i sistemi di deploy che generano config.yml: lasciala vuota.
La chiave NON vive qui: vive in license.yml, in questa cartella, che viene scritto al primo avvio (oppure in plugins/ShadowControl/licenses.yml per tutta la suite). La chiave, se preferisci scriverla a mano invece di usare il comando. Conta meno di license.yml, che è dove scrive il comando.
activation-url'https://shadow-licences.riccardobotins.workers.dev'Il servizio che trasforma un codice d'acquisto in una licenza. Indirizzo base: il plugin aggiunge da solo /claim e /check.
grace-days7Giorni di tolleranza prima di tornare alla versione gratuita.
resolve-public-iptrueChiedi al servizio licenze (activation-url + /ip) come si vede questo server da fuori: risponde con l'indirizzo che vede, e del server non viene inviato niente. È l'unico modo affidabile per conoscere il tuo indirizzo pubblico dietro un NAT, ed è ciò che fa funzionare una licenza venduta per un dominio su una macchina i cui indirizzi locali sono tutti 10.x. Solo con una licenza installata: un server senza chiave non chiede niente a nessuno. false = non chiedere mai.
server-address""L'indirizzo con cui pubblicizzi il server, se il plugin non riesce a ricavarlo da solo. Serve solo in configurazioni particolari.
Il catalogo
La lista dei prodotti vive in catalog.yml. Quel file è tuo e non viene mai sovrascritto, quindi i nuovi prodotti ti arrivano da soli: dal catalogo integrato nel jar, dal repository, e da ciò che è installato su questo server.
Continua a leggere
auto-discover: un plugin installato qui il cui nome inizia con "prefix" viene mostrato nel pannello anche se nessuno lo ha ancora descritto nel catalogo. Serve a non farti mai perdere un pezzo della suite. Mettilo a false se vuoi che il pannello mostri solo ciò che dice catalog.yml e nient'altro.
catalog2 chiaviauto-discovertrueprefix"Shadow"Da dove arrivano gli aggiornamenti
AUTO -> usa url se c'è, altrimenti folder; con entrambi vuoti,
il server di aggiornamenti di ShadowMC
(https://shadow-updates.riccardobotins.workers.dev/suite.json)
HTTP -> sempre il sito web
LOCAL -> sempre la cartella
OFF -> nessun controllo, il pannello mostra solo quello che haiContinua a leggere
Sito web (url)
Un file JSON che elenca l'ultima versione di ogni plugin. Il formato è in docs/04-REPOSITORY.md, con un esempio pronto. Usa https: con http, chiunque stia in mezzo può sostituire il file che stai scaricando.
Cartella (folder)
Una cartella piena di jar. Un disco di rete, una chiavetta USB, la cartella in cui compili: va bene qualsiasi. Il pannello apre ogni jar, gli chiede che plugin è e che versione contiene, e tiene la più recente. Non può essere la cartella plugins del server stesso.
Esempi: folder: "C:/ShadowSuite/releases" folder: "/home/mc/suite-releases"
repository6 chiavimodeAUTOurl""folder""license-key""La chiave che ti ha dato lo shop, per i plugin a pagamento. Viaggia come header Authorization, mai dentro l'indirizzo.
timeout"15s"Quanto aspettare una risposta prima di rinunciare.
max-download-mb200Un limite di sicurezza per ogni singolo file scaricato.
Controlli automatici
check3 chiavion-starttrueCerca novità cinque secondi dopo l'avvio.
interval"6h"Ogni quanto ricontrollare. "0" per non controllare mai da solo.
notify-adminstrueAvvisa in chat chi ha shadowcontrol.notify quando entra e c'è qualcosa da aggiornare. L'avviso arriva con i pulsanti pronti.
Aggiornamenti
Come funziona, in breve: il nuovo file non viene mai scritto sopra un plugin in funzione. Finisce nella cartella che il server legge all'avvio (plugins/update), ed è il server stesso a scambiarli quando si riavvia. Per questo dopo un aggiornamento serve un riavvio, e per questo un aggiornamento non può rompere un plugin mentre sta lavorando.
updates3 chiaviauto-downloadfalsetrue -> quando un controllo automatico trova qualcosa, lo scarica e
lo lascia in attesa del riavvio
false -> non scarica niente finché non premi il pulsanteallow-restartfalseRiavvii a mano: il pulsante nel pannello e /sctrl restart now, in e at. I riavvii automatici hanno il loro interruttore in automation.yml. ATTENZIONE: il server torna su da solo solo se qualcosa lo fa ripartire (un loop nel tuo file di avvio, il restart-script di spigot.yml, il tuo pannello). /sctrl restart setup ti dice cosa ha questo server; senza niente resta semplicemente spento.
restart-delay-seconds10Il conto alla rovescia di "riavvia ora", in secondi: chat, title, action bar, boss bar e suoni come impostati in automation.yml, nella lingua di ogni giocatore.
bStats - statistiche d'uso anonime (https://bstats.org)
Cosa viene inviato, ogni 30 minuti: che questo server usa ShadowControl, le versioni del plugin, di Minecraft/Paper e di Java, il sistema operativo, il numero di core della CPU, quanti giocatori sono online (un numero, nient'altro), un serverUuid casuale che non identifica niente, e l'edizione in uso (free, premium o creator). Nessun dato dei giocatori lascia il server: niente nomi, niente UUID, niente indirizzi, e nemmeno la lista dei plugin che hai installato.
Continua a leggere
false lo disattiva solo per questo plugin. enabled: false in plugins/bStats/config.yml lo disattiva per ogni plugin su questo server in una volta.
metrics1 chiaveenabledtrue automation.yml
Automation 49 impostazioni
automation.ymlplugins/ShadowControl/automation.yml Note del file
Riavvii automatici e comandi programmati.
L'UNICA COSA DA LEGGERE. Un riavvio è uno stop seguito da un avvio, e l'avvio non tocca a noi: qualcosa fuori dal server lo deve riportare su - lo script di restart di spigot.yml, un loop nel tuo file di avvio, il tuo pannello, un gestore di servizi. Vedi "method". /sctrl restart setup ti dice cosa ha questo server, e quando niente lo riporterebbe su, i riavvii AUTOMATICI vengono rifiutati: la console e il pannello lo dicono in rosso.
Edizione gratuita: riavvii a mano (/sctrl restart now | in | at) con tutto il countdown, cancel, delay, simulate, setup e /nextrestart. Tutto ciò che succede da solo - la programmazione, i riavvii per uptime, per server vuoto e per salute, i rinvii, i comandi prima e dopo, il proxy, i task - è Premium. Senza licenza questo file resta com'è e inizia a funzionare il giorno in cui ne attivi una.
Durate: 30s, 5m, 2h, 1d. Gli orari usano "timezone". Prova tutto senza fermare niente: /sctrl restart simulate 1m
config-version1enabledtruetimezone"system""system" = il fuso orario della macchina, stampato all'avvio. Un server ospitato in Germania per giocatori italiani è la solita sorpresa: scrivilo per esteso.
e.g. "Europe/Rome"
restart11 chiavienabledtruemethodAUTOAUTO | SCRIPT | STOP | PTERODACTYL
SCRIPT si ferma ed esegue restart-script di spigot.yml
STOP si ferma; qualcos'altro lo riavvia (un loop nel tuo
file di avvio, systemd con Restart=always, Docker con una
restart policy, un pannello che riavvia i server fermi)
PTERODACTYL chiede al tuo pannello di riavviarlo (panel.yml, Premium)
AUTO il primo che funziona. Con AUTO e niente che
riporti su il server, i riavvii AUTOMATICI vengono rifiutati
e la console dice perché: un "riavvio" alle 5 di mattina che si limita a
fermare è il risultato peggiore che ci sia. Scrivi STOP se
sai che qualcosa lo riavvia e il plugin non lo vede.schedule[ ]Quando. Vince la riga più vicina.
"daily 05:00" ogni giorno "mon,thu 04:30" in quei giorni (funziona anche "sat-sun 03:00") "every 6h" contando dall'avvio del server "cron 0 4 * * *" minuto ora giorno mese giorno-della-settimana
Un orario che non esiste nel giorno in cui inizia l'ora legale avviene un'ora dopo; uno che esiste due volte quando finisce avviene una volta sola. Vuoto apposta: niente si riavvia da solo finché non scrivi una riga, per esempio
schedule: - "daily 05:00"
max-uptime"0"Anche dopo questo tempo di attività. "0" = mai.
restart.when-empty3 chiaviRiavvia appena non c'è nessuno online, se è acceso da almeno questo tempo, dentro la finestra. Un conto alla rovescia breve, annullato se entra qualcuno. after-uptime "0" = spento.
after-uptime"0"window"02:00-08:00"countdown"30s"restart.health8 chiaviQuando il server sta male per un po'.
enabledfalsetps-below15.0mspt-above00 = not checked
memory-above-percent90Heap della old generation ancora in uso DOPO la garbage collection, in %. Il valore dell'heap da solo va a dente di sega tutto il giorno e non significa niente.
for"5m"min-uptime"1h"max-per-day2Un server che continua a guastarsi ha bisogno di una persona, non di un loop. -1 = nessun limite, 0 = non riavviare mai per lo stato di salute.
countdown"5m"Quanto preavviso ricevono i giocatori.
Su Folia non c'è un TPS unico: lì funziona solo la regola sulla memoria.
restart.postpone5 chiaviif-players-above0Solo riavvii programmati e automatici: uno digitato a mano non viene rinviato. 0 = non rinviare mai per i giocatori.
by"15m"max-times2Dopo questo numero di rinvii riavvia comunque: un server che non si riavvia mai perché c'è sempre qualcuno connesso è proprio il problema per cui è stata scritta la programmazione.
wait-for-matchestrueShadowGames: lascia finire le partite in corso, fino a max-wait.
max-wait"10m"restart.countdown7 chiavimarks[30m, 15m, 10m, 5m, 1m, 30s, 10s, 5s, 4s, 3s, 2s, 1s]+9
I momenti in cui viene detto qualcosa. Il più lungo è quando parte il conto alla rovescia di un riavvio programmato.
chat[30m, 15m, 10m, 5m, 1m, 30s, 10s]title[1m, 10s, 5s, 4s, 3s, 2s, 1s]actionbar[30s, 10s, 5s, 4s, 3s, 2s, 1s]restart.countdown.bossbar3 chiavifrom"5m"colorREDPINK BLUE RED GREEN YELLOW PURPLE WHITE
overlayNOTCHED_10PROGRESS NOTCHED_6 NOTCHED_10 NOTCHED_12 NOTCHED_20
restart.countdown.sound4 chiaviname"BLOCK_NOTE_BLOCK_PLING"volume1.0pitch1.0at[1m, 10s, 3s, 2s, 1s]restart.countdownuse-shadowannouncementAUTOCon ShadowAnnouncement installato parla il suo template "restart": una sola voce per ogni annuncio. AUTO | ALWAYS | NEVER
Le parole sono in lang/<language>.yml, sotto automation.restart, ogni giocatore nella sua lingua.
restart.before1 chiaveComandi da console a un certo tempo prima del riavvio. Un comando il cui tempo è già passato quando parte il conto alla rovescia (un riavvio chiesto con dieci secondi) viene eseguito subito.
1m[save-all]restartproxy-send-to""Manda i giocatori a questo server della tua rete invece di espellerli (canale BungeeCord; su Velocity attiva bungee-plugin-message-channel). "" = kick, con il messaggio in lang/.
restart.after-start2 chiaviComandi da console dopo il prossimo avvio, una volta che il server è su. Solo dopo un riavvio fatto da questo plugin, mai dopo un crash.
delay"30s"commands[ ]tasks1 chiavetasks.example-reminder6 chiaviUn blocco per task; il nome lo scegli tu. Il pannello può accendere e spegnere un task ed eseguirlo subito, ma i comandi si scrivono solo qui.
enabledfalsewhen["every 30m"]Stesse forme della programmazione dei riavvii. Vuoto = solo a mano (/sctrl tasks run <name>).
tasks.example-reminder.conditions5 chiavimin-players5max-players-1-1 = no maximum
min-tps17.00 = not checked
days[ ]empty = every day; e.g. [ SAT, SUN ]
between""e.g. "10:00-23:00"
tasks.example-reminderrun["broadcast: lang:automation.example.reminder"]console: <command> una volta, come console each-player: <command> una volta per ogni giocatore online, <player> = nome broadcast: <text> MiniMessage, oppure lang:<key> per i testi di lang/
randomfalsetrue = esegue UNA riga scelta a caso invece di tutte.
missedSKIPUn orario saltato mentre il server era spento: SKIP | RUN_ONCE
catalog.yml
Il catalogo della suite 24 impostazioni
catalog.ymlplugins/ShadowControl/catalog.yml Note del file
L'elenco dei prodotti della suite. Questo file dice al pannello COSA esiste; se un plugin è installato lo capisce da solo guardando la cartella plugins.
Aggiungere un prodotto = aggiungere una voce qui. Non serve un jar nuovo.
All'aggiornamento questo file viene portato da solo alla nuova versione: quello che hai scritto resta, i prodotti nuovi vengono aggiunti, e una voce che hai cancellato resta cancellata. La copia vecchia è in backup/<date>/; se qualcosa richiede la tua attenzione troverai PORTING-<version>.txt nella cartella del plugin. I prodotti che mancano qui arrivano comunque al pannello, da tre posti:
- il catalogo integrato nel jar, per le voci che mancano qui - il repository, se annuncia un prodotto che non conosciamo - il server stesso: un plugin che si chiama Shadow-qualcosa ed è installato qui viene mostrato anche se nessuno l'ha descritto (lo spegni con catalog.auto-discover in config.yml)
Campi:
name il nome esatto dentro il jar del plugin.
DEVE corrispondere: è la chiave con cui riconosciamo cosa
ha caricato il server.
display come lo leggi nel pannello
tier CORE, FREE, FREEMIUM (gratis, con un'edizione Premium
sbloccata da una chiave) o PREMIUM. Solo informativo.
icon un materiale di Minecraft
command il comando principale del plugin, per il pulsante "apri" sulla
scheda. Lascialo vuoto se non ne ha.
description due o tre righe, quelle che si leggono nel pannello, in
inglese: chi legge in una lingua che non ha
righe sue qui sotto riceve queste
description-it le stesse righe in italiano, per chi legge il
pannello in italiano. Ogni lingua funziona allo stesso modo:
description-de, description-fr, ...
display-it il nome in italiano, solo dove il nome è fatto di parole
formerly i nomi che il plugin aveva prima di essere rinominato. Un jar
che dichiara ancora uno di questi è questo prodotto in una
versione più vecchia, e aggiornarlo installa il nome nuovo.Nomi e descrizioni sono ciò che legge un amministratore, quindi puoi scriverli nella tua lingua. Se riscrivi una description e lasci la sua description-it com'è di fabbrica, il tuo testo viene mostrato a ogni lettore, qualunque sia la sua lingua. Tutto il resto qui è un'impostazione.
config-version1plugins21 chiaviplugins.shadowcontrol7 chiavinameShadowControldisplay"ShadowControl"tierFREEMIUMGratis, con un'edizione Premium sbloccata da una chiave.
iconCOMPARATORcommand"/sctrl"description["The panel you are looking at.", "It holds the whole suite together."]+1
description-it["Il pannello che stai guardando.", "Tiene insieme tutta la suite."]+1
plugins.shadowessentials8 chiavinameShadowEssentialsformerly[ShadowBasics]Fino alla 1.0.1 si chiamava ShadowBasics.
display"ShadowEssentials"tierCOREiconNETHER_STARcommand"/se"description["The heart of the suite: homes, warps, kits,", "VIP, chat and the everyday commands."]+1
description-it["Il cuore della suite: case, warp, kit,", "VIP, chat e i comandi di ogni giorno."]+1
shadowcontrol:
shadowpermissions, shadoweconomy, shadowregions, shadowoptimizer, shadowcommand, shadowspawners, shadowcrazychest, shadowskyblock, shadowoneblock, shadowacidisland, shadowbattlepass, shadowquests, shadowminions, shadowcustomizer, shadowcustomizermodels, shadowlogin, shadowblocker, shadowgamesplugins.shadowedit8 chiavinameShadowEditformerly[ShadowWorldEdit, ShadowCreator]Fino alla 1.0.2 si chiamava ShadowCreator (e ShadowWorldEdit nelle build di test).
display"ShadowEdit"tierFREEMIUMiconBRUSHcommand"/shadowedit"description["The world editor and the generator.", "WorldEdit and Iris, in a single jar."]+1
description-it["L'editor di mondi e il generatore.", "WorldEdit e Iris, in un jar solo."]+1
panel.yml
Il pannello 3 impostazioni
panel.ymlplugins/ShadowControl/panel.yml Note del file
ShadowControl - panel.yml. Tenuto fuori da config.yml apposta: una richiesta di supporto che dice "mandami il tuo config" non deve portarsi dietro la chiave del tuo pannello. Scritto una volta e poi è tuo: gli aggiornamenti non lo toccano mai.
Compilalo e il metodo di riavvio AUTO chiede al tuo pannello Pterodactyl di riavviare il server (Premium): il modo più pulito su un server in hosting.
pterodactyl3 chiaviapi-key""a CLIENT key (ptlc_...): Account -> API Credentials
server""the short id in the panel address of this server
Lingue
I testi che il plugin mostra ai giocatori, un file per lingua.
lang/
Testi e messaggi 2 file
lang/plugins/ShadowControl/lang/ Note del file
Formato MiniMessage. I placeholder si scrivono <like-this>. Questo file è l'ultimo ripiego: ogni chiave che manca ovunque altrove viene cercata qui, una chiave alla volta.
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.
| File | Lingua | Testi |
|---|---|---|
lang/en_US.yml riferimento | English | 654 |
lang/it_IT.yml | Italiano | 654 |
Segnaposto più usati
Il plugin li sostituisce con il valore giusto: vanno lasciati scritti così.
<prefix><n><time><v><id><s><plugin><file><t><when><task><label><reason><p>
Gruppi di messaggi
prefix1command38confirm14update42notify6license31ai24ticket13list3plugin-status8info46status1changelog2menu238plugin-tier4update-phase7ticket-status4format3automation169
Altro
Contenuti pronti, esempi, importazioni: i file che si copiano e si modificano come modello.
ai/
L’assistente e i suoi pacchetti 20 file
ai/plugins/ShadowControl/ai/ 20 file con la stessa forma. Qui sotto 2 esempi per intero, uno per ogni forma diversa; gli altri sono elencati per nome.
assistant.ymlpacks/shadowacidisland.ymlpacks/shadowbattlepass.ymlpacks/shadowblocker.ymlpacks/shadowcommand.ymlpacks/shadowcontrol.ymlpacks/shadowcrazychest.ymlpacks/shadowcustomizer.ymlpacks/shadoweconomy.ymlpacks/shadowessentials.ymlpacks/shadowgames.ymlpacks/shadowlogin.ymlpacks/shadowminions.ymlpacks/shadowoneblock.ymlpacks/shadowoptimizer.ymlpacks/shadowpermissions.ymlpacks/shadowquests.ymlpacks/shadowregions.ymlpacks/shadowskyblock.ymlpacks/shadowspawners.yml
Esempio ai/assistant.yml
Note del file
Cosa sa l'assistente del TUO server.
Questo file è l'unico che scrivi tu: i pack in packs/ arrivano già pronti, questo no, perché nessuno sa com'è il tuo server tranne te.
Più è preciso, meglio risponde, e meno inventa.
Un consiglio: scrivi le cose che ti chiedono di continuo. Se qualcuno ti chiede come diventare VIP tutte le sere, mettilo qui e smetteranno di chiederlo a te.
Scrivilo nella lingua che parlano i tuoi giocatori: questo è materiale per le risposte, non un'impostazione.
server| This is a Minecraft server with the Shadow suite installed. ⏎ What you really know about this server is in the plugin packs that ⏎ arrive together with the question: those are the real commands here, and ⏎ they are th …La storia del server, in prosa. Quello che racconteresti a qualcuno che entra oggi.
Continua a leggere
Ciò che è scritto qui sotto funziona dal primo minuto: dice ciò che è vero di qualsiasi server che usa questa suite, e dice all'assistente di ammettere ciò che non sa invece di inventarlo. Niente qui è un segnaposto, quindi lasciarlo così com'è non ti costa niente.
Riscriverlo resta comunque l'ora migliore che puoi dedicare all'assistente. Cosa vale la pena aggiungere, in ordine di quanto spesso viene chiesto:
- il nome del server e che tipo di server è (survival, skyblock, minigiochi, roleplay) - le regole per cui la gente viene davvero punita - come si diventa VIP, o come si sale di rank - cosa NON ha questo server: metà delle risposte sbagliate nascono da qualcosa che viene spiegato e che qui non esiste - dove si segnalano i problemi seri, e cosa fate al riguardo - gli orari degli eventi, e quando si resetta la mappa
style""Una riga in più sul tono, se ti serve. Lascia vuoto per il tono normale.
Esempio ai/packs/shadowacidisland.yml
Note del file
Pack di prompt per ShadowAcidIsland.
Entra in gioco solo se ShadowAcidIsland è installato su questo server, e solo quando il router decide che la domanda riguarda questo argomento. È esattamente a questo che servono le keywords: mettici le parole che usano davvero i tuoi giocatori.
I comandi qui sotto sono quelli reali del plugin. Se ne cambi uno, cambialo anche qui: l'assistente non li scopre da solo, e un comando sbagliato detto con sicurezza è peggio di un "non lo so".
idshadowacidislandpluginShadowAcidIslandsummary"The AcidIsland mode: an ocean that burns, the acid tide the whole server lives through together, and the purifier that pushes the acid back."keywords[acidisland, "acid island", acid, ocean, sea, tide, purifier, "water purifier", burns, "it burns me", "the water hurts", island, "my island", storm, "how not to die"]+12
Come chiamano davvero queste cose i tuoi giocatori.
commands["/island - opens the island panel (alias /is, /sis)", "/island create - creates your island", "/island home - takes you back to your island", "/island sethome - moves the island's arrival point", "/island visit <player …+26
I comandi reali, esattamente come si digitano.
howto| The difference to explain first is this: it is not the void, it is an OCEAN, ⏎ and that ocean burns. Anyone who ends up in the water takes damage. It is the ⏎ number one question from new players ("why does the water …