1.0.1
Compatibility
Required content
Changes
[1.0.1] — 2026-04-16
Fixed
-
Staff messages were leaking through DCIntegration (and any other Discord-bridge mod that hooks
ServerMessageEvents.ALLOW_CHAT_MESSAGE). Reported by the SYLX server team running DCIntegration. Root cause: Fabric'sALLOW_*_MESSAGEinvoker iterates listeners in phase order and short-circuits on the firstfalse, but listener order within a phase is undefined — so when DCIntegration registered in theDEFAULTphase the same as us, its forward-to-Discord listener sometimes ran first, posted the message, and only then did ourreturn falsecancel the in-game broadcast. The Discord channel saw the staff message; the in-game global chat didn't.Fixed by registering our listener in a dedicated
staffchat:vetophase declared to run beforeEvent.DEFAULT_PHASE. Other mods that register implicitly (the common case for chat-bridge mods including DCIntegration) land inDEFAULTand therefore run after us — meaning ourreturn falsecancels the message before they ever see it. Verified against the bytecode offabric-message-api-v1 0.116.10: the invoker really does short-circuit on the first false return.If a Discord-bridge mod also registers in an earlier custom phase, this fix won't fully isolate it (no Fabric API can resolve that conflict generically). For that case, configure the bridge to ignore staff chat or talk to the bridge author. The vast majority of Fabric chat-bridge mods, including DCIntegration, use the default phase.
Notes for server operators
If you're upgrading from 1.0.0 specifically because of the leak, drop
the new jar in mods/ and restart the server. No config changes
needed — the fix is entirely on the listener-registration side.
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:wYn2zpCf:Pu0RIknI"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:wYn2zpCf:Pu0RIknI"
}

