All versions
1.0.2
Release
McChatBridge 1.0.23 weeks ago 1
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Dedicated servers only
Changes
Added
- Account System: Login and registration windows before accessing the chat.
- Sessions: Login is remembered for 7 days (HttpOnly cookie), surviving server restarts—no re-login required.
- "Logout" button: Added to the player panel.
- Brute-force protection: Rate limiting on login (5 failed attempts per IP → 15-minute lockout).
- Emoji support: The emoji panel is now functional.
- Image and GIF uploads: The 📎 button is now working; images display in-game via ChatImage.
- Notification sound: A harp sound plays for new global and private messages (built into the mod).
- Background switcher: Personal button 🖼️ (desktop only); the background is stored in the user's browser.
- "Scroll to bottom" button: Appears when scrolling up, returns instantly to the latest messages, 50% transparency, blinks yellow on new messages. Styled in a square, Minecraft-inspired design.
- New endpoints:
/auth/register,/auth/login,/auth/logout,/auth/me,/notify.wav.
Changed
- Nickname binding: Nicknames are now tied to accounts and cannot be edited manually (prevents impersonation).
- Smelting window: Fully localized (EN/RU); previously, some labels were hardcoded in Russian.
- Interface language: Applied on page load, rather than only after manual switching.
- Avatar delivery: Detects actual file type (PNG/JPEG/GIF) and serves the correct Content-Type.
Fixed
- SSE connection drops: Resolved constant disconnections and
ERR_INCOMPLETE_CHUNKED_ENCODINGerrors; the connection now stays open until the client disconnects. - Smelting item loss: Fixed items disappearing from smelting slots during the process (server-side race condition—furnace access is now synchronized).
- "Gave Air!" message: Fixed the issue where items were transferred as "Air"; the item name is now retrieved before adding it to the inventory.
- Hardcoded labels: Removed hardcoded Russian labels that appeared in English mode (chat tabs/smelting/tooltips).
Security
- Password hashing: PBKDF2-HMAC-SHA256 (210,000 iterations) + individual salt. Passwords are never stored in plain text.
- Session identity binding: Sending messages, PMs, reading PM history, and uploading avatars use the nickname from the session—users cannot write as others or read private messages that aren't theirs.
- Avatar upload validation: Verified by file signature (magic bytes) + 2MB limit.
- Path traversal: Eliminated a vulnerability in avatar nickname processing.
New Files (created automatically)
config/mcchatbridge_accounts.json— accounts (salt + hash).config/mcchatbridge_sessions.json— active sessions.
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:I2D2TvHT:IG0H9RM0"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:I2D2TvHT:IG0H9RM0"
}

