Seasonal permission resets for TF-Minecraft.
PermCleaner clears selected permissions assigned directly to players in LuckPerms when a new season begins. It keeps permissions that match the server's preservation rules, while retaining group membership and other non-permission data.
Players are processed as they join or enter the relevant world. A saved season record prevents the same player from being automatically cleaned again during that season.
- Season-based cleanup — returning players receive the permission reset for the current season.
- Preserved permissions — exact names and permission families can be kept through the reset.
- Focused changes — removes direct permission nodes while preserving groups, prefixes, suffixes, and other LuckPerms node types.
- World-aware processing — automatic cleanup can be limited to players entering a particular world.
- Staff inspection — preview which nodes would be removed or kept before applying an individual cleanup.
- Persistent season tracking — completed cleanup records survive server restarts.
The plugin supports seasonal progression resets while keeping the permissions and account metadata that should carry forward.
Technical documentation is maintained in TF-Minecraft/Docs.
Run mvn clean verify with Java 21 after installing the pinned dependencies
using the build guide.
JUnit 5 and Mockito cover permission filtering, season stamps, commands,
listeners, lifecycle, and asynchronous cleanup. Surefire test results are in
target/surefire-reports/.
JaCoCo enforces 100% executable runtime line coverage with no production-code
exclusions. Instruction and branch coverage are reported separately in
target/site/jacoco/; build and release CI upload generated coverage reports.
Mocks do not verify a live LuckPerms server or its shared storage.
Copyright (c) 2026 TF-Minecraft contributors.
TF-Minecraft-authored material in this repository is licensed under the Artistic License 2.0. Third-party dependencies and bundled material retain their own licenses.