Make zoacao match rule editable in-game: mode + pattern + message list

Zoacao now matches a configurable pattern under a configurable mode
(igual/contem/comeca/termina/regex) instead of only a bare 'f'. The mode,
the trigger pattern, and the gag message list are all editable live via
/canalhandia zoacao <listar|modo|padrao|adicionar|remover|limpar>; every
change writes through to config.yml immediately. config.yml gains
zoacao.correspondencia + zoacao.padrao (default igual + 'f').

Zoacao.replace/ matches gained a Mode + pattern signature; ZoacaoTest
covers all five modes (incl. invalid-regex guard) and the byKey parser.
136 tests green.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
marcos
2026-08-06 22:27:42 +00:00
parent 72840c9770
commit b77a38b394
7 changed files with 351 additions and 45 deletions
+13 -2
View File
@@ -71,9 +71,20 @@ 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.
# Zoa de quem manda uma mensagem que bate com o padrão, trocando por uma frase
# engraçada. Tudo editável em jogo com /canalhandia zoacao ...
zoacao:
# Como comparar a mensagem do chat com o padrão:
# igual - mensagem inteira igual ao padrão (ignora maiúsculas e espaços)
# contem - mensagem contém o padrão em qualquer lugar
# comeca - mensagem começa com o padrão
# termina - mensagem termina com o padrão
# regex - padrão é uma expressão regular (maiúsculas ignoradas)
correspondencia: igual
# Texto (ou regex) que dispara a zoação. Padrão: só um "f" sozinho.
padrao: "f"
# Frases que substituem a mensagem. Uma é sorteada por vez. Edite à vontade —
# a graça é ser inesperado.
mensagens:
- "Sou gay"
- "Gosto de anime"