Files
spigot-creeper-fear/README.md
T
dmg 1d580220c3
Release / release (push) Successful in 4m23s
CI / build (push) Successful in 1m14s
ci: add plugin build and release pipeline
2026-08-08 14:32:17 -04:00

101 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Spigot Creeper Fear
A Spigot 26.2 plugin that lets players earn six Creeper Aura ranks. Once unlocked, an aura prevents creeper explosions that hit the player from breaking blocks, trading that protection for rank-dependent player damage.
## Requirements
- Spigot 26.2
- Java 17 or newer
## Progression
Players earn one current-tier point when they kill a creeper directly, through a projectile, or through an owned tameable. A self-destructing creeper also awards one point to every player its explosion hits. Each tier defaults to 100 points and resets progress to zero when unlocked.
| Rank | Creeper damage | Block damage |
| --- | ---: | --- |
| Locked | 1× | Normal |
| I | 3× | Prevented |
| II | 2× | Prevented |
| III | 1.5× | Prevented |
| IV | 1× | Prevented |
| V | 0.5× | Prevented |
| VI | Cancelled | Prevented |
Progress is stored by player UUID in `plugins/CreeperFear/player-progress.sqlite3`. Database work runs away from the server thread.
After each point, a temporary boss bar shows current-tier progress. Unlocking a rank displays a full-screen title. Rank VI players no longer receive a progress bar.
## Build and install
```bash
./gradlew clean check jar
cp build/libs/spigot-creeper-fear-0.1.0-SNAPSHOT.jar /path/to/server/plugins/
```
Restart the server after copying the JAR. The plugin creates its configuration and SQLite database under `plugins/CreeperFear/`.
## Commands
| Command | Description | Permission |
| --- | --- | --- |
| `/creeperaura progress` | Show personal progress | `creeperfear.progress` |
| `/creeperaura progress <player>` | Inspect a known online or offline player | `creeperfear.admin.inspect` |
| `/creeperaura set <player> <progress>` | Set current-tier progress | `creeperfear.admin.modify` |
| `/creeperaura add <player> <amount>` | Adjust current-tier progress | `creeperfear.admin.modify` |
| `/creeperaura rank <player> <rank>` | Set rank and reset tier progress | `creeperfear.admin.modify` |
| `/creeperaura threshold <rank> <points>` | Persist a rank requirement | `creeperfear.admin.configure` |
| `/creeperaura reload` | Reload validated configuration | `creeperfear.admin.configure` |
The personal progress permission defaults to everyone. Administrative permissions default to server operators. Administrative changes are recorded in the server log.
## Configuration
```yaml
progression:
requirements:
I: 100
II: 100
III: 100
IV: 100
V: 100
VI: 100
aura:
damage-multipliers:
I: 3.0
II: 2.0
III: 1.5
IV: 1.0
V: 0.5
VI: 0.0
feedback:
progress-bar-seconds: 5
rank-up-title: "Creeper Aura %rank%"
rank-up-subtitle: "Unlocked!"
```
Requirements must be positive integers. Multipliers must be finite and non-negative. Invalid reloads are rejected while the last valid runtime settings remain active. Requirement changes preserve current rank and tier progress; a subsequent qualifying point can unlock at most one rank.
## Releases
Gitea Actions builds and tests every push and pull request and uploads a development JAR. Pull requests also validate conventional commit messages.
Pushes to `main` run semantic-release:
- `fix:` creates a patch release;
- `feat:` creates a minor release;
- a breaking-change footer or `!` creates a major release.
A successful release attaches a versioned JAR to the corresponding Gitea release. The repository must define a `RELEASE_TOKEN` secret with repository contents write permission.
For a local versioned artifact:
```bash
./gradlew clean check jar -PreleaseVersion=1.2.3
```
## Design
The [OKF design bundle](design/index.md) contains the architecture and completed user stories.