Filtro chat (Veritédoux)
Veritédoux è il filtro chat di Verité. Legge ogni messaggio che un giocatore invia e decide se quel messaggio debba raggiungere il resto del server. Quando un messaggio infrange una regola, Verité lo ferma prima che chiunque altro lo veda e comunica al mittente che il suo messaggio non è stato consegnato.
Il filtro viene eseguito automaticamente una volta che Verité è installato. Sulla chat standard di Minecraft non c'è nulla da configurare. Se il tuo server usa un plugin che intercetta o ristilizza la chat da solo, vedi Integrazione della chat personalizzata così che i messaggi passino comunque attraverso il filtro.
Questa pagina spiega cosa cattura il filtro e come funzionano le sue parti principali. Per le chiavi di configurazione esatte e i loro valori predefiniti, vedi il Riferimento della configurazione.
Cosa cattura il filtro
Ogni messaggio viene classificato in uno di questi esiti:
| Esito | Significato |
|---|---|
| Clean | Il messaggio è consentito e consegnato normalmente. |
| Bloccato | Contenuto che infrange le normali regole. Il messaggio viene scartato e il mittente vede l'avviso di blocco. |
| Parolacce | Turpiloquio, giudicato per lingua e dialetto. Disabilitato per impostazione predefinita così che i server che permettono un turpiloquio informale non ne siano influenzati. |
| Abuso | Contenuto mirato a danneggiare o prendere di mira un'altra persona. |
| Autolesionismo | Contenuto che può riguardare il suicidio o l'autolesionismo. Gestito con attenzione, non come un'offesa punibile. Vedi Contenuti di autolesionismo. |
Quando un messaggio viene fermato, viene notificato solo il mittente. Il messaggio semplicemente non viene consegnato a nessun altro. Verité non muta, espelle né banna mai un giocatore per conto proprio per un messaggio filtrato. Decidere cosa fare con un giocatore segnalato è lasciato al tuo staff e alle tue regole di moderazione.
L'avviso di blocco e l'avviso di ripetizione sono configurabili. Vedi chat.filter.block.message e chat.filter.repeat.message nel Riferimento della configurazione.
Lingue supportate
Verité controlla i contenuti in sei lingue:
- Inglese
- Spagnolo
- Francese
- Portoghese
- Tedesco
- Italiano
Ogni lingua può essere attivata o disattivata indipendentemente, e all'interno di ogni lingua scegli quali categorie sono attive: rilevamento dell'autolesionismo, rilevamento dell'abuso, rilevamento degli insulti e parolacce. Le parolacce sono disattivate per impostazione predefinita per ogni lingua.
Spagnolo, francese e portoghese supportano anche dialetti regionali, così che le parolacce siano giudicate rispetto alla giusta lista di parole regionale anziché a un'unica lista generica. Lo spagnolo copre varietà come Spagna, messicana, argentina, cilena, colombiana e altre; il francese copre Francia e canadese; il portoghese copre europeo e brasiliano. Questi interruttori regionali risiedono sotto ogni lingua nella configurazione.
Verité determina in quale lingua è scritta ciascuna parte di un messaggio, così che un insulto sia giudicato dalla lingua delle parole attorno a esso. Questo conta sui server con lingue miste dove un singolo messaggio può cambiare lingua a metà.
Copertura delle lingue oggi
Il rilevamento è più forte in inglese. Le altre lingue sono supportate e possono essere abilitate, ma l'inglese riceve la copertura più completa.
Messaggi in altre lingue
Due impostazioni speciali decidono cosa succede al testo al di fuori dell'insieme supportato:
unknown.lang: un messaggio scritto in una lingua che Verité riconosce come non supportata.undeterminable: un messaggio la cui lingua non può essere determinata (per esempio, messaggi molto brevi o simboli puri).
Entrambi sono consentiti per impostazione predefinita. Se preferisci bloccare tutto ciò che il filtro non può controllare a livello di contenuto, puoi abilitare block.unsupported.languages nella sezione avanzate. Con questo attivo, i messaggi in una lingua che Verité non supporta ancora vengono bloccati.
Aggirare l'evasione
I giocatori che vogliono far passare contenuti vietati oltre un filtro spesso li mascherano. Veritédoux normalizza un messaggio prima del matching così che i trucchi comuni non funzionino. Ciascuno di questi passaggi può essere attivato o disattivato nella configurazione, e tutti sono attivi per impostazione predefinita.
| Trucco | Come si presenta | Come Verité lo gestisce |
|---|---|---|
| Omoglifi | Lettere cirilliche, a larghezza intera o in grassetto matematico che sembrano quelle normali | Ripiegate alle lettere semplici prima del matching |
| Entità | Codici di carattere in stile HTML che stanno al posto delle lettere | Decodificati nelle lettere che rappresentano |
| Offuscamento | e!v!i!l o lettere spaziate |
Riparati nella parola reale |
| Segmentazione | Parole incollate insieme senza spazi | Divise nuovamente in parole reali |
| Fingerprinting | Lettere trasposte, come lo scambio di due lettere in un insulto | Corrisposte tramite il fingerprint delle lettere |
Il passaggio del fingerprint delle lettere si applica solo a parole di almeno sei lettere, e si fa da parte per le parole che una lingua legittimamente consente, così che le parole ordinarie che per caso si riorganizzano in qualcos'altro non vengano catturate.
I font unicode decorativi sono gestiti separatamente. Attivare keep.chat.readable blocca i messaggi scritti prevalentemente in font elaborati che si renderizzano ma rendono la chat difficile da leggere. Gli emoji non sono influenzati da questa impostazione.
Simboli ed emoji
Alcuni contenuti non sono affatto parole: simboli vietati, o emoji disposti per comporre qualcosa. Verité esegue un secondo passaggio sui simboli e sugli emoji in un messaggio, controllando singoli simboli, simboli ripetuti e combinazioni di emoji ordinate o speculari. Questo cattura contenuti a simboli che un controllo basato sulle parole salterebbe. Il testo semplice è lasciato ai controlli linguistici.
Rilevamento di ripetizioni e spam
Messaggi ripetuti
Il rilevamento delle ripetizioni impedisce a un giocatore di inondare la chat con lo stesso messaggio o con uno quasi identico. È disattivato per impostazione predefinita e abilitato con block.repeat.messages.
Quando abilitato, Verité ricorda i messaggi recenti di un giocatore e confronta ogni nuovo messaggio con essi:
- Le ripetizioni esatte vengono catturate anche quando mascherate. Il confronto ignora maiuscole, accenti e lettere ripetute, così
HELLO,helloehelllocontano tutti come lo stesso messaggio. - Le quasi-ripetizioni vengono catturate quando un nuovo messaggio è abbastanza simile a uno recente, anche se non identico. Quanto vicino conta come corrispondenza è impostato da
block.repeat.similarity.threshold(un valore da 0 a 1, dove 1 significa identico).
Controlli quanti messaggi recenti vengono ricordati (block.repeat.history.size) e fino a quanto indietro nel tempo un messaggio conta ancora come ripetizione (block.repeat.window.ms). Una ripetizione bloccata mostra l'avviso di ripetizione anziché l'avviso di blocco ordinario. Vedi il Riferimento della configurazione per ogni chiave delle ripetizioni.
Cronologia e server affollati
Impostare sia la dimensione della cronologia sia la finestra temporale su illimitato significa che la cronologia ricordata di un giocatore continua a crescere. Su un server affollato, mantieni limitata almeno una delle due.
Spam e pubblicità
Il rilevamento dello spam usa il tokenizer di Verité per individuare i messaggi che si leggono come truffe o pubblicità e bloccarli prima che i giocatori li vedano. È disattivato per impostazione predefinita e abilitato con block.possible.spam.
Questo controllo è opt-in perché nessun rilevatore di spam è perfetto. Può mancare una truffa nuovissima, e può occasionalmente segnalare un messaggio legittimo che per caso suona fortemente promozionale. Quando abilitato usa un modello dedicato per le truffe dove disponibile, e ricade su un controllo più leggero altrimenti.
Contenuti di autolesionismo
Il rilevamento dell'autolesionismo esiste per proteggere le persone, non per punirle. Quando un messaggio viene catturato come contenuto di autolesionismo, Verité fa due cose:
- Il messaggio non viene consegnato al resto del server.
- Il mittente riceve un avviso di supporto fisso in inglese.
L'avviso di supporto comunica al mittente che il suo messaggio non è stato inviato, nota che può riformularlo e riprovare se era un errore, offre un incoraggiamento non giudicante a rivolgersi a qualcuno di cui si fida o a un servizio di crisi locale, consiglia di contattare i servizi di emergenza se c'è un rischio immediato, e collega una directory internazionale di risorse di crisi su findahelpline.com.
Questa è una funzionalità di sicurezza, non un'offesa di moderazione
L'autolesionismo e l'abuso sono riportati separatamente dalle normali infrazioni delle regole proprio così che possano essere gestiti diversamente. Sconsigliamo vivamente di punire automaticamente un giocatore per un messaggio di autolesionismo. Trattalo come un segnale di benessere, non come una violazione della chat.
L'avviso di autolesionismo non può essere modificato
A differenza dell'avviso di blocco ordinario, il messaggio di supporto per l'autolesionismo è fisso e non configurabile. Questo mantiene la guida di crisi accurata e completa. L'avviso viene sempre consegnato in inglese così che la formulazione resti affidabile per tutti.
Il rilevamento dell'autolesionismo è abilitato per lingua tramite self.harm.detection, che è attivo per impostazione predefinita per ogni lingua supportata.
Configurare il filtro
Ogni impostazione descritta qui risiede nella sezione chat.filter di config.yml. Ogni chiave vero o falso e numerica qui presente può essere letta e modificata da gioco con /verite config. Per l'elenco completo delle chiavi e dei valori predefiniti, vedi il Riferimento della configurazione.
Per gli sviluppatori
Se stai costruendo un'integrazione, un sistema di chat personalizzato o uno Skript che ha bisogno di far passare testo attraverso il filtro, vedi:
- Integrazione della chat personalizzata per collegare il filtro in un plugin che gestisce la chat da solo.
- API per sviluppatori per l'API pubblica del filtro.
- Integrazione Skript per la sintassi Skript.