Tags
Creators
Details
3.3.2
Compatibility
Required content
Changes
this update adds a public developer API for third-party plugins, hardens auth security, and fixes a bunch of stability issues across the board.
so whats new:
developer API
- new
apimodule for third-party plugin integration, available on maven central - typed message channels via
CommandBridgeAPI.channel(Class)with send, request, broadcast, and listen - delivery conditions on senders:
requirePlayer(UUID)to gate on player presence,whenOnline(UUID)to queue until the player connects - server lifecycle events via
onServerConnectedandonServerDisconnected(proxy only) - connection state tracking via
onConnectionStateChanged(all platforms) - player locator service for resolving which server a player is on (proxy only)
CommandBridgeProvider.get()andCommandBridgeProvider.get(Class)to obtain the API instance- proxy-only methods return
Optional<Subscription>instead of rawSubscription, returningOptional.empty()on backends - full JDK-style JavaDocs across all API types
security
- hardened auth flow with constant-time HMAC comparison to prevent timing attacks
- fixed
AUTH_OKrace condition where messages could be sent before the client processed auth success - added reconnect on failed server proof verification
- operator execution no longer grants wildcard permissions, only explicit ones
fixes
- fixed cooldown being applied before dispatch instead of after
- fixed MiniMessage tags in error messages not being escaped
- fixed script reload not being thread-safe
- fixed player join events firing for already-tracked players
- fixed polling not being reset on shutdown
- fixed auth check missing on config reload
- fixed
Logvarargs handling for single-argument messages - fixed config name not being passed to
ConfigManagerin the velocity backend adapter - fixed operator permission resolution being inconsistent across platform executors
- left-aligned all chat UI output and removed pixel-width centering
- various null guard and stability improvements across dispatch, registration, and player tracking
internals
- modernized codebase to java 21 idioms
- rebuilt test suite from scratch with 136 tests across core, velocity, and backends
- added CI test workflow and testing documentation
breaking changes:
RunAsandConnectionStatemoved to theapipackage, internal duplicates removed
latest commit: d7f43a1
Optional dependencies
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:wIuI4ru2:lMXDdf9l"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:wIuI4ru2:lMXDdf9l"
}

