feat(quests): add shared active quest browsing
Release / release (push) Successful in 2m17s
CI / build (push) Successful in 1m7s

This commit is contained in:
dmg
2026-09-04 23:51:34 -04:00
parent 638d2328ab
commit a09a0a3163
17 changed files with 431 additions and 29 deletions
+7
View File
@@ -40,3 +40,10 @@ description: Chronological record of material decisions affecting Spigot Quest B
- Escrow preserves full Bukkit item metadata in durable Base64-backed YAML and rolls inventory removal back if persistence fails.
- Quests receive UUID identifiers and UTC creation and seven-day expiration timestamps.
- Verified 26 tests and the plugin JAR with `./gradlew clean check jar`.
## 2026-09-05 — Shared quest browsing
- Added globally shared active-quest listings to every board and to `/quests` and `/quests list`.
- Listings include requested blocks, exact reward summaries, issuer names, and boundary-safe remaining durations.
- Added persisted lifecycle status with backward-compatible active defaults and filtered stale quest IDs from contextual completion and cancellation suggestions.
- Verified 37 tests and the plugin JAR with `./gradlew clean check jar`.
@@ -2,7 +2,7 @@
type: User Story
title: "US-004: Browse available quests"
description: Let players inspect globally available quests and their essential terms.
status: backlog
status: done
---
# US-004: Browse available quests
@@ -11,13 +11,13 @@ As a **player**, I want to browse current quests so that I can decide which bloc
## Acceptance criteria
- [ ] Every registered board lists the same active quests.
- [ ] Each listing shows the requested block material, quantity, reward, issuer, and time remaining.
- [ ] Remaining durations are clear and never display an expired quest as active.
- [ ] Completed, cancelled, and expired quests are excluded from the active listing.
- [ ] When player commands are enabled, `/quests` and `/quests list` provide the same active quest information in chat.
- [ ] Listing and autocomplete do not expose stale quest identifiers as completable or cancellable.
- [ ] Automated tests verify filtering, displayed fields, duration boundaries, and command aliases.
- [x] Every registered board lists the same active quests.
- [x] Each listing shows the requested block material, quantity, reward, issuer, and time remaining.
- [x] Remaining durations are clear and never display an expired quest as active.
- [x] Completed, cancelled, and expired quests are excluded from the active listing.
- [x] When player commands are enabled, `/quests` and `/quests list` provide the same active quest information in chat.
- [x] Listing and autocomplete do not expose stale quest identifiers as completable or cancellable.
- [x] Automated tests verify filtering, displayed fields, duration boundaries, and command aliases.
## Related