Sueta

Identica

3.0.1

Modular next-gen Minecraft authentication and identity plugin with pluggable providers

·Plugin
  1. 3.0.1latestFixes for Logins, Clusters and SQLitelast week
    Identica 3.0.1 fixes players left without a prompt or reason on the auth server, join restrictions and recognition that went stale across the proxies of a cluster, and SQLite keeping the rows of deleted accounts, old password hashes included.

    Upgrading

    * Replace the plugin and provider jars; the configuration and the database need no changes from you. SQLite:* the first start deletes the rows that deleted accounts left behind, such as provider profiles and the Credential password history with its old password hashes. From then on SQLite deletes them with the account, like the other databases. <!-- release-notes:end -->

    Changelog

    Fixes

    * Authentication: Fixed two renames to one username at once failing with a storage error instead of reporting it taken ([#254](https://github.com/whereareiam/Identica/pull/254)) * Authentication: Fixed players getting no prompt while allowResume is off ([#240](https://github.com/whereareiam/Identica/pull/240)) * Commands: Fixed the 2FA reset reporting success for a unique id without an account ([#228](https://github.com/whereareiam/Identica/pull/228)) * Credential: Fixed passwords longer than 72 bytes failing registration with bcrypt ([#231](https://github.com/whereareiam/Identica/pull/231)) * Database: Fixed SQLite keeping rows of deleted accounts ([#251](https://github.com/whereareiam/Identica/pull/251)) * Migration: Fixed a move confirmed too late being reported as not pending instead of expired ([#235](https://github.com/whereareiam/Identica/pull/235)) * Recognition: Fixed a proxy recognising a player from an address their latest login no longer used ([#247](https://github.com/whereareiam/Identica/pull/247)) * Restriction: Fixed a lifted join restriction staying in force on the other proxies of a cluster ([#243](https://github.com/whereareiam/Identica/pull/243)) * Routing: Fixed players turned away by the completion server staying on the auth server without a reason ([#225](https://github.com/whereareiam/Identica/pull/225)) Full Changelog: https://github.com/whereareiam/Identica/compare/3.0.0...3…

    Support

    If you need help with setup, configuration, or upgrades, join us on [Discord](https://discord.arcadeya.com). If you find a bug or want to suggest a feature, use [GitHub](https://github.com/whereareiam/Identica).
    6 downloads
  2. 3.0.0A more reliable Identicalast week
    Identica 3.0.0 fixes dozens of login, session and replication problems, reorganises the configuration into clear documents per area, and upgrades your 2.2.1 installation by itself on the first start.

    Highlights

    Fewer ways for a login to go wrong.* Login progress stays with the connection that made it, so a second client under the same name can't take over a login in progress; while one connection logs in, others under its name are asked to try again shortly. Commands typed before their prompt are kept, authenticator codes work only once, and provider denials such as lockouts can't be bypassed through another provider. Sessions and replication hold up across proxies.* An account has one active session, and a crashed proxy's sessions end within 30 seconds. Two proxies writing the same login or session at the same moment no longer overwrite each other: the one that comes second disconnects its player with "Reconnect to try again." (engine.concurrentChangeKick). Prompts and registration work with Redis replication, and proxies sharing a database start and save together without failing. Configuration is split by area.* Settings, engine, routing, username conflicts and each feature have their own document, and files carry a version, so Identica upgrades them itself, starting with your 2.2.1 configuration and database. Usernames are unique without regard to case.* A player can't register alice while an account holds Alice, and a Credential player who registered as Alice and joins as alice logs in to the same account, with its password and UUID. Conflict rules decide who keeps a name when, for example, a premium owner joins under a name a Credential account holds. Providers are picked more reliably.* A provider's hostname, a verified account link or a running migration decide the provider before name guesses do. Routing targets can follow the proxy's forced hosts, and Premium can detect premium clients by their profile (experimental, off by default). Statistics.* Next to bStats, Identica sends anonymous statistics and error reports to FastStats, including logins by provider, 2FA adoption and client versions. Player names, unique ids and addresses are never sent.

    Upgrading

    Before the first start:* stop every proxy that uses the database and back up the database and the data directory. The first proxy to start brings both up to date. Versions:* Identica upgrades from 2.2.1 and newer. On an older installation, start 2.2.1 once first. MySQL 8.0.19 or newer is required; on an older server Identica stops before it changes any table. MariaDB has no minimum version. Configuration:* every setting, message and command you changed in 2.2.1 moves to the document that holds it now, and the files an upgrade changes are copied to .strata/backup/. * The provider files in providers/Credential/ and providers/Premium/ are not upgraded: a value whose name or place changed falls back to its default, so compare them with the provider pages. * Removed settings: connection.sessions.activeTtl (sessions now expire after replication.heartbeatTimeout once their proxy stops), a scenario's advanceLockTtl, and the advanceBusy and pipelineKick messages. The username synchronization failure is one message, pipeline.identity.synchronizationFailed, with the text of 2.2.1's authentication scenario. * An account has one session now, so the session concurrency policy ALLOW_MULTIPLE no longer exists. The upgrade turns it into REPLACE_EXISTING, in the settings and in a provider's session settings, so the newest login takes over; set REJECT_NEW to keep the first login instead. Usernames:* accounts that already share a name in two cases keep logging in through their own providers; the oldest holds the name. The console lists them on each start and /identica admin username duplicates shows them; nothing has to be changed. * /identica credential register only creates new accounts: it no longer links Credential to an existing account, and it refuses a name any account holds, in any case and through any provider, naming that account. The new account gets the UUID reserved for its name with /identica admin reservation set, so accounts moved from another plugin can keep their UUIDs. * The conflict rules of 2.2.1 (format_display) have no counterpart. Identica replaces them with the new default rules and deletes providers/conflicts; set your own rules again in the new form. The messages pipeline.policy.conflictDenied and pipeline.policy.entrypointRequired are removed. Redis: delete the session keys of 2.2.1 before the first start (`identica:sessions: with the default key names), for example with redis-cli --scan --pattern 'identica:sessions:*' | xargs redis-cli del`. This version stores sessions differently. Redis ACL:* a Redis user with restricted commands needs evalsha and script as well, for the writes that only succeed over what was read. Statistics:* turn FastStats off in plugins/faststats/config.properties; the Statistics page lists what is sent.

    For addon developers

    Access:* IdenticaAPI is an interface. Get it with IdenticaAPI.get(), or IdenticaAPI.whenReady(...) when your addon may start first: IdenticaAPI.getEventManager() becomes IdenticaAPI.get().getEventManager(), getService(...) became findService(...) returning an Optional, and getPresenceService() became getIdentityService(). Startup:* Identica starts in phases, and a RuntimeLifecycle names its StartupPhase. IdenticaBootstrappedEvent is called once the features have started; IdenticaReadyEvent at the end, once providers are loaded and connections are handled. Usernames:* a username lives in its own table, read and changed through AccountUsernamePersistenceService (find, findHolder, setSource, rename), which replaces AccountUsernameStatePersistenceService, AccountUsernameHistoryPersistenceService and AccountPersistenceService.updateUsername. AccountService.create, AccountPersistenceService.create and rename return a UsernameWriteResult, and create takes the username's source and provider. AccountUsernameDuplicatePersistenceService lists shared names. Providers and conflicts:* ProviderTrait is ProviderGuarantee, with OWNED_USERNAME for AUTHORITATIVE_USERNAME, and ProviderClaimOrigin.ENTRYPOINT is HOSTNAME. Conflicts are settled by ConflictService rules and registrable ConflictOutcomes, which a provider adds through IdenticaProvider.conflictOutcomes(); UsernameAssigner replaces UsernameConflictHandler, and the resolvers, guards and conflict types are gone. Sessions and logins:* an account has one session: SessionConcurrencyPolicy.ALLOW_MULTIPLE and SessionService.findAllByUniqueId are gone. SessionService.open fails with ConcurrentSessionChangeException when another login of the account was opened in between. PipelineStateReference names a connection. UsernameHeldEvent and LoginSupersededEvent report refused and superseded logins. </content> </invoke> Replication:* ReplicatedCache reads with a revision (read, returning Versioned) and writes or removes only over what was read (write, remove); a ReplicationAdapter implements compareAndPut and compareAndInvalidate. PipelineStateStore.save returns whether it saved, clear(reference, read) clears only the state that was read, and update is gone. <!-- release-notes:end -->

    Changelog

    What’s new

    * Authentication: Introduced usernames unique without regard to case ([#201](https://github.com/whereareiam/Identica/pull/201)) * Configuration: Introduced upgrades of 2.2.1 configuration directories ([#196](https://github.com/whereareiam/Identica/pull/196)) * Database: Introduced upgrades of 2.2.1 databases ([#182](https://github.com/whereareiam/Identica/pull/182)) * Identity: Introduced username conflict rules on p
    8 downloads
  3. 2.2.1Premium Stays PremiumJun 29, 2026
    This update focuses on authentication reliability for mixed premium and credential setups. Premium authentication now works consistently in both seamless and interactive flows, and fallback authentication preserves the correct provider context and result messages.

    What's Changed

    Fixes
    * Premium: allow premium authentication to complete correctly in seamless mode * Engine: preserve provider subject when switching to fallback providers * Engine: keep provider-specific fallback denial results instead of showing a generic authentication failure Full Changelog: https://github.com/whereareiam/Identica/compare/2.2.0...2…
    14 downloads
  4. 2.2.0Packed for EveryoneMay 25, 2026
    Identica now ships as a universal plugin jar, simplifying installation and platform support. This update also brings minor command fixes and safer auth-skipping behavior.

    What's Changed

    What’s new
    * Platform: Introduce universal plugin jar by @whereareiam in https://github.com/whereareiam/Identica/pull/76
    Enhancements
    * Command: Permission messages from commands are now showed without brackets by default by @whereareiam in https://github.com/whereareiam/Identica/pull/79
    Fixes
    * Command: Ensure root aliases are registered properly by @whereareiam in https://github.com/whereareiam/Identica/pull/78 * Engine: block auth-skipping recognition on untrusted IPs by @whereareiam in https://github.com/whereareiam/Identica/pull/80 Full Changelog: https://github.com/whereareiam/Identica/compare/2.1.1...2…
    25 downloads

Similar projects

Plugin →