3.0
Compatibility
Changes
🔒 Security
-
SHA-256 Hash with Salt: Implemented secure hashing system with a unique salt per player
-
Brute Force Protection: Temporary lockout system after multiple failed attempts
- Configurable: max attempts and lockout duration
- Informative messages for blocked players
-
Password Validation: Configurable minimum requirements
- Minimum password length
- Uppercase letter requirement
- Number requirement
- Special character requirement
✨ New Features
-
Advanced Session System
- IP-based auto-login (configurable)
- Configurable session timeout
- Last activity tracking
- Automatic cleanup of expired sessions
-
Configuration Manager
- Complete and organized
config.ymlfile - All messages customizable
- Adjustable security settings
- Flexible session configurations
- Complete and organized
-
Full Pre-Login Protection
- Movement blocking
- Chat blocking
- Command blocking (except login/register)
- Interaction blocking with blocks and entities
- Damage blocking
- Item drop blocking
🔄 Improvements
-
LoginManager
- Automatic migration of old passwords to the new hashing system
- Password strength check
- Improved login attempt system
-
PlayerManager
- Integrated session management
- Player activity tracking
- Automatic data cleanup
-
DataManager
- Support for new fields (salt, IP, timestamps)
- Optimized asynchronous operations
- Better error handling
-
PlayerListener
- Comprehensive event protection
- Configurable reminder messages
- Improved user experience
📝 Updated Commands
- /register: Enhanced password validation with detailed feedback
- /login: Attempt system with temporary lockout
- /changepassword: New password validation
- /resetpassword: Still available for administrators
⚙️ Configuration
-
config.yml: New comprehensive configuration file
- Security section (hashing, attempts, validation)
- Session section (auto-login, timeout)
- Protection section (blocked events)
- Messages section (all customizable)
🐛 Bug Fixes
- Fixed insecure plain text password storage
- Fixed missing protection against command spam
- Fixed players being able to interact before logging in
- Fixed missing session timeout
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:HE8bRw2l:Vxkgl4Cb"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:HE8bRw2l:Vxkgl4Cb"
}

