feat: join-triggered by default, plus runtime admin controls

Default trigger is now player join rather than a timer, with a short
delay so the curiosity lands after the join message instead of racing
it. Modes entrada/intervalo/ambos/manual select the triggers.

Adds a full /curiosidade tree so behaviour is adjustable in-game
without editing config.yml: mode, interval, join delay, per-player
cooldown, no-repeat history, reaction window, reaction labels, and
per-category toggles. Every setter writes through to disk immediately
so changes survive a restart.

Facts are now tagged with a category so they can be filtered, and a
per-player cooldown plus recent-fact history stop repeats when someone
relogs.

Config changes are gated behind curiosidades.admin; reacting and
opting out stay default-true.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ActvLGJApdxEAd2yfKPwqv
This commit is contained in:
marcos
2026-08-04 20:24:54 +00:00
parent c528ed55c8
commit 7fd3fc157c
9 changed files with 935 additions and 194 deletions
+38 -5
View File
@@ -1,16 +1,49 @@
# Curiosidades — anúncios automáticos sobre os jogadores online.
# Curiosidades — anúncios automáticos sobre os jogadores.
#
# Tudo aqui também pode ser mudado em jogo com /curiosidade, e os comandos
# gravam neste arquivo na hora. Veja /curiosidade ajuda.
# Intervalo entre anúncios, em minutos.
# Quando as curiosidades disparam sozinhas:
# entrada - só quando um jogador entra no mundo (padrão)
# intervalo - só num temporizador
# ambos - os dois
# manual - nunca sozinho, só com /curiosidade
modo: ENTRADA
# Segundos de espera depois que o jogador entra, para a curiosidade aparecer
# depois da mensagem de entrada em vez de disputar com ela.
atraso-entrada-segundos: 6
# Intervalo do modo temporizado, em minutos. Ignorado nos modos entrada/manual.
intervalo-minutos: 20
# Tempo mínimo antes do mesmo jogador ser citado de novo. Evita spam quando
# alguém fica entrando e saindo.
cooldown-minutos: 30
# Quantas curiosidades recentes lembrar para não repetir.
evitar-repetir: 15
# Reações clicáveis embaixo de cada curiosidade.
reacoes-ativas: true
# Por quanto tempo a barra de reações fica visível, em segundos.
janela-reacao-segundos: 90
# Reações disponíveis. A chave é usada no comando; o valor é o que aparece no chat.
# As reações disponíveis. A chave é usada no comando; o valor aparece no chat.
# Emoji funcionam no Java; no Bedrock (Geyser) alguns não renderizam, então
# rótulos em texto puro são a opção segura para servidores com muitos jogadores
# de Bedrock.
# rótulos em texto puro são a opção segura se você tem muitos jogadores Bedrock.
reacoes:
joia: "[👍]"
uau: "[😮]"
fogo: "[🔥]"
# Tipos de curiosidade que podem ser sorteados.
categorias:
mineracao: true
itens: true
mortes: true
combate: true
distancia: true
tempo: true
diversos: true