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
+12 -6
View File
@@ -8,19 +8,25 @@ folia-supported: false
commands:
curiosidade:
description: Anuncia uma curiosidade agora, ou gerencia suas preferências.
usage: /curiosidade [toggle|reload]
aliases: [curiosidades]
description: Anuncia curiosidades e ajusta como elas funcionam.
usage: /curiosidade ajuda
aliases: [curiosidades, cur]
permissions:
# Declared explicitly: an undeclared Bukkit permission falls back to op-only,
# which would silently stop normal players from being able to react.
# which would silently stop normal players reacting or opting out.
curiosidades.reagir:
description: Permite reagir às curiosidades.
default: true
curiosidades.ver:
description: Permite usar /curiosidade ver e /curiosidade listar.
default: true
curiosidades.forcar:
description: Permite forçar um anúncio com /curiosidade.
description: Permite disparar um anúncio manualmente.
default: op
curiosidades.admin:
description: Permite recarregar a configuração.
description: Permite mudar modo, intervalo, categorias e reações.
default: op
curiosidades.isento:
description: Quem tem isto nunca é sorteado como assunto.
default: false