Configurazione
ShadowLogin
Registrazione, password, sessioni, dispositivo fidato, verifica in due passaggi, antibot.
Dove sono i file
plugins/ShadowLogin/ Il plugin li crea al primo avvio e li aggiorna da solo alle nuove versioni, senza toccare le tue modifiche.
Applicare le modifiche
/shadowlogin 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 111 impostazioni
config.ymlplugins/ShadowLogin/config.yml Note del file
Ogni valore qui contiene già il numero giusto per un server normale: puoi mettere il jar e non aprire mai questo file. Quando hai davvero bisogno di cambiare qualcosa, il commento sopra ogni chiave dice COSA fa e, cosa ancora più importante, PERCHÉ è impostata così.
Un valore sbagliato non blocca mai il plugin: al suo posto si usa il predefinito e la console stampa il percorso e cosa ci si aspettava.
Con un aggiornamento i tuoi file vengono portati automaticamente alla nuova versione: ogni valore che hai cambiato viene riportato, le nuove opzioni arrivano con i loro commenti, i file vecchi vengono tenuti in backup/<date>/, e se qualcosa richiede la tua attenzione troverai PORTING-<version>.txt nella cartella del plugin.
Le durate si scrivono in testo semplice: 500ms, 20t (tick), 30s, 5m, 2h30m, 7d. Un numero da solo indica i secondi.
Questo file è in inglese apposta - chiavi, sezioni e commenti - così che un server in qualunque parte del mondo legga la stessa configurazione. Solo ciò che vede un giocatore viene tradotto, e quello sta in lang/.
config-version6Licenza
ShadowLogin è un plugin Premium: non esiste un'edizione gratuita. Senza una licenza valida all'avvio NON gira - niente database, niente login, nient'altro che i comandi della licenza qui sotto - e lo dice in console. Attiva la licenza, poi riavvia il server.
Continua a leggere
Finché non gira, un server che non verifica da sé i giocatori (offline mode, senza un proxy in online mode che gli inoltri le connessioni) RIFIUTA OGNI CONNESSIONE: senza il suo plugin di login chiunque potrebbe entrare con qualsiasi nome, compreso quello di un operatore. In online mode, o dietro un proxy in online mode, i giocatori entrano normalmente.
Una licenza che smette di valere mentre il server è acceso non ferma mai il plugin a metà sessione: chiuderebbe fuori tutti o farebbe entrare tutti. La sessione va avanti, e la console dice che ShadowLogin non partirà al prossimo riavvio.
Normalmente qui non tocchi nulla: una chiave si attiva in gioco con
/shadowlogin license claim <purchase-code> /shadowlogin license activate <key>
e viene scritta in license.yml, che sta fuori da questo file apposta: una config si manda al supporto, una licenza no.
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 sta qui: sta in license.yml, in questa cartella, creato al primo avvio (oppure in plugins/ShadowControl/licenses.yml per tutta la suite). Solo se preferisci tenerla qui invece che in license.yml. Funzionano anche la variabile d'ambiente SHADOWLOGIN_LICENSE e la proprietà di sistema -Dshadowlogin.license=... .
grace-days7Giorni di tolleranza, con funzionamento normale, prima che la licenza smetta di valere quando un abbonamento scade o quando l'indirizzo del server non corrisponde alla licenza. Un rinnovo è quasi sempre già stato avviato, e un indirizzo che smette di corrispondere è molto più spesso un NAT che un ladro.
server-ip""L'indirizzo con cui è conosciuto questo server, se lo sai. Dietro un proxy la macchina non vede mai il proprio dominio, e questa riga è l'unico modo per dirglielo senza chiamare nessuno.
resolve-public-iptrueUna chiamata all'avvio al servizio licenze (activation-url + /ip) per scoprire l'indirizzo pubblico di questo server: dietro NAT è l'unico modo per riconoscerlo. Solo con una licenza installata: un server senza chiave non chiede niente a nessuno. false = non chiedere mai.
activation-url'https://shadow-licences.riccardobotins.workers.dev'Servizio di attivazione. Questo è l'indirizzo BASE: il plugin aggiunge da solo /claim e /check. Vuoto significa verifica completamente offline.
Sicurezza
La parte che non si cambia alla leggera. I valori predefiniti vanno bene per il novanta per cento dei server; ogni volta che ne abbassi uno stai scambiando sicurezza con comodità, e il commento ti dice quanto costa.
security7 chiavisecurity.hash2 chiavicost12Il fattore di costo di BCrypt. Ogni +1 RADDOPPIA il tempo necessario.
Continua a leggere
10 -> circa 60 ms un po' scarso nel 2026 12 -> circa 250 ms il valore consigliato 14 -> circa 1 secondo per pochi giocatori e molta preoccupazione
Il tempo lo paga chi fa login (una volta) e chi attacca (per ogni singolo tentativo, moltiplicato per milioni). È tutto qui il motivo per cui qui non si usa SHA-256: è veloce, e "veloce" è esattamente il regalo che non vuoi fare a chi ruba un database.
ATTENZIONE su un server con centinaia di connessioni al minuto: l'hashing gira fuori dal thread di gioco, quindi non ti costa mai tick, ma occupa un thread per tutto il tempo che dura. Sopra 13, su un server molto trafficato, misura.
rehash-on-logintrueQuando alzi il costo qui sopra, gli account esistenti hanno ancora il vecchio hash. Con questa opzione ogni password viene ricalcolata al nuovo costo al prossimo login del suo proprietario: nessuno deve fare niente, e in pochi giorni tutto il database è aggiornato.
Non funziona mai al contrario: se abbassi il costo, gli hash più robusti restano come sono.
security.password5 chiavimin-length6Lunghezza minima. Sei è il compromesso onesto per un server Minecraft: sotto viene indovinata, sopra la gente la scrive su un post-it o ne riusa una di un altro sito.
max-length64Il massimo NON è severità: BCrypt guarda solo i primi 72 byte, quindi oltre quel punto i caratteri smettono di contare. Il plugin lo dice invece di lasciartelo scoprire il giorno in cui cambi la fine di una frase molto lunga e quella vecchia funziona ancora.
require-letter-and-digitfalseRichiede una lettera E una cifra. Disattivato di default, e non è una svista: le regole complicate producono password peggiori ("Marco1", "Password1") e non fermano nessuno. Se lo attivi, sappi cosa hai comprato.
forbid-name-as-passwordtrueVieta una password identica al nome del giocatore. Questa sì, perché è la prima cosa che prova chiunque.
forbidden[password, 123456, 12345678, qwerty, minecraft, abc123, 111111, letmein, iloveyou]+6
Password che non si possono usare. Sono le prime voci di qualsiasi dizionario: bloccarle non costa nulla ed elimina metà dei furti di account su un server Minecraft.
Aggiungi il nome del tuo server: è sempre nella lista di un attaccante.
security.attempts7 chiavimax5Quanti tentativi prima di essere espulsi. Cinque è generoso per chi ha davvero sbagliato a digitare e stretto per chi tira a indovinare.
window"10m"Dopo quanto tempo un errore viene dimenticato. Chi ha sbagliato una volta il mese scorso non dovrebbe portarselo dietro.
backoff-base"5s"L'attesa dopo il primo errore, che poi RADDOPPIA a ogni errore successivo: 5s, 10s, 20s, 40s... fino al tetto qui sotto.
Continua a leggere
Questa è la difesa che conta davvero. Un limite fisso di cinque tentativi si aggira aspettando il reset; un'attesa che raddoppia porta un dizionario da tre tentativi al secondo a tre all'ora, cioè un attacco che non finisce mai.
I tentativi si contano per INDIRIZZO e per NOME, entrambi. Contare solo il nome lascia passare chi prova "123456" su mille nomi diversi; contare solo l'indirizzo lascia passare una botnet su un solo account.
backoff-max"10m"lock-after10Dopo quanti errori l'account viene bloccato del tutto, e per quanto tempo.
lock-duration"30m"kick-on-maxtrueSe espellere chi ha esaurito i tentativi. Attivo: chi sta indovinando password deve riconnettersi ogni volta, e riconnettersi passa per i limiti dell'antibot.
securitylogin-timeout"60s"Quanto tempo c'è per fare login prima di essere espulsi. Serve soprattutto contro chi apre connessioni e le lascia lì a occupare uno slot.
reminder-every"5s"Ogni quanto ricordare a chi aspetta cosa deve fare. Cinque secondi bastano per farsi notare senza diventare fastidiosi.
clear-chat-after-authtrueDopo il login, spinge fuori dallo schermo ciò che è stato scritto.
ONESTAMENTE: nessun plugin può cancellare la cronologia locale del client - la freccia su riporterà comunque il comando scritto, ed è un limite del gioco, non una svista. Questo toglie subito la riga dalla vista, così non resta lì mentre qualcuno guarda lo schermo.
Se la cosa ti preoccupa davvero, la risposta è login.input: GUI: con il tastierino a schermo la password non passa mai per la chat.
clear-chat-lines30Account ufficiali (Mojang / Microsoft)
La funzione per cui esiste questo plugin. Leggi almeno i primi due paragrafi prima di cambiare qualcosa qui sotto.
Continua a leggere
LA DOMANDA GIUSTA. Non è "questo nome appartiene a un account comprato?" - questo non dice nulla su chi sta bussando adesso, e far entrare senza password chiunque scriva un nome ufficiale significherebbe consegnare ogni account comprato del server. La domanda giusta è: "questa sessione è GIÀ stata autenticata da Mojang?"
A cui si può rispondere con i fatti, senza toccare un solo pacchetto:
1. il server è in online-mode -> sì, l'ha fatto il server; 2. l'UUID della sessione è quello vero di Mojang per quel nome -> allora arriva da monte, cioè dal proxy che ha autenticato la persona, perché un client non può sceglierselo da solo.
IL CASO 2 DIPENDE DA COME È CONFIGURATO IL TUO NETWORK. Se l'inoltro dell'identità dal proxy non è protetto (porta del server aperta al mondo, o il vecchio forwarding di BungeeCord senza un segreto condiviso), chiunque può connettersi direttamente e dichiarare l'UUID che vuole. Non è un difetto di questo plugin e nessun plugin può ripararlo dall'interno: è un server che si può aggirare. Imposta trust-proxy-authentication: false se non sei sicuro del tuo network.
Identità - leggi questo capitolo per intero
Su un server che accetta anche account non ufficiali, LO STESSO NOME PUÒ ARRIVARE CON DUE UUID DIVERSI. Chi ha comprato il gioco porta con sé l'UUID di Mojang; chi non l'ha fatto ne riceve uno calcolato dal nome, e i due non coincidono mai.
Continua a leggere
Minecraft tiene inventario, progressi, posizione e tutto il resto PER UUID. Sbagliare questa impostazione significa dare l'inventario di un giocatore a un altro. Non è un caso da manuale: è esattamente quello che succede a chi un giorno mette un proxy davanti al proprio server.
UUID (predefinito)
Un account per UUID. Il "Marco" ufficiale e il "Marco" non ufficiale sono due account separati, con due password e due inventari - che è anche quello che farà comunque il server, così il plugin non racconta una storia diversa da quella vera. Da solo non basta: è premium.protect-names che impedisce al secondo dei due di nascere.
NAME
Un account per nome, come AuthMe e come quasi ogni server esistente. L'UUID visto alla registrazione viene comunque salvato, e se un giorno ne arriva un altro con lo stesso nome, si applica on-uuid-mismatch qui sotto.
Se stai importando da AuthMe, NAME è quello che ti aspetti. Se stai partendo da zero, lascia UUID.
identity3 chiavimodeUUIDUna persona, un'identità - leggi qui se il tuo server è misto
identityunify-uuid"OFF"IL PROBLEMA, con l'esempio che succede davvero. Marco entra con il gioco originale, riceve l'UUID di Mojang e costruisce un'isola. Il giorno dopo entra da un client non ufficiale con lo stesso nome: quell'UUID è diverso, quindi per il server è UN'ALTRA PERSONA. Nuova isola, inventario vuoto, niente soldi. Marco non capisce, e ha ragione a non capire: è sempre Marco.
Continua a leggere
La cosa importante da capire è che questo non è un problema di login. L'isola, l'inventario, i soldi e i permessi sono gestiti da ALTRI plugin, e ognuno di loro si basa sull'UUID. Quindi non basta che questo plugin tenga in ordine casa propria - tutto il server deve vedere un solo UUID. È questo che fa questa impostazione, ed è l'unico punto in cui ShadowLogin cambia qualcosa che non è suo.
OFF = non cambia nulla (predefinito). Ufficiale e non ufficiale restano due
persone diverse, con due account, due isole e due
inventari - che è anche quello che farebbe il server
da solo. Giusto per un server in cui i due non si mescolano mai.OFFLINE = tutti ricevono l'UUID calcolato dal nome, compresi i
giocatori ufficiali. CONSIGLIATO su un server misto, e il
motivo è che non dipende da nessuno: quell'UUID si
ricava dal nome con un calcolo, sempre lo stesso,
senza chiedere niente a nessun servizio. Un UUID che cambia
perché Mojang è stato giù cinque minuti è un'isola persa.PREMIUM = tutti ricevono il vero UUID di Mojang, quando il nome ne ha uno.
Per i server che hanno già dati creati in online-mode
e non vogliono perderli. Costa una dipendenza: se
Mojang non risponde per un nome mai visto prima, il
plugin NON tira a indovinare - rifiuta la connessione con
"riprova tra un minuto". Far entrare qualcuno con
l'UUID sbagliato non è un fastidio come riscrivere una
password: è finire sull'isola di nessuno e costruirci
sopra.ATTENZIONE se il server ha già dei dati. Attivarla significa che le persone ricevono un nuovo UUID, e tutto ciò che è salvato sotto quello vecchio resta dov'è e smette di essere raggiungibile. Su un server nuovo non c'è nulla di cui preoccuparsi. La console lo segnala a chiare lettere all'avvio.
E UNA COSA CHE VA DI PARI PASSO: con gli UUID unificati, un account nato da un login ufficiale non ha ancora una password, e senza password non c'è modo di entrare da un client non ufficiale. È voluto - è ciò che impedisce a un estraneo di reclamare il nome. Il proprietario entra con il gioco originale una volta e imposta una password con /changepassword; da lì in poi entrambi i client aprono lo stesso account, con la stessa isola. Il plugin glielo dice da solo la prima volta.
Tra virgolette apposta. In YAML, OFF e ON non sono parole: sono booleani. Il plugin capisce comunque entrambe le scritture - ritraduce un booleano nella parola che hai scritto - ma le virgolette dicono cosa intendevi, e mantengono il file leggibile da qualsiasi altra cosa lo analizzi.
on-uuid-mismatchDENYCosa fare quando il nome è giusto ma l'UUID no.
DENY = rifiuta la connessione e lo scrive in console
(consigliato: è esattamente il caso pericoloso)
ASK_PASSWORD = lascia provare con la password, senza nessuna scorciatoia
(utile mentre stai cambiando la configurazione del network e
sai cosa stai facendo)
ALLOW = adotta il nuovo UUID come quello dell'account
(solo per una migrazione, e solo per il tempo necessario)Sessione
Chi si riconnette dallo stesso indirizzo entro N minuti non riscrive la password. Questa è la funzione che decide se il tuo plugin di login è amato o odiato: senza, chiunque abbia una connessione ballerina scrive la password dieci volte a sera.
session3 chiavienabledtrueduration"30m"Quanto dura. Mezz'ora copre una disconnessione, un riavvio del server e un salto tra server in un network; diverse ore iniziano a essere una vera finestra per chi si siede al computer di un'altra persona.
require-same-iptrueLega la sessione all'indirizzo. Lascialo attivo: senza, una sessione sarebbe valida da qualunque parte del mondo, e a quel punto la password servirebbe esattamente una volta, per sempre.
Continua a leggere
ATTENZIONE - ed è il vero limite di qualsiasi sessione legata all'indirizzo: se due persone condividono lo stesso indirizzo pubblico (la stessa casa, la stessa scuola, o una rete mobile, dove migliaia di utenti escono da un solo indirizzo) allora dentro la finestra della sessione una può entrare con il nome dell'altra senza scrivere nulla.
Non è un difetto di questo plugin: è ciò che significa "stesso indirizzo". Se il tuo server ha molti giocatori su reti mobili, la difesa è accorciare la durata qui sopra (cinque minuti coprono ancora una disconnessione) o disattivare del tutto le sessioni con enabled: false.
Autenticazione a due fattori
Opzionale, e attivata da chi la vuole, sul proprio account. È per i pochi account che valgono qualcosa: staff, chi ha comprato rank, chi ha una base piena di roba. Imporla a tutti la fa disattivare dai giocatori nel modo più semplice che c'è: andando a giocare da un'altra parte.
two-factor4 chiavienabledtrueissuer"ShadowLogin"Il nome mostrato nell'app di autenticazione. Metti qui il nome del tuo server: chi ha venti voci nella propria app deve capire quale sei tu.
window1Quanti codici accettare prima e dopo quello attuale (uno = un minuto e mezzo in totale). Serve per gli orologi non sincronizzati. Alzarlo moltiplica i codici validi in ogni istante: se ti serve più di 1, il problema è l'orologio del server.
backup-codes8Quanti codici di backup consegnare. Servono per il giorno in cui si rompe il telefono: senza, quel giorno l'account è perso.
Recupero
recovery2 chiavirecovery.question1 chiaveenabledtrueLa domanda di sicurezza, impostata dal giocatore.
recovery.staff-code2 chiavilength8Il codice che un operatore genera con /shadowlogin resetpassword. Questa è la strada onesta: un amministratore riconosce la persona e le consegna un token temporaneo, invece di entrare nell'account al posto suo.
valid-for"15m"Limbo - dove si sta prima di aver fatto login
Un cielo vuoto e un messaggio. Chi non ha scritto la password non vede nulla e non fa nulla: niente chat, nessun comando oltre a quelli di login, nessun movimento oltre un raggio, niente inventario, nessuna posizione reale. Tutto ciò che gli lasci vedere è un'informazione regalata a chi sta cercando di entrare nell'account di un altro.
limbo8 chiavienabledtrueuse-spawntrueUsa lo spawn del mondo del giocatore, alzato all'altezza qui sotto. Disattivalo per usare la posizione fissa in location.
limbo.location6 chiaviworld""x0.5y320Trecentoventi blocchi: sopra le nuvole non c'è niente da guardare, e da lassù non si capisce nemmeno in che parte della mappa ci si trova.
z0.5yaw0pitch0limboradius3Di quanti blocchi ci si può muovere. Non zero: bloccare del tutto il movimento fa fare al client il "rubber-band" e lo schermo trema. Tre blocchi permettono a client e server di restare d'accordo.
hide-playerstrueNasconde chi aspetta a tutti gli altri, e tutti gli altri a lui. Così la schermata di login non si può usare per spiare chi è online.
blindnesstrueCecità: il cielo vuoto di cui sopra.
hide-inventorytrueMette da parte l'inventario e lo restituisce dopo il login.
Lo snapshot viene scritto nel database PRIMA di svuotare qualsiasi cosa, e se quella scrittura fallisce l'inventario non viene toccato affatto. Così un crash improvviso del server non costa nulla a nessuno: al primo login dopo il riavvio tutto torna dov'era.
freeze-hungertrueNiente fame durante l'attesa.
Antibot
Un attacco bot non prova password: apre connessioni. Trecento client finti al secondo, ognuno con un nome inventato, ognuno che occupa uno slot e una riga nel database. Il server non crolla per il carico di gioco: crolla perché ogni connessione costa una lettura e una scrittura.
antibot7 chiavienabledtruemax-connections-per-ip3Quante connessioni simultanee da un indirizzo. Tre fanno passare una famiglia con tre fratelli e fermano una botnet su un singolo indirizzo.
SE SEI DIETRO UN PROXY SENZA INOLTRO DELL'INDIRIZZO REALE, questo numero vale per TUTTO IL SERVER INSIEME: leggi il capitolo "proxy" qui sotto. Il plugin se ne accorge da solo e te lo dice in console.
max-registrations-per-ip2Quante registrazioni da un indirizzo dentro la finestra. Questo è il limite che conta di più: creare account è l'unica cosa che un bot può fare che RESTA dopo che se n'è andato.
registrations-window"24h"antibot.join-rate2 chiaviconnections8Sopra questo numero di connessioni dentro la finestra, il plugin capisce che sta succedendo qualcosa. Otto in cinque secondi sono molte più di quante ne veda un server normale, anche pieno.
window"5s"antibot.adaptive3 chiavienabledtrueLa modalità rigorosa si attiva da sola sopra la soglia qui sopra, e per qualche minuto entra solo chi ha già un account.
Continua a leggere
Questa è la difesa che vale più di tutte le altre messe insieme, perché un'ondata di bot è fatta al cento per cento di nomi mai visti prima - e i tuoi giocatori non si accorgono nemmeno che sta succedendo.
Si attiva da sola perché un attacco arriva alle quattro del mattino, e un interruttore da azionare a mano viene azionato venti minuti dopo.
(Fa parte dell'edizione Premium. Le soglie fisse qui sopra valgono per tutti, con o senza licenza.)
duration"5m"block-registrationstrueDurante la modalità rigorosa, blocca anche le nuove registrazioni.
antibotname-pattern"^[A-Za-z0-9_]{3,16}$"La forma che deve avere un nome. Il predefinito è esattamente ciò che Minecraft consente: da 3 a 16 lettere, cifre e underscore.
ATTENZIONE se hai giocatori Bedrock tramite Geyser: i loro nomi hanno un prefisso (di solito un punto) e sono più lunghi. In quel caso usa:
"^[.A-Za-z0-9_ ]{3,20}$"Proxy - leggi qui se hai un BungeeCord o un Velocity davanti
Dietro un proxy, l'indirizzo che vede il server è quello del PROXY, non quello del giocatore. Senza forwarding configurato, tutti i tuoi giocatori sembrano connessi dallo stesso indirizzo, e quindi:
- i limiti per indirizzo dell'antibot bloccano i giocatori veri; - le sessioni per indirizzo diventano un'unica sessione per tutti.
Continua a leggere
La soluzione NON è in questo file: è nel proxy.
Velocity -> modern forwarding, più paper-global.yml con
proxies.velocity.enabled: true e il segreto giusto
BungeeCord -> ip_forward: true, e il server raggiungibile SOLO dal
proxy (firewall!), perché quel forwarding non è
autenticatoIl plugin controlla da solo se arrivano molti nomi diversi da un solo indirizzo e, in quel caso, te lo dice in console una volta.
proxy1 chiaveuse-forwarded-addresstrueUsa l'indirizzo dichiarato dal proxy (quello reale del giocatore). Impostalo a false solo se NON ti fidi del tuo forwarding: in quel caso tutti sembreranno arrivare dallo stesso indirizzo. Con il forwarding attivo e questa opzione a false il plugin lo sa, e disattiva tutto ciò che si basa sull'indirizzo: i limiti per indirizzo (varrebbero per tutto il server), le sessioni legate all'indirizzo e i dispositivi ricordati per indirizzo (farebbero entrare chiunque scriva il nome).
Come si accede
login3 chiaviinputBOTHCHAT = solo /login e /register GUI = solo il tastierino a schermo BOTH = entrambi, e sceglie il giocatore
Continua a leggere
Il tastierino esiste perché un comando scritto in chat è leggibile da chiunque guardi lo schermo, e un plugin non può cancellare la cronologia del client. Con la GUI clicchi e compaiono dei puntini.
Un PIN è più debole di una password lunga e non ha senso fingere il contrario: sei cifre sono un milione di combinazioni. Regge perché i tentativi vengono contati e rallentati - al decimo errore l'account viene congelato per mezz'ora, e un milione di tentativi a quel ritmo sono secoli.
login.gui3 chiaviopen-on-joinfalseApre da solo il tastierino all'ingresso. Disattivato di default: chi è abituato a scrivere /login si ritroverebbe una finestra in faccia.
pin-length6Quante cifre ha il PIN. Non scendere sotto sei.
click-delay"120ms"Attesa minima tra due clic, contro i bot che cliccano.
loginhide-join-message-until-logintrueNon annunciare "Marco è entrato" prima che Marco abbia scritto la password: chi è entrato è qualcuno che ha scritto il nome Marco. Il messaggio viene inviato dopo il login, e se il login non avviene non viene inviato affatto.
Salvataggio dati
storage5 chiavitable-prefix"sl_"Il prefisso delle tabelle. Cambialo se due server condividono un database ma NON devono condividere gli account.
storage.mysql7 chiavienabledfalseUn MySQL o MariaDB esterno. Offre una cosa sola, e vale la pena solo per quella: in un network, una registrazione fatta su un server vale su tutti gli altri.
(Fa parte dell'edizione Premium. Senza licenza il plugin resta sul database locale, con tutti i suoi dati, e lo dice in console.)
host"127.0.0.1"port3306database"shadowlogin"username"root"password""parameters"useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=utf8"storagefallback-to-localtrueSe MySQL non risponde, parte sul database locale invece di non partire. Attivo: un plugin di login che non parte è un server chiuso.
storage.h21 chiaveauto-serverfalsePermette a un altro processo di aprire lo stesso file H2. Utile solo se sai perché ti serve.
storage.pool5 chiavimaximum-pool-size10minimum-idle2connection-timeout-ms10000idle-timeout-ms600000max-lifetime-ms1800000Messaggi
messages3 chiavidefault-locale"en_US"La lingua predefinita. I file stanno in lang/: il plugin include en_US e it_IT, e viene caricato anche un file che aggiungi lì.
follow-client-localetrueSegue la lingua che ogni giocatore ha impostato nel proprio client.
auto-updatetruePorta i file di lingua alla nuova versione quando il plugin viene aggiornato: arrivano i testi nuovi, i testi che hai cambiato restano tuoi, e il file precedente viene tenuto in backup/<date>/. Con false i file in lang/ non vengono mai riscritti, e un testo che vi manca viene letto dalla copia dentro il jar.
compatibility1 chiavesection-color-codestrueAccetta il carattere di sezione oltre a & nei codici colore.
Integrazioni
(tutte opzionali, tutte disattivate da sole se manca l'altro pezzo)
integrations4 chiavirefuse-other-login-pluginstrueNon parte se è installato un altro plugin di login.
Due plugin che gestiscono l'ingresso non si sommano: si intralciano a vicenda, e il risultato non è "più sicuro" ma INDEFINITO. Lascialo attivo.
integrations.shadowcontrol2 chiavireportstrueLe registrazioni sospette e i tentativi ripetuti diventano una segnalazione nel pannello. Nessuna password e nessun segreto finisce mai lì dentro: solo cosa è successo e a chi.
report-seconds60integrations.shadowessentials1 chiavespawn-after-logintrueTeletrasporta allo spawn dopo il login, e non prima: prima vorrebbe dire mostrare lo spawn a qualcuno che non ha ancora dimostrato di essere chi dice di essere.
integrations.shadowpermissions1 chiavehold-until-logintrueI permessi vengono ricalcolati dopo il login. Prima non se ne applica nessuno, e non perché li togliamo: perché non c'è nulla che potrebbe usarli.
Diagnostica
logging2 chiaviconsole-attemptstrueScrive in console ogni password sbagliata (nome e indirizzo, mai la password). Utile per accorgersi di un attacco mirato.
log-sqlfalseScrive ogni istruzione SQL. Solo per capire un problema: è lento e riempie il log.
metrics1 chiaveenabledtruebStats (https://bStats.org): quanti server usano questo plugin e su quale versione sono. Cosa viene inviato, ogni 30 minuti: un id casuale del server (serverUuid, non derivato da nulla), la versione del plugin, le versioni di Minecraft/Paper e di Java, il sistema operativo e il numero di core, la modalità online, quanti giocatori sono online (solo un numero) e il livello di licenza (free/premium/creator). Nessun dato dei giocatori di alcun tipo: niente nomi, niente UUID, niente indirizzi, niente password. Non viene inviato nulla mentre il plugin attende una licenza.
Continua a leggere
false disattiva solo questo plugin. enabled: false in plugins/bStats/config.yml disattiva tutti i plugin bStats in un colpo.
Lingue
I testi che il plugin mostra ai giocatori, un file per lingua.
lang/
Testi e messaggi 2 file
lang/plugins/ShadowLogin/lang/ Note del file
Questo file contiene il TESTO. Tutto il resto del plugin - chiavi, sezioni, commenti, comandi - è in inglese apposta, così che un server in qualunque parte del mondo legga la stessa configurazione. Solo ciò che vede un giocatore viene tradotto, ed è qui che si trova.
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 | 303 |
lang/it_IT.yml | Italiano | 303 |
Segnaposto più usati
Il plugin li sostituisce con il valore giusto: vanno lasciati scritti così.
<prefix><label><name><value><count><time><mode><max><ip><duration><file><date><reason><min>
Gruppi di messaggi
prefix1common13command4login34register5password13device19twofactor23recovery7limbo4antibot5gui14admin117license38locked6