AuthMe 6.0.0#2962
Merged
Merged
Conversation
1bd0f37 to
7c55478
Compare
Contributor
Author
|
We're now producing jar for different platforms :
|
Use PlayerConnectionValidateLoginEvent and PlayerServerFullCheckEvent on Paper-derived platforms while keeping Spigot on the legacy PlayerLoginEvent flow.
|
Wow. |
|
Why the listeners isnt seperate as well |
Contributor
Author
What do you mean ? @lokspel |
|
Oh, okay. Hopefully it will be merged to the main branch anytime soon, its good update. |
Contributor
Author
I am awaiting the review of the amazing people who maintained the project instead of me over the past few years. |
sgdc3
requested changes
Apr 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
f93800cc4refactor: AuthMe is now multi-platformauthme-coreand introduces the first platform deliverables (authme-spigot-legacy,authme-spigot-1.21,authme-paper).PlatformAdaptersplit and folds the version bump into the structural migration.PlatformAdapteris the seam between the platform-agnostic logic inauthme-coreand the server-specific implementation shipped by each deliverable module. At startup, AuthMe loads exactly one adapter from the plugin jar, registers it in the DI container both asPlatformAdapterand as its focused sub-interfaces, then lets core services call those narrow contracts (TeleportAdapter,ChatAdapter,EventRegistrationAdapter,SchedulingAdapter, etc.) without branching on Paper vs Spigot in business code.In practice, an adapter implementation answers these questions:
getCompatibilityError()getAdditionalListeners()Example of a concrete adapter implementation:
2a6c9f612feat: Dialog implementation (Spigot/PaperMC 1.21.8+)DialogAdapterto the platform abstraction.6ff78b725test: Update to Junit/Mockito 5DelayedInjectionExtension,TempFolder).0bdfaf9c6refactor: Move loading safeguards to each platform implementationse28ded77ffeat: Register commands through Brigadier for PaperCommandRegistrationAdapterto the platform abstraction.7be399af3fix: Asynchronous mail verificationbb5f6f1c2refactor: rethink spawn/respawn/join location logicTeleportationService,SpawnLoader, and limbo persistence expectations.5977687e1refactor: Abstract scheduling for cross-platform thread managementSchedulingAdapterandCancellableTaskinauthme-core.5dfb395f3refactor: Extract shared Paper code into authme-paper-commonauthme-paperdepend on that shared module instead of owning duplicated implementation details.3ae4257aefeat: Add Folia platform supportauthme-foliadeliverable module, metadata, and ServiceLoader registration.f994d9e5adocs: Update documentation tooling/templates and re-generateauthme-core/src/test/java/tools/docs/.docs/to match the new platform/module architecture.7c55478b4chore: Build java 21 modules only when java 21 is available3931107b8fix(platform): migrate Paper/Folia login handling to split eventsPlayerLoginEvent.PaperLoginValidationListenerthat usesPlayerConnectionValidateLoginEventfor single-session checks andPlayerServerFullCheckEventfor full-server/VIP handling.PlayerLoginEventpath while disabling that path on Paper-derived platforms.2c6c384b1feat: Add PBKDF2Base64 hash algorithm and Auth+ converterAbstractPbkdf2as a shared base for PBKDF2-based encryption methods, factoring outnumberOfRoundsconfiguration and thePBKDF2Enginederivation/verification helpers.Pbkdf2to extendAbstractPbkdf2instead ofHexSaltedMethoddirectly.Pbkdf2Base64: PBKDF2-HmacSHA256 with Base64-encoded salt and hash, formatpbkdf2$<iter>$<salt_b64>$<hash_b64>, registered asPBKDF2BASE64inHashAlgorithm.AuthPlusConverterto migrate accounts from the Auth+ plugin (plugins/Auth/players.yml). Resolves UUID to player name via the Bukkit offline-player cache. RequirespasswordHash: PBKDF2BASE64andpbkdf2Rounds: 120000in AuthMe's config before running.docs/converters.md, a hand-maintained reference page documenting all available converters and their prerequisites.8c8b025a3feat(config): split timeout into loginTimeout and registerTimeoutsettings.restrictions.timeoutproperty with two independent properties:settings.restrictions.loginTimeoutandsettings.restrictions.registerTimeout.30seconds (the previous default), so behaviour is unchanged out of the box.SettingsMigrationServicethat reads the oldtimeoutvalue and writes it to whichever of the two new keys are missing, preserving users' customised values across upgrade.LimboPlayerTaskManager,LimboService,AsynchronousJoin, and the logout/unregister processes to inject the two distinct settings.settings.restrictions.timeoutas an obsolete key that gets cleaned up on the next config rewrite.96a2ff801feat(i18n): Add per-player locale and fallback on server global messages on needPlayerLocaleResolver, which maps Minecraft client locale strings (e.g.fr_fr,zh_cn) to AuthMe language codes (fr,zhcn), covering special cases such aspt_br→brand the Chinese regional variants.AbstractMessageFileHandlerwith a per-languageFileConfigurationcache: language files are copied from the JAR on first access and kept in memory, and the cache is cleared on/authme reload.getMessage(key, language)falls back to the server-configured language when the requested locale is unavailable or missing a key.Messagesto resolve each player's client locale throughPlayerLocaleResolverand route the lookup through the new per-language cache, while non-player senders continue to use the global language.settings.perPlayerLocale(defaulttrue) toPluginSettings, allowing servers with fully customised single-language message files to opt out and send all players the same language.