43 lines
2.5 KiB
Markdown
43 lines
2.5 KiB
Markdown
---
|
|
type: Log
|
|
title: Spigot Quest Board Knowledge Log
|
|
description: 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`.
|