minecraft-server/docs/PLAYER-SMOKE-TEST.md
s8n 96702116ee docs+pat: fix default-rank /help and Homestead claim flow
PAT whitelist was missing region/rg/hs/homestead/unclaim, blocking the
only entry-points to Homestead's claim flow for default players.
Added them to ProAntiTab/storage.yml on the live box and reloaded.

EssentialsX shadows /help by load-order, hiding the branded HelpCommand
page behind hide-permissionless-help. Added a help -> helpcommand:help
alias to commands.yml. Takes effect on next restart.

Lands plugin's jar is not installed (only its config dir remains);
docs explain why /lands references in HelpCommand and PAT are dead.

Adds:
- docs/DEFAULT-RANK-COMMANDS-2026-05-07.md   diagnosis + fix log
- docs/PLAYER-SMOKE-TEST.md                  regression checklist for
                                             YOU500 as the test rig
- scripts/test-default-perms.sh              snapshot dump for diffing
                                             before/after config edits
2026-05-07 18:19:26 +01:00

5.7 KiB

Player smoke-test — racked.ru

A regression checklist for "things a default-rank player must be able to do". Pair with scripts/test-default-perms.sh to spot LP/PAT regressions before asking the test rig to log in.

Test rig: YOU500 (LuckPerms group default, weight 10). He stays on default permanently — never elevate him; he is the canary. Operator gear-loads him via RCON give commands; that's fine and doesn't change his perms.

When to run: before any of these:

  • plugin update (jar swap)
  • LuckPerms group/perm change (anything affecting default, settler, or inheritance)
  • ProAntiTab storage.yml edit (whitelist add/remove)
  • commands.yml or help.yml edit
  • AuthMe / AuthLimbo config change
  • After server restart following a config-only change

A — Authentication path (AuthLimbo + AuthMe)

# Step Expected Pass?
A1 Log in cold (server restart, fresh session) Lands at auth_limbo (0.5 / 128 / 0.5) facing void
A2 Type /login <pw> [AuthLimbo] Restoring YOU500 to world(...) in logs; teleported back to last location
A3 Movement keys before /login No movement; chat-prompt visible
A4 Re-login within session timeout Auto-login, no prompt

B — Help and discovery

# Step Expected Pass?
B1 /help Branded HelpCommand page 1 (racked.ru header, list of basic commands)
B2 /help 2 (or arrow >>) Page 2 with /bal, /pay, /hs, /shop entries
B3 /rules Server rules from RULES.md displayed
B4 /list Player count + groups (default/Admins)

C — Skin (SkinsRestorer)

# Step Expected Pass?
C1 /skin set <name> (e.g. /skin set Notch) Skin updates within ~3s
C2 /skin url <https-png-url> Custom URL skin applied
C3 /skins (GUI) Skin browser opens
C4 /skin clear Should be denied (admin-only)

D — Land claiming (Homestead)

# Step Expected Pass?
D1 /hs create test1 "Successfully created a new region: test1" + clickable hover-link
D2 /hs set target test1 "test1 is now set as the target region"
D3 Stand in unclaimed chunk → /claim "This chunk is now part of the region test1"
D4 /unclaim (in same chunk) "This chunk has been unclaimed"
D5 /hs menu Region GUI opens
D6 /region info (or /rg info) Region data printed

If D1 returns "Unknown command" or the silent-PAT-block, the PAT whitelist regressed — see docs/DEFAULT-RANK-COMMANDS-2026-05-07.md §5a.

E — Homes & teleport (Essentials)

# Step Expected Pass?
E1 /sethome base "Home set"
E2 /home base TP to base
E3 /homes List of saved homes
E4 /deletehome base Home removed
E5 /spawn TP to spawn
E6 /back TP to prior location
E7 /tp <player> Sends TPA request (aliased)
E8 /tpaccept Accept incoming TPA

F — Economy (Vault + EZShop + AuctionHouse)

# Step Expected Pass?
F1 /bal Balance shown
F2 /baltop Top-balance leaderboard
F3 /pay <player> <n> Transfer succeeds (or "insufficient funds")
F4 /shop EZShop GUI opens
F5 /ah (or /auctionhouse) AuctionHouse GUI opens

G — Chat (CarbonChat)

# Step Expected Pass?
G1 Plain chat message Visible to others, prefix per LP rank (Adventurer for default, but operator manages prefix display elsewhere)
G2 /msg <player> hi DM delivered, both sides see it
G3 /r hi Reply works after a DM
G4 /pm <player> hi (alias) Same as /msg

H — Negative tests (must NOT work for default)

# Step Expected Pass?
H1 /op "Unknown command" or PAT-block
H2 /gamemode creative Denied
H3 /give @s diamond 64 Denied
H4 /lp ... PAT-blocks at execution (lp is global-whitelisted but LP itself denies non-ops)
H5 /hsadmin reload Denied (op-only by Homestead plugin.yml)
H6 /skin clear Denied (LP false override)

I — Voicechat

# Step Expected Pass?
I1 Connect with simple-voice-chat client Mic + speaker work
I2 Group chat Spatial audio normal

Operator workflow

  1. Run bash scripts/test-default-perms.sh > /tmp/perms-before.txt (snapshot).
  2. Make config / plugin / LP change.
  3. Run bash scripts/test-default-perms.sh > /tmp/perms-after.txt.
  4. diff /tmp/perms-before.txt /tmp/perms-after.txt — anything unexpected means the change had collateral effects on the default group.
  5. Have YOU500 walk through sections A → I above. Mark Pass/Fail.
  6. If anything regressed, see docs/DEFAULT-RANK-COMMANDS-2026-05-07.md for last-known-good state and fix recipes.

The diff in step 4 is the cheap pre-flight; the YOU500 walk-through is the authoritative regression test.


What we explicitly are NOT testing here

  • Rank-prefix display — operator manages LP prefixes/suffixes manually (locked behaviour per workspace memory). YOU500 will show "Adventurer" with false weight; that's intentional and not a regression.
  • Premium Lands plugin — the /data/plugins/Lands/ config tree exists but the jar is not loaded. If/when re-installed, this checklist needs a Lands section.
  • AuthMe registration of new accounts — separate flow, not part of the default-rank smoke test.