Files
spigot-quest-board/knowledge/log.md
T
dmg 638d2328ab
Release / release (push) Successful in 2m17s
CI / build (push) Successful in 1m4s
feat(quests): add quest creation and reward escrow
2026-09-04 23:45:00 -04:00

2.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 /quests commands 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-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.

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.