feat(board): add shared physical quest boards
This commit is contained in:
@@ -26,3 +26,10 @@ description: Chronological record of material decisions affecting Spigot Quest B
|
||||
- Published the project to the public `dmg/spigot-quest-board` Gitea repository.
|
||||
- Added strict Java 25/Purpur 26.2 Gradle builds, plugin metadata, a metadata regression test, and CI/release workflows modeled on Spigot Base.
|
||||
- Verified the plugin foundation and JAR with `./gradlew clean check jar`.
|
||||
|
||||
## 2026-09-05 — Shared physical quest boards
|
||||
|
||||
- Added durable world-UUID and block-coordinate board registration through `/questadmin createboard`.
|
||||
- Registered main-hand interactions open one shared native Purpur dialog while unregistered blocks remain untouched.
|
||||
- Persistence publishes a board only after an atomic YAML save succeeds and rejects duplicate locations.
|
||||
- Verified 11 tests and the plugin JAR with `./gradlew clean check jar`.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
type: User Story
|
||||
title: "US-002: Create and use shared quest boards"
|
||||
description: Let administrators establish persistent physical boards that expose one shared quest system.
|
||||
status: backlog
|
||||
status: done
|
||||
---
|
||||
|
||||
# US-002: Create and use shared quest boards
|
||||
@@ -11,15 +11,15 @@ As an **administrator**, I want to turn a targeted block into a quest board so t
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [ ] An authorized administrator can use `/questadmin createboard` to register the block they are targeting.
|
||||
- [ ] Creation rejects a missing, invalid, or already registered target without changing state.
|
||||
- [ ] Registered boards persist across server restarts with their world and block coordinates.
|
||||
- [ ] Interacting with any registered board opens the quest-board interface.
|
||||
- [ ] Every registered board exposes the same global quests and claimable items.
|
||||
- [ ] The interface uses Purpur's supported native dialog API and follows the interaction style of Spigot Base.
|
||||
- [ ] Ordinary block interaction is not intercepted at unregistered locations.
|
||||
- [ ] Administrative actions require the `spigotquestboard.admin` permission, granted to server operators by default.
|
||||
- [ ] Automated tests verify board registration, persistence, shared visibility, authorization, and interaction routing.
|
||||
- [x] An authorized administrator can use `/questadmin createboard` to register the block they are targeting.
|
||||
- [x] Creation rejects a missing, invalid, or already registered target without changing state.
|
||||
- [x] Registered boards persist across server restarts with their world and block coordinates.
|
||||
- [x] Interacting with any registered board opens the quest-board interface.
|
||||
- [x] Every registered board exposes the same global quests and claimable items.
|
||||
- [x] The interface uses Purpur's supported native dialog API and follows the interaction style of Spigot Base.
|
||||
- [x] Ordinary block interaction is not intercepted at unregistered locations.
|
||||
- [x] Administrative actions require the `spigotquestboard.admin` permission, granted to server operators by default.
|
||||
- [x] Automated tests verify board registration, persistence, shared visibility, authorization, and interaction routing.
|
||||
|
||||
## Related
|
||||
|
||||
|
||||
Reference in New Issue
Block a user