feat(board): generate physical oak quest boards
Release / release (push) Successful in 3m8s
CI / build (push) Successful in 1m17s

This commit is contained in:
dmg
2026-09-05 09:00:18 -04:00
parent 2624c2bc02
commit bb537b0556
18 changed files with 903 additions and 26 deletions
+8
View File
@@ -83,3 +83,11 @@ description: Chronological record of material decisions affecting Spigot Quest B
- Split browsing, creation, and claims into dedicated native dialog screens with Back navigation.
- Presented active quests as individual detail dialogs while retaining completion and issuer cancellation actions.
- Verified 88 tests, including a 250-quest navigation case, and the plugin JAR with `./gradlew clean check jar`.
## 2026-09-05 — Generated physical quest boards
- Added `/questadmin createboard physical` to generate a five-wide, four-tall board above the targeted ground anchor facing the administrator.
- Used oak-log pillars, an oak-plank face, and three oak wall signs with obfuscated decorative text.
- Registered all visible planks and signs in one durable operation and added obstruction checks plus block rollback when construction or persistence fails.
- Preserved existing single-block board creation and persisted board compatibility.
- Verified 103 tests and the plugin JAR with `./gradlew clean check jar`.
@@ -2,7 +2,7 @@
type: User Story
title: "US-010: Generate a physical quest-board structure"
description: Let an administrator generate and register a decorative oak quest board at a targeted ground anchor.
status: backlog
status: done
---
# US-010: Generate a physical quest-board structure
@@ -11,17 +11,17 @@ As an **administrator**, I want quest-board creation to optionally construct a r
## Acceptance criteria
- [ ] `/questadmin createboard physical` generates and registers a physical quest board while the existing `/questadmin createboard` behavior remains unchanged.
- [ ] The targeted block is treated as the ground anchor and remains unchanged.
- [ ] The generated board faces the administrator and is five blocks wide and four blocks tall.
- [ ] The outer columns use oak-log pillars and the center uses oak planks.
- [ ] Oak wall signs on the front display decorative obfuscated or gibberish text.
- [ ] Clicking generated visible planks or signs opens the same globally shared quest-board interface.
- [ ] Generation requires empty space and refuses to overwrite an existing structure.
- [ ] Structure generation and interaction-location registration form one failure-safe transaction; failure restores changed blocks and registers nothing.
- [ ] Generated interaction locations persist across restarts and remain compatible with existing registered boards.
- [ ] The `physical` argument is offered through permission-aware command autocomplete.
- [ ] Automated tests verify geometry, facing direction, obstruction handling, rollback, registration, persistence, and autocomplete.
- [x] `/questadmin createboard physical` generates and registers a physical quest board while the existing `/questadmin createboard` behavior remains unchanged.
- [x] The targeted block is treated as the ground anchor and remains unchanged.
- [x] The generated board faces the administrator and is five blocks wide and four blocks tall.
- [x] The outer columns use oak-log pillars and the center uses oak planks.
- [x] Oak wall signs on the front display decorative obfuscated or gibberish text.
- [x] Clicking generated visible planks or signs opens the same globally shared quest-board interface.
- [x] Generation requires empty space and refuses to overwrite an existing structure.
- [x] Structure generation and interaction-location registration form one failure-safe transaction; failure restores changed blocks and registers nothing.
- [x] Generated interaction locations persist across restarts and remain compatible with existing registered boards.
- [x] The `physical` argument is offered through permission-aware command autocomplete.
- [x] Automated tests verify geometry, facing direction, obstruction handling, rollback, registration, persistence, and autocomplete.
## Related