fix(emit): the delve's own machinery narrated itself to the player - #332
Merged
Conversation
Owner playtest 2026-08-07: every dialogue option a player picks printed "Triggered [dw.dlg_antiphos]" in chat, beside the line the character had just spoken. Root cause, not the symptom: dialogue options are `trigger`-type scoreboard objectives (`dw.dlg_<npc>`, `dw.class`), so choosing one runs `/trigger` and vanilla answers it. `sealing_commands` sets eight gamerules to seal the box garden — spawning, time, weather, griefing, fire, respawn scatter, inventory-on-death, TNT — and `send_command_feedback` was simply missing from that list. Command feedback is engine implementation reaching the player, which is the one thing every other rule there exists to stop. NOT version-gated, unlike `tnt_explodes`: that rule gates a new capability, so old campaigns must stay byte-identical. This is a defect, and a campaign at any `dsl_version` wants its dialogue to stop announcing its scoreboard. The compiler's own command validator earned its keep here: the first attempt wrote the legacy camelCase `sendCommandFeedback`, which 1.21.11 rejects outright, and the validator refused it against the vendored command tree before it could reach a world. rcon replies to its caller regardless of this rule, so the harness and `validation/` are unaffected; the creator overlay's log stamp is `log_admin_commands`, a different rule. Measured against the build the owner is playing: one added line in one file (`setup.mcfunction`), nothing else moves. baseline cf882e2e...b337a45 with fix 24638a3c...903dada9 Full workspace suite: 154 test binaries, 0 failures.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Owner playtest finding, 2026-08-07: "左侧信息那里能不能把「已触发[xxx]」隐藏掉" — every dialogue option printed
Triggered [dw.dlg_antiphos]in chat beside the line the character had just said.Root cause
Dialogue options are
trigger-type scoreboard objectives (dw.dlg_<npc>,dw.class), so picking one runs/triggerand vanilla answers it in chat.emit::sealing_commandssets eight gamerules to seal the box garden — spawning, time, weather, griefing, fire spread, respawn scatter, inventory-on-death, TNT — andsend_command_feedbackwas simply missing from that list. Command feedback is engine implementation reaching the player, which is precisely what every other rule in that list exists to stop.Not version-gated, on purpose
tnt_explodesis gated on the v0.6 world stage because it gates a new capability and pre-0.6 fixtures must stay byte-identical. This is a defect: a campaign at anydsl_versionwants its dialogue to stop announcing its scoreboard. The island is at 0.6/0.8 and gets the fix without an adoption round.The validator earned its keep
The first attempt wrote the legacy camelCase
sendCommandFeedback. 1.21.11 renamed the gamerules to snake_case and rejects the old spelling outright — and the compiler's own command validator refused the line against the vendored 1.21.11 command tree before it could reach a world:Blast radius, measured against the build the owner is playing right now
One added line, in one file. Nothing else moves. Full workspace suite: 154 test binaries, 0 failures.
rcon replies to its caller regardless of this rule, so the harness and
validation/are unaffected; the creator overlay's log stamp islog_admin_commands, a different rule.Gate
Player-visible, so it joins the owner's playtest batch rather than merging on green — but it is the batch's smallest possible item and she asked for it by name.