Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
š MyLogin
MyLogin is a lightweight authentication and account-protection plugin for Minecraft Paper servers.
It provides password-based authentication, migration from Passky, offline-mode account protection, duplicate session protection, and administrative account management tools.
š Project Background
MyLogin was created as a modern alternative to Passky, allowing server owners to continue using existing player login data while maintaining compatibility with current Paper releases.
The plugin supports migration of existing Passky SHA-256 password data, allowing players to keep their existing passwords after migration.
⨠Features
- Password-based player authentication
- Passky SHA-256 migration support
- Configurable login timeout
- Maximum login attempt protection
- Optional IP-based auto-login
- Logout support
- Admin password management
- Blindness protection before login
- Firework effect after successful login
- Username case protection for offline-mode servers
- Duplicate session protection
- Username collision detection and reporting
- YAML-based storage
- Configuration migration support
š¦ Requirements
- Server: Paper
- Supported Versions: 1.21.x
- Java: 21+
Compatibility Notes
MyLogin uses only the standard Bukkit/Paper API and does not use NMS or CraftBukkit internals.
Because of this, the plugin is expected to work on newer Paper builds, including current 26.1.x releases, but only Paper 1.21.x is officially supported.
š Player Commands
| Command | Description |
|---|---|
/register <password> <password> |
Register a new account |
/login <password> |
Log into your account |
/changepassword <old> <new> |
Change your password |
/logout |
Log out of your current session |
š Admin Commands
| Command | Permission | Description |
|---|---|---|
/migrate |
mylogin.admin |
Migrate Passky user data |
/resetpassword <player> <newpassword> |
mylogin.admin |
Reset a player's password |
/deleteplayer <player> |
mylogin.admin |
Delete a player's account |
/mylogin reload |
mylogin.admin |
Reload configuration |
/mylogin scannamecollisions |
mylogin.admin |
Scan users.yml for username case collisions |
/mylogin checkplayer <player> |
mylogin.admin |
View player login information |
/mylogin stats |
mylogin.admin |
View MyLogin statistics |
āļø Configuration
Example:
login-timeout-seconds: 300
max-login-attempts: 5
min-password-length: 4
max-password-length: 32
ip-remember: true
ip-remember-timeout: 86400
effects:
blind: true
firework: true
security:
enforce-name-case: false
scan-name-collisions-on-startup: true
block-duplicate-sessions: true
migration:
skip-existing-users: true
š Username Case Protection
Offline-mode servers treat usernames with different capitalization as different accounts.
Examples:
SkyBuilder
SKYBUILDER
sKyBuIlDeR
When enabled:
security:
enforce-name-case: true
Players must reconnect using the exact username capitalization originally registered.
Example:
Registered:
SkyBuilder
Joining:
SKYBUILDER
Result:
This name is already registered as 'SkyBuilder'.
Please reconnect using that exact name.
This helps prevent:
- Duplicate inventories
- Duplicate economy accounts
- Duplicate claims
- Duplicate permissions
- Duplicate backup records
š” Duplicate Session Protection
When enabled:
security:
block-duplicate-sessions: true
If a player is already online:
SkyBuilder
and another client attempts to connect using:
SkyBuilder
the new connection is denied and the original player remains online.
š Username Collision Scanner
When enabled:
security:
scan-name-collisions-on-startup: true
MyLogin scans users.yml for username case collisions.
Example:
SkyBuilder
SKYBUILDER
sKyBuIlDeR
Results are written to:
plugins/MyLogin/data/name-collision-log.yml
š Migration From Passky
Requirements:
- Passky encoder must be SHA-256
- Player identifier must use player names
MyLogin can import existing Passky accounts without requiring players to register again.
Migration files:
plugins/MyLogin/Migration/old-users.yml
plugins/MyLogin/Migration/migration-log.yml
Migration protection:
migration:
skip-existing-users: true
Existing MyLogin accounts are not overwritten by default.
š¾ Data Storage
Main data files:
plugins/MyLogin/data/users.yml
plugins/MyLogin/data/name-collision-log.yml
plugins/MyLogin/Migration/old-users.yml
plugins/MyLogin/Migration/migration-log.yml
š License
MIT License


