3.5 KiB
3.5 KiB
type, title, description
| type | title | description |
|---|---|---|
| Log | Spigot Quest Board Knowledge Log | Chronological record of material decisions affecting Spigot Quest Board. |
Spigot Quest Board Knowledge Log
2026-09-05 — Initial quest-board design
- Administrators create physical quest boards, and every board exposes the same global quests and claims.
- Players create quests by selecting a requested block material and quantity and escrowing reward items from their inventory.
- Completing players deliver the requested block items at a board and immediately receive the escrowed reward.
- Delivered blocks remain held by the quest system until the issuer claims them at a board.
- Cancelled and seven-day-expired quests return escrowed rewards through the same claim system rather than direct inventory delivery.
- Inventory overflow from rewards or claims is dropped at the receiving player's feet.
- Player
/questscommands are disabled by default so administrators can require physical-board interaction. - The board interface follows Spigot Base by using Purpur's supported native dialog API.
2026-09-05 — Foundation started
- Approved work begins with an OKF knowledge bundle, Java 25/Purpur 26.2 Gradle foundation, automated verification, and a public Gitea repository.
2026-09-05 — Foundation completed
- Published the project to the public
dmg/spigot-quest-boardGitea 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.
2026-09-05 — Quest creation and reward escrow
- Added board-dialog and
/quests create <block> <quantity>creation using a valid block material, positive quantity, and the exact held reward stack. - 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
/questsand/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.
2026-09-05 — Block delivery and quest completion
- Added board actions and
/quests complete <quest>for exact requested-material delivery from player inventories. - Completion serializes state transitions, holds delivered blocks in durable issuer claims, and grants exact escrowed rewards with owner-protected overflow drops.
- Added durable online and next-login issuer notifications and rollback before persistence succeeds.
- Verified 49 tests and the plugin JAR with
./gradlew clean check jar.