Skip to content

Integrate native FairPerks feature - #109

Merged
remdui merged 76 commits into
mainfrom
agent/integrate-fairperks
Aug 5, 2026
Merged

Integrate native FairPerks feature#109
remdui merged 76 commits into
mainfrom
agent/integrate-fairperks

Conversation

@remdui

@remdui remdui commented Aug 5, 2026

Copy link
Copy Markdown
Member

Summary

Integrates the standalone FairPerks plugin into ServerFeatures as a native, lifecycle-managed feature and replaces Essentials-backed fly and god behavior.

What changed

  • adds native /fly, /god, /godmacro, and /fairperks inspect Brigadier commands;
  • owns authoritative desired/effective fly and god state without depending on Essentials at runtime;
  • persists state only for players with the dedicated use and persist permissions;
  • safely restores persistent flight when reconnecting while flying or in mid-air;
  • removes stale flight/god state when a player logs in without the required permissions;
  • preserves creative/spectator and pre-existing non-FairPerks flight through explicit ownership tracking;
  • provides event-order-safe, one-use fall-damage grace when feature-owned flight is revoked while airborne;
  • supports current-session staff overrides without accidentally persisting rank-ineligible state;
  • implements configurable world, game-mode, combat, nearby-hostile, PvP, mob, targeting, explosive, ignition, and lava policies;
  • attributes indirect actions through projectiles, owner UUIDs, pets, fireworks, evoker fangs, TNT, and area-effect clouds;
  • preserves legacy god-macro and spawner-mob PDC compatibility;
  • performs optional one-time migration that reads and clears legacy Essentials fly/god flags, then hands ownership to native FairPerks state;
  • validates required command ownership and configured aliases before completing feature initialization;
  • initializes already-online players safely during runtime enable and preserves state across reload/disable;
  • adds complete operator documentation and focused regression tests.

Migration

  1. Configure the new FairPerks permission nodes.
  2. Stop the backend and remove or disable the standalone FairPerks plugin.
  3. Disable Essentials' fly and god command roots.
  4. Keep Essentials installed for the first migrated login only when legacy user flags must be read and cleared.
  5. Enable the ServerFeatures FairPerks feature and complete the acceptance checklist in docs/features/fairperks.md.

Validation

GitHub Actions run 1015 passed on head 04230d05c67e9fdaecee5502d1f8e1d65471920e:

  • CI Lint;
  • full Maven verify reactor;
  • unit tests and JaCoCo coverage enforcement;
  • Checkstyle, dependency and duplicate-class analysis;
  • bundled Paper platform acceptance.

Regression coverage includes configuration immutability, lifecycle initialization, shutdown persistence, staff session overrides, indirect source attribution, hostile classification, Essentials migration, reload restoration, and fall-grace event ordering.

All inline review threads are resolved.

@remdui
remdui marked this pull request as ready for review August 5, 2026 13:10
@remdui
remdui merged commit 1b8015c into main Aug 5, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant