44 lines
1.9 KiB
Markdown
44 lines
1.9 KiB
Markdown
# Leaf
|
|
|
|
Leaf is a Spigot 26.2 plugin that lets non-aggressive players opt into visible Resistance protection.
|
|
|
|
The approved behavior is specified in the [OKF design bundle](design/index.md).
|
|
|
|
## Requirements
|
|
|
|
- Spigot 26.2
|
|
- Java 17 or newer
|
|
|
|
## Build
|
|
|
|
```bash
|
|
./gradlew clean check jar
|
|
```
|
|
|
|
The plugin JAR is written to `build/libs/`.
|
|
|
|
## Commands
|
|
|
|
```text
|
|
/leaf on
|
|
/leaf off
|
|
/leaf status
|
|
/leaf enabled <on|off>
|
|
/leaf strength <1-5>
|
|
/leaf player <name|uuid> status
|
|
/leaf player <name|uuid> enabled <on|off>
|
|
/leaf player <name|uuid> locked <on|off>
|
|
```
|
|
|
|
Administrative commands require `leaf.admin`, granted to server operators by default.
|
|
|
|
## Compatibility
|
|
|
|
Leaf prefixes the standard Spigot display name (used by standard chat), player-list name, and a dedicated `leaf_protected` main-scoreboard team for overhead names. Legacy `&` color codes are supported. Leaf does not move players out of an existing scoreboard team, and per-viewer/custom scoreboards may not show its overhead prefix. Chat or tab-management plugins may replace Leaf's decorated names. Leaf restores a name only when it still matches the value Leaf installed, so unsupported integrations do not affect protection state or get overwritten during cleanup.
|
|
|
|
Spigot identifies potion effects by type but does not expose their owning plugin. Leaf tracks the exact infinite, quiet Resistance effect it successfully installed and removes it only while the visible effect still matches. A distinct Resistance level, duration, or presentation is preserved. Spigot cannot distinguish an externally supplied effect with an identical fingerprint; Leaf therefore does not claim or later remove an identical effect that was already active when reconciliation ran.
|
|
|
|
## Releases
|
|
|
|
Gitea Actions checks pushes and pull requests and stores a development JAR. Pull requests validate conventional commits. Main-branch conventional commits drive semantic releases after the repository defines a `RELEASE_TOKEN` with contents-write permission.
|