All versions
4.0.1
Release
NewLogin 4.0.13 months ago 1,388
Compatibility
Minecraft: Java Edition
1.21.x
Platform
Paper
Changes
Changelog
Highlights
This release focuses on making the project reproducible, improving account security, fixing email recovery, and cleaning up legacy configuration behavior.
Added
- Added a fully reproducible project structure, including
pom.xml,src/main/java, resources,README,LICENSE,CHANGELOG, and CI setup. - Added versioned password hashing using PBKDF2-HMAC-SHA256.
- Added unique salts, safe password comparison, and automatic migration from legacy SHA-256 password hashes.
- Added real SMTP email delivery with TLS/STARTTLS, authentication, UTF-8 HTML support, timeouts, a dedicated executor, and reload support.
- Added recovery-code expiration, maximum attempt limits, and cooldowns per player/IP.
- Added
schema-versionsupport to persisted data. - Added automatic backups before destructive data operations.
- Added UUID/IP-based lockout protection.
- Added blindness effect support for pre-login protection.
Changed
- Updated
/email confirmto correctly useargs[1]. - Email recovery is now allowed before login.
- Recovery codes now use
SecureRandom. - Password recovery no longer sends or stores temporary plain-text passwords.
- Players now set a new password directly using:
/email confirm <code> <new-password> <confirm-password>
or:
/resetpassword own ...
- Pre-login command protection now uses exact command matching.
- Player visibility and effects are now properly cleaned up on quit and plugin disable.
DataManager.javanow properly removesplayers.<uuid>entries and saves a clean data snapshot.
Removed
- Removed the plain-text temporary password recovery flow.
- Removed MySQL and captcha settings from the default configuration.
- Legacy captcha settings are now automatically disabled if found in old configuration files.
Fixed
- Fixed destructive persistence operations not fully removing player data.
- Fixed stale or unsafe recovery behavior from the old password reset flow.
- Fixed legacy configuration compatibility issues by enforcing valid YAML handling.
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:8HoHvWlB"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:HE8bRw2l:8HoHvWlB"
}

