Files
spigot-quest-board/knowledge/user-stories/us-005-deliver-blocks-and-complete-a-quest.md
dmg 9344390599
Release / release (push) Successful in 2m26s
CI / build (push) Successful in 1m6s
feat(quests): add atomic block delivery completion
2026-09-05 07:48:59 -04:00

1.8 KiB

type, title, description, status
type title description status
User Story US-005: Deliver blocks and complete a quest Let a player deliver requested blocks at a quest board and receive the escrowed reward. done

US-005: Deliver blocks and complete a quest

As a player, I want to deliver requested blocks to a quest board so that I receive the promised reward and the issuer can claim my delivery.

Acceptance criteria

  • An active quest offers a Complete Quest action through every registered board.
  • Completion requires the delivering player to possess the full requested quantity of the exact block material.
  • Successful completion removes the requested blocks from the delivering player's inventory and stores them as a claim for the issuer.
  • Successful completion gives the exact escrowed reward items to the delivering player.
  • Reward items that do not fit are dropped safely at the delivering player's feet with a clear message.
  • The issuer is notified immediately when online or on their next login when offline that delivered blocks can be claimed at a quest board.
  • When player commands are enabled, /quests complete <quest> provides equivalent behavior with contextual autocomplete.
  • Completion is atomic and exactly one player can complete a quest, including simultaneous attempts.
  • Validation or persistence failure does not consume delivered blocks, release rewards, or change quest state.
  • Completed quests are no longer shown as active or completable.
  • Automated tests verify inventory validation, settlement, overflow, notifications, rollback, and concurrent completion protection.