feat: show who reacted, and stop curiosities flooding chat
Reactions only ever showed counts, so with several reactors nobody could tell who had reacted. Naming everyone on its own line does not scale, so names now appear in three progressively larger places: a hover tooltip per button (Java only), a one-line closing summary naming the first resumo-nomes (3) and collapsing the rest to "+N", and /reacoes for the full breakdown sent privately. Reactors' names are captured at react time so the summary survives them logging off. Two separate causes of chat flooding: - every join fired its own curiosity, so a wave of joins produced one each. Automatic triggers are now rate-limited by intervalo-minimo-segundos (120); a typed /curiosidade still bypasses it. - a curiosity cost two messages. The button row is now appended to the headline instead of being broadcast separately. Also fixes "1 horas" — CuriosityFactory had its own duration formatting that missed the earlier plural fix; it now uses Msg.duration. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ActvLGJApdxEAd2yfKPwqv
This commit is contained in:
@@ -59,14 +59,34 @@ change. The live numbers appear on three other surfaces instead:
|
||||
An earlier version only had the boss bar, and it read as broken — the buttons
|
||||
showed no number at all.
|
||||
|
||||
### 2. Clicks arrive late
|
||||
### 2. Who reacted, without filling the screen
|
||||
|
||||
Naming every reactor on its own chat line does not scale — five people
|
||||
reacting to five reactions is a wall of text. So the names live in three
|
||||
progressively larger places:
|
||||
|
||||
- **hover tooltip** on each button (Java only — Bedrock cannot hover)
|
||||
- **one-line closing summary** naming the first `resumo-nomes` (default 3) and
|
||||
collapsing the rest into `+N`
|
||||
- **`/reacoes`** for the full breakdown, sent privately so chat stays clean
|
||||
|
||||
The same cap applies to the mourning line, so a popular death is still one line.
|
||||
|
||||
Relatedly, a curiosity costs **one** chat message, not two — the button row is
|
||||
appended to the headline rather than broadcast separately.
|
||||
|
||||
And automatic curiosities are rate-limited by `intervalo-minimo-segundos`
|
||||
(default 120). Without it, five people joining together produced five
|
||||
curiosities back to back. A typed `/curiosidade` bypasses the limit.
|
||||
|
||||
### 3. Clicks arrive late
|
||||
|
||||
People scroll back and click minutes after a message. Reactions therefore keep
|
||||
counting for `reacao-validade-minutos` (default 15) even after the boss bar is
|
||||
gone, and the last 8 reaction sets stay in memory for that reason. Silently
|
||||
dropping a late click looks like a bug to the player.
|
||||
|
||||
### 3. Bedrock cannot click, and cannot show emoji
|
||||
### 4. Bedrock cannot click, and cannot show emoji
|
||||
|
||||
Geyser cannot deliver a chat `clickEvent` to a Bedrock client, and most emoji
|
||||
render as tofu boxes there. So every clickable interaction has a typed
|
||||
@@ -95,7 +115,7 @@ Changing a `comando` to a new name also requires adding that command to
|
||||
runtime dependency rather than a compile-time one. `/canalhandia plataformas`
|
||||
lists who is online and on which platform.
|
||||
|
||||
### 4. Names are translated by the client, not by us
|
||||
### 5. Names are translated by the client, not by us
|
||||
|
||||
Block, item and mob names are emitted as **translatable components**
|
||||
(`Component.translatable(material.translationKey())`), so a pt-BR client renders
|
||||
|
||||
Reference in New Issue
Block a user