Add zoacao chat gag: bare 'f' replaced with a random line

New module keyed 'zoacao'. An AsyncPlayerChatEvent listener swaps any
bare 'f'/'F' (trimmed, nothing else) for a random line from the
configurable zoacao.mensagens list (default Sou gay + 5 others). Pure
chat swap — player name still prefixes it; luto tribute untouched (still
needs the [F] button or /f command). Gated by modulos.zoacao (default on).

Zoacao.replace is pure for unit tests; ZoacaoTest covers bare f, case,
whitespace, f-with-extra-text, empty/null lists. 124 tests green.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
marcos
2026-08-06 22:22:25 +00:00
parent 95520831da
commit d61de1b208
6 changed files with 150 additions and 0 deletions
+13
View File
@@ -17,6 +17,8 @@ modulos:
# Mensagem de morte engraçada + coordenadas da morte mandadas em privado
# só para quem morreu (para correr buscar os itens).
mortes: true
# Quem manda só "f" no chat (sem mais nada) leva uma zoada no lugar da mensagem.
zoacao: true
ia: true # /ia <pergunta> — só para quem tem canalhandia.ia
# --- Curiosidades ------------------------------------------------------------
@@ -69,6 +71,17 @@ janela-reacao-segundos: 90
luto:
cabeca: true
# Frases que substituem um "f" sozinho no chat (módulo zoacao). Uma é sorteada
# por mensagem. Edite à vontade — a graça é ser inesperado.
zoacao:
mensagens:
- "Sou gay"
- "Gosto de anime"
- "Jogo no celular"
- "Tenho 12 anos"
- "Sou noob"
- "Uso Windows"
# Quantos nomes cabem no resumo de reações antes do resto virar "+N".
# O resumo é sempre UMA linha, por mais gente que reaja; para ver a lista
# completa use /reacoes (privado, não polui o chat).