2.0.3-BETA
Compatibility
Changes
CoolAuth v2.0.3 - Feature Summary
New Features Added
1. Password Strength Requirements
Configurable password validation system to enforce secure passwords.
- Minimum and maximum password length
- Require uppercase letters (A-Z)
- Require lowercase letters (a-z)
- Require numbers (0-9)
- Require special characters (configurable list)
- All settings configurable in config.yml
2. BCrypt Encryption
Added BCrypt as a third encryption option for industry-standard password hashing.
- Option 1: OWE - One-Way Encryption using SHA-256 with salt
- Option 2: TWE - Two-Way Encryption using AES (recoverable)
- Option 3: BCRYPT - Industry-standard adaptive hashing (new)
- Configurable BCrypt rounds (10-12 recommended)
- BCrypt library shaded into plugin JAR
3. Password Recovery System
Complete password recovery system with Discord webhook integration.
- GUI-based reason selection
- Configurable recovery reasons list
- Chat input for additional details
- Unique 8-character recovery codes
- Discord webhook notifications with embedded messages
- Recovery request cooldown system
- Recovery code expiry time
- Data persistence across server restarts
- Commands: /passwordrecovery or /pr
4. New Admin Commands
Extended admin command set for better server management.
| Command | Description |
|---|---|
| /coolauth reload | Reload configuration and reconnect storage |
| /coolauth unregister [player] | Unregister a player account |
| /coolauth setpass [player] [password] | Set a player password |
| /coolauth info [player] | View player authentication info (IP, location, status) |
| /coolauth forcelogin [player] | Force authenticate an online player |
| /coolauth forceregister [player] [password] | Register a player manually |
| /coolauth banip [ip] | Ban an IP address |
| /coolauth unbanip [ip] | Unban an IP address |
| /coolauth approve [code] | Approve a password recovery request |
| /coolauth deny [code] | Deny a password recovery request |
| /coolauth lookup [ip] | View all accounts registered from an IP |
5. Tab Completion
Full tab completion support for admin commands.
- Subcommand suggestions
- Online player name suggestions
- Banned IP suggestions for unbanip
- Active recovery code suggestions for approve/deny
Configuration Additions
Password Section
password:
enabled: true
min_length: 8
max_length: 32
require_uppercase: true
require_lowercase: true
require_numbers: true
require_special: false
special_characters: "!@#$%^&*()_+-=[]{}|;:,.<>?"
Recovery Section
recovery:
enabled: false
discord_webhook: "https://discord.com/api/webhooks/YOUR_WEBHOOK_HERE"
cooldown: 3600
code_expiry: 86400
reasons:
- "I forgot my password"
- "My account was compromised"
- "I lost access to my account"
- "Other"
gui_title: "&8&lPassword Recovery"
embed_color: "#3498db"
embed_title: "Password Recovery Request"
Security Section Updates
security: encryption_type: "BCRYPT" bcrypt_rounds: 10
Storage Updates
Database schema updated with new columns:
- username - Stores player username
- registered_at - Timestamp of registration
Automatic column migration for existing databases.
New Messages Added
- Password strength error messages
- Recovery system messages
- Extended admin command messages
- IP ban/unban messages
- Player lookup messages
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:8vriRZvA:oilVQfoM"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:8vriRZvA:oilVQfoM"
}

