- Made by demirler
- Runs on 1.17 to 1.21.x
- Minimum required Java version is 17
InvitePlugin is a flexible access-control system that redefines how player entry is managed on Minecraft servers.
It combines the strict security of a whitelist with the practicality and scalability of a token-based verification model.
Instead of manually editing server files, administrators can dynamically control access while maintaining full oversight of player activity.
Players cannot perform any in-game actions until they activate their account.
/invite TOKEN
Activates the player using a valid invite token.
/invite
Generates a new invite token.
/inviteop UUID
Allows an operator to manually verify a player without consuming a token.
Operators have unlimited token generation privileges.
Drop the .jar file into plugins folder of the server
InvitePlugin replaces the static nature of the default whitelist with a dynamic verification layer:
- Players join the server normally.
- Until verified, they are fully restricted from performing actions.
- Verification occurs via token validation.
- Operators can bypass token usage when necessary.
This preserves whitelist-level protection while improving usability and automation.
All player data is stored persistently in a local .db file.
Each player record contains:
- UUID (primary identifier)
- Last known username
- Remaining invite count
- Verification status
- Failed activation attempts
- Tokens generated by the player
The system is UUID-based to ensure stability across name changes.
To prevent brute-force attempts:
- Failed token attempts are tracked per player.
- After exceeding a defined threshold, a cooldown is applied.
- Cooldown duration increases progressively with repeated failures.
This makes token guessing impractical while preserving legitimate usability.
- Designed for compatibility with Spigot and Paper.
- Uses UUID-based player tracking instead of name-based identification.
- Includes Paper-aware offline player resolution with safe fallback for Spigot.
- Storage system abstracts player data through a structured PlayerData model.
- Verification logic updates state atomically and persists immediately.
The /inviteop command performs a force-verification by marking the player's joinedBefore state as true without modifying invite counts.
The architecture is intentionally lightweight and designed for minimal performance overhead.
Licensed under GNU GPL v3.