feat: Bedrock support — typed commands and ASCII labels

Geyser cannot deliver a chat clickEvent to Bedrock, and most emoji render
as tofu boxes there, so Bedrock players could see the reaction row but
neither read nor use it.

Messages carrying buttons are now built twice and sent per player rather
than via Bukkit.broadcast. Each reaction gains a per-platform label plus a
typed shortcut:

    uau: { java: "[😮]", texto: "[UAU]", comando: "wow" }

Typed fallbacks for every clickable interaction: /reagir, /legal, /wow,
/top, /f, /palpite and /votar, all acting on the most recent message so no
message id is needed.

Bedrock detection uses Floodgate's UUID scheme (high 64 bits zero) rather
than the Floodgate API, keeping it an optional runtime dependency.
/canalhandia plataformas lists who is online and on which platform.

Reaction config moves from a flat key->label map to a section per
reaction; the old flat form is still accepted and gets an ASCII fallback
derived from the key.

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 21:31:24 +00:00
parent 18ac5a5d17
commit 987ee13d74
11 changed files with 431 additions and 72 deletions
+22 -6
View File
@@ -59,13 +59,29 @@ janela-reacao-segundos: 90
# parece defeito.
reacao-validade-minutos: 15
# 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 se você tem muitos jogadores Bedrock.
# As reações disponíveis.
#
# java - rótulo para jogadores Java (emoji funcionam)
# texto - rótulo para jogadores Bedrock (SÓ ASCII: emoji viram quadradinhos)
# comando - atalho digitável, para quem não consegue clicar
#
# O Bedrock não consegue executar clique no chat, então todo jogador Bedrock vê
# os rótulos "texto" e a dica de digitar o comando. Os comandos abaixo precisam
# existir no plugin.yml para serem registrados — mudar "comando" para um nome
# novo exige adicionar o comando lá e reiniciar.
reacoes:
joia: "[👍]"
uau: "[😮]"
fogo: "[🔥]"
joia:
java: "[👍]"
texto: "[+1]"
comando: "legal"
uau:
java: "[😮]"
texto: "[UAU]"
comando: "wow"
fogo:
java: "[🔥]"
texto: "[TOP]"
comando: "top"
# --- Jogos -------------------------------------------------------------------