Filtro de chat (Veritédoux)
O Veritédoux é o filtro de chat do Verité. Lê cada mensagem que um jogador envia e decide se essa mensagem deve chegar ao resto do servidor. Quando uma mensagem infringe uma regra, o Verité para-a antes que mais alguém a veja e informa o remetente de que a sua mensagem não foi entregue.
O filtro corre automaticamente assim que o Verité está instalado. No chat padrão do Minecraft não há nada a configurar. Se o seu servidor utiliza um plugin que interceta ou reestiliza o chat por conta própria, consulte Integração de chat personalizado para que as mensagens continuem a passar pelo filtro.
Esta página explica o que o filtro apanha e como as suas partes principais funcionam. Para as chaves de configuração exatas e as suas predefinições, consulte a Referência de configuração.
O que o filtro apanha
Cada mensagem é ordenada num destes resultados:
| Resultado | Significado |
|---|---|
| Limpo | A mensagem é permitida e entregue normalmente. |
| Bloqueado | Conteúdo comum que infringe regras. A mensagem é descartada e o remetente vê o aviso de bloqueio. |
| Palavrões | Uso de palavrões, avaliado por idioma e dialeto. Desativado por predefinição para que os servidores que permitem palavrões casuais não sejam afetados. |
| Abuso | Conteúdo destinado a prejudicar ou visar outra pessoa. |
| Automutilação | Conteúdo que pode relacionar-se com suicídio ou automutilação. Tratado com cuidado, não como uma infração passível de punição. Consulte Conteúdo de automutilação. |
Quando uma mensagem é parada, apenas o remetente é notificado. A mensagem simplesmente não é entregue a mais ninguém. O Verité nunca silencia, expulsa ou bane um jogador por conta própria por uma mensagem filtrada. Decidir o que fazer com um jogador sinalizado fica ao critério do seu pessoal e das suas regras de moderação.
O aviso de bloqueio e o aviso de repetição são configuráveis. Consulte chat.filter.block.message e chat.filter.repeat.message na Referência de configuração.
Idiomas suportados
O Verité verifica conteúdo em seis idiomas:
- Inglês
- Espanhol
- Francês
- Português
- Alemão
- Italiano
Cada idioma pode ser ligado ou desligado independentemente, e dentro de cada idioma escolhe que categorias correm: deteção de automutilação, deteção de abuso, deteção de insultos e palavrões. Os palavrões estão desligados por predefinição para todos os idiomas.
O espanhol, o francês e o português também suportam dialetos regionais, por isso os palavrões são avaliados contra a lista de palavras regional correta em vez de uma única lista genérica. O espanhol cobre variedades como Espanha, mexicano, argentino, chileno, colombiano e mais; o francês cobre França e canadiano; o português cobre europeu e brasileiro. Estes alternadores regionais vivem sob cada idioma na configuração.
O Verité determina em que idioma cada parte de uma mensagem está escrita, por isso um insulto é avaliado pelo idioma das palavras à sua volta. Isto importa em servidores de idiomas mistos onde uma única mensagem pode mudar de idioma a meio.
Cobertura de idiomas hoje
A deteção é mais forte em inglês. Os outros idiomas são suportados e podem ser ativados, mas o inglês recebe a cobertura mais completa.
Mensagens noutros idiomas
Duas definições especiais decidem o que acontece a texto fora do conjunto suportado:
unknown.lang: uma mensagem escrita num idioma que o Verité reconhece como não suportado.undeterminable: uma mensagem cujo idioma não pode ser determinado (por exemplo, mensagens muito curtas ou símbolos puros).
Ambas são permitidas por predefinição. Se preferir bloquear tudo o que o filtro não consegue verificar por conteúdo, pode ativar block.unsupported.languages na secção avançada. Com ela ligada, as mensagens num idioma que o Verité ainda não suporta são bloqueadas.
Passar pela evasão
Os jogadores que querem fazer passar conteúdo proibido por um filtro disfarçam-no frequentemente. O Veritédoux normaliza uma mensagem antes da correspondência para que os truques comuns não funcionem. Cada uma destas passagens pode ser alternada na configuração, e todas estão ligadas por predefinição.
| Truque | Como se parece | Como o Verité o trata |
|---|---|---|
| Homóglifos | Letras cirílicas, de largura total ou math-bold que se parecem com as normais | Reconvertidas para letras simples antes da correspondência |
| Entidades | Códigos de caracteres ao estilo HTML a substituir letras | Descodificados para as letras que representam |
| Ofuscação | e!v!i!l ou letras espaçadas |
Reparadas de volta para a palavra real |
| Segmentação | Palavras coladas sem espaços | Divididas de volta em palavras reais |
| Fingerprinting | Letras trocadas, como trocar duas letras num insulto | Correspondidas por fingerprint de letras |
A passagem de fingerprint de letras só se aplica a palavras de pelo menos seis letras, e afasta-se para palavras que um idioma permite legitimamente, por isso as palavras comuns que por acaso se rearranjam noutra coisa não são apanhadas.
As fontes unicode decorativas são tratadas separadamente. Ligar keep.chat.readable bloqueia mensagens escritas maioritariamente em fontes decorativas que renderizam mas tornam o chat difícil de ler. Os emoji não são afetados por esta definição.
Símbolos e emoji
Algum conteúdo não são palavras de todo: símbolos proibidos, ou emoji dispostos para soletrar algo. O Verité corre uma segunda passagem sobre os símbolos e emoji de uma mensagem, verificando símbolos únicos, símbolos repetidos e combinações de emoji ordenadas ou espelhadas. Isto apanha conteúdo de símbolos que uma verificação baseada em palavras ignoraria. O texto simples fica a cargo das verificações de idioma.
Deteção de repetição e spam
Mensagens repetidas
A deteção de repetição impede um jogador de inundar o chat com a mesma mensagem ou quase a mesma. Está desligada por predefinição e é ativada com block.repeat.messages.
Quando ativada, o Verité recorda as mensagens recentes de um jogador e compara cada nova mensagem com elas:
- As repetições exatas são apanhadas mesmo quando disfarçadas. A comparação ignora maiúsculas, acentos e letras repetidas, por isso
HELLO,helloehelllocontam todas como a mesma mensagem. - As quase repetições são apanhadas quando uma nova mensagem é suficientemente semelhante a uma recente, mesmo que não idêntica. O grau de proximidade que conta como correspondência é definido por
block.repeat.similarity.threshold(um valor de 0 a 1, onde 1 significa idêntico).
Controla quantas mensagens recentes são recordadas (block.repeat.history.size) e até que ponto no tempo uma mensagem ainda conta como repetição (block.repeat.window.ms). Uma repetição bloqueada mostra o aviso de repetição em vez do aviso de bloqueio comum. Consulte a Referência de configuração para cada chave de repetição.
Histórico e servidores movimentados
Definir tanto o tamanho do histórico como a janela de tempo como ilimitados significa que o histórico recordado de um jogador continua a crescer. Num servidor movimentado, mantenha pelo menos um dos dois limitado.
Spam e anúncios
A deteção de spam utiliza o tokenizer do Verité para identificar mensagens que se leem como golpes ou anúncios e bloqueá-las antes de os jogadores as verem. Está desligada por predefinição e é ativada com block.possible.spam.
Esta verificação é de adesão voluntária porque nenhum detetor de spam é perfeito. Pode falhar um golpe novo, e pode ocasionalmente sinalizar uma mensagem legítima que por acaso soa muito promocional. Quando ativada, utiliza um modelo de golpes dedicado onde disponível, e recorre a uma verificação mais ligeira caso contrário.
Conteúdo de automutilação
A deteção de automutilação existe para proteger as pessoas, não para as punir. Quando uma mensagem é apanhada como conteúdo de automutilação, o Verité faz duas coisas:
- A mensagem não é entregue ao resto do servidor.
- O remetente recebe um aviso de apoio fixo em inglês.
O aviso de apoio informa o remetente de que a sua mensagem não foi enviada, refere que pode reformular e tentar novamente se tiver sido um engano, oferece incentivo não crítico para procurar alguém de confiança ou um serviço de crise local, aconselha a contactar os serviços de emergência se houver risco imediato, e liga um diretório internacional de recursos de crise em findahelpline.com.
Isto é uma funcionalidade de segurança, não uma infração de moderação
A automutilação e o abuso são reportados separadamente das infrações comuns às regras precisamente para que possam ser tratados de forma diferente. Desaconselhamos vivamente punir automaticamente um jogador por uma mensagem de automutilação. Trate-a como um sinal de bem-estar, não como uma violação de chat.
O aviso de automutilação não pode ser alterado
Ao contrário do aviso de bloqueio comum, a mensagem de apoio de automutilação é fixa e não configurável. Isto mantém a orientação de crise precisa e completa. O aviso é sempre entregue em inglês para que a redação permaneça fiável para todos.
A deteção de automutilação é ativada por idioma através de self.harm.detection, que está ligada por predefinição para todos os idiomas suportados.
Configurar o filtro
Todas as definições descritas aqui vivem na secção chat.filter do config.yml. Todas as chaves verdadeiro ou falso e numéricas aqui podem ser lidas e alteradas a partir do jogo com /verite config. Para a lista completa de chaves e predefinições, consulte a Referência de configuração.
Para programadores
Se está a construir uma integração, um sistema de chat personalizado ou um Skript que precisa de passar texto pelo filtro, consulte:
- Integração de chat personalizado para ligar o filtro a um plugin que trata do chat por conta própria.
- API para programadores para a API pública do filtro.
- Integração com Skript para a sintaxe do Skript.