fix(lint,command,scheduler): lpk alias, ReturnCount/IllegalCatch triage, scheduler facade

- command: replace /lp alias with /lpk (LuckPerms conflict, p.144);
  parkour alias kept; docs/changelog/javadoc updated
- lint p.169: restructure last 69 void early-returns into if-blocks and
  helpers; ReturnCount is now an error gate (0 violations)
- lint p.170: Throwable->RuntimeException on 3 boundaries; narrow 5
  catches to concrete types; document 14 intentional boundary catches
- scheduler p.21: add runTimerAsync to the facade (Bukkit + Folia
  backends); MetricsCacheStore and duels go through the facade, no
  BukkitRunnable/Bukkit.getScheduler outside scheduler/ (archunit
  freeze-store emptied); drop the unverified Folia badge from README
- tracker: mark p.26-29/32-33 done (fixed in fea15e6, verified)
This commit is contained in:
loki5512344 2026-10-10 14:52:10 +02:00
parent 8ff02cff18
commit b6712391fd
Signed by: boba
GPG key ID: 253067914055423B
79 changed files with 696 additions and 800 deletions

View file

@ -8,7 +8,7 @@ Jump structures are loaded from `plugins/LoParkour/schematics/` and matched to a
|-----------|--------|--------|
| `.nbt` | Vanilla structure block, `/structure save` | Pasted with Bukkit `StructureManager` |
| `.schem`, `.schematic` | WorldEdit (`//copy`, `//schem save`) | Read via embedded WorldEdit clipboard IO |
| `.lpschem` | **Legacy LoParkour format** | Not used in-game; convert with `/lp schematic convert` |
| `.lpschem` | **Legacy LoParkour format** | Not used in-game; convert with `/lpk schematic convert` |
During parkour generation, when the profile rolls **schematic** type, the plugin picks a random file whose `difficulty` in YAML is **≤** the player's schematic setting (0.0–1.0).
@ -26,23 +26,23 @@ Player setting **0.25 (easy)** → only structures with difficulty ≤ 0.25.
## Creating schematics in-game (admin)
1. Get the wand: `/lp schematic wand`
2. **Left-click** = position 1, **right-click** = position 2 (or use `/lp schematic pos1` / `pos2`)
1. Get the wand: `/lpk schematic wand`
2. **Left-click** = position 1, **right-click** = position 2 (or use `/lpk schematic pos1` / `pos2`)
3. Save and register:
- `/lp create <difficulty>` — auto name `parkour-<hash>.schem` + YAML entry
- `/lp schematic create <difficulty>` — same
- `/lp schematic create <name> <difficulty>` — custom name (letters, numbers, `-`, `_`)
- `/lpk create <difficulty>` — auto name `parkour-<hash>.schem` + YAML entry
- `/lpk schematic create <difficulty>` — same
- `/lpk schematic create <name> <difficulty>` — custom name (letters, numbers, `-`, `_`)
Difficulty examples: `0.25`, `0.5`, `0.75`, `1.0` (must be between 0 and 1).
4. `/lp schematic reload` — reload files without restart
4. `/lpk schematic reload` — reload files without restart
## Converting old `.lpschem` files
Place `.lpschem` files in `plugins/LoParkour/schematics/` or legacy `schematics-new/`, then:
```
/lp schematic convert
/lpk schematic convert
```
Each file becomes `parkour-<id>.schem` in `schematics/` and gets a `difficulty:` entry (from the old metadata, or `0.5` if missing). Original `.lpschem` files are kept; delete them manually after checking.
@ -51,14 +51,14 @@ Each file becomes `parkour-<id>.schem` in `schematics/` and gets a `difficulty:`
| Command | Description |
|---------|-------------|
| `/lp schematic wand` | Selection wand |
| `/lp schematic pos1` / `pos2` | Set corners at your feet |
| `/lp create <difficulty>` | Save selection → `.schem` + YAML |
| `/lp schematic create <name> <difficulty>` | Save with custom name |
| `/lp schematic convert` | Convert all `.lpschem` in schematics folders |
| `/lp schematic list` | List loaded structures |
| `/lp schematic paste <name>` | Test-paste at your location |
| `/lp schematic reload` | Reload disk files |
| `/lpk schematic wand` | Selection wand |
| `/lpk schematic pos1` / `pos2` | Set corners at your feet |
| `/lpk create <difficulty>` | Save selection → `.schem` + YAML |
| `/lpk schematic create <name> <difficulty>` | Save with custom name |
| `/lpk schematic convert` | Convert all `.lpschem` in schematics folders |
| `/lpk schematic list` | List loaded structures |
| `/lpk schematic paste <name>` | Test-paste at your location |
| `/lpk schematic reload` | Reload disk files |
## Flow (runtime)