Files
spigot-trigger-spawn/design/log.md
T
dmg edab7f03db
Release / release (push) Failing after 11s
CI / build (push) Successful in 57s
feat(access): manage spawn bans
2026-08-08 13:23:29 -04:00

54 lines
3.0 KiB
Markdown

---
type: Log
title: Trigger Spawn Design Log
description: Chronological record of significant Trigger Spawn design decisions.
---
# Trigger Spawn Design Log
## 2026-08-08 — Initial user stories
- Target Spigot 26.2 and Java 17 with a Gradle and Gitea Actions pipeline modeled on `spigot-event-producer`.
- Unlock `/spawn` after the first observed Warden, Ender Dragon, or Wither kill.
- Use real elapsed time for cooldowns, with defaults of eight, four, and one hour as unique boss kills accumulate.
- Support administrator-defined cooldown grants, complete access resets, and bans.
- Maintain a separate circular spawn area in each world, with a default radius of 20 blocks and safe randomized destinations.
- Require a stationary three-second warm-up that is cancelled by walking to another block, jumping, falling, teleportation, or world changes.
## 2026-08-08 — Progression reminders and rewards
- Remind players with incomplete progression that remaining unique boss kills permanently reduce the `/spawn` cooldown.
- Clear the active cooldown immediately after each newly credited unique boss kill.
- When cooldown prevents `/spawn`, explicitly report that it is unavailable and show the remaining wait in a friendly format.
## 2026-08-08 — Build and release foundation
- Added the Java 17 Gradle project targeting Spigot API 26.2, with JUnit 5 verification and versioned resource processing.
- Added Gitea CI and semantic-release workflows modeled on `spigot-event-producer`.
- Documented local builds, public releases, and the required `RELEASE_TOKEN` repository secret.
## 2026-08-08 — Configuration and persistence
- Added validated, independently configurable real-time cooldown tiers with documented defaults.
- Added atomic YAML persistence for UUID-based player access state and per-world spawn settings.
- Invalid persisted access values fail closed, while invalid required configuration disables the plugin rather than allowing partial startup.
- Added friendly duration formatting and the administrative permission declaration.
## 2026-08-08 — Per-world spawn areas
- Added `/spawnadmin set`, `distance`, and `info` for player-operated configuration of the current world.
- Worlds default to their native spawn and an independently persisted 20-block radius.
- Circular target sampling is uniform by area, preserves configured facing, and supports a zero-block radius.
## 2026-08-08 — Administrative access grants
- Added custom `/spawn` cooldown grants with safe, friendly duration parsing.
- Added complete access resets and a paginated view of naturally and administratively eligible players.
- Administrative targets resolve online players, persisted names, server-known offline players, and known UUIDs while state remains keyed by UUID.
## 2026-08-08 — Spawn bans
- Added persistent `/spawn` bans, unbans, and paginated ban listing for online and resolvable offline players.
- Banning immediately clears grants, boss progress, and cooldown state; unbanning restores none of them.
- Banned player state cannot retain natural or granted access.