JanusMCD – Discord ↔ Minecraft Chat Bridge & Passwordless Au
0.3.4A secure Discord ↔ Minecraft chat bridge with passwordless login, real-time chat sync, account linking, and advanced verification for Spigot, Paper, and Purpur.
0.3.4latestJanusMCD 0.3.4Apr 13, 2026 [0.3.4] - 2026-04-13
[!NOTE]
This update represents a foundational shift towards a complete Zero Trust Architecture, prioritizing immutable security boundaries and proactive data integrity.
Added
- Unified Linking Bottleneck: Refactored the core account linking logic to funnel all entry points (Slash Commands, Text Messages, and Direct Links) through a singlecompleteLinkProcessmethod. This ensures consistent enforcement of all security rules across the entire plugin. - Secure Link Wrapper: Restored a securelinkAccountwrapper forAuthManagerthat maintains API compatibility while strictly routing all login refreshes through the mandatory security bottleneck. - Dynamic JDA Maintenance: Refactored core managers to support hot-swapping the Discord JDA instance during reloads, allowing the plugin to refresh its connection without requiring a full server reboot. - Friendly Auth-Restart Messaging: Enhanced the login flow to detect when the authentication system is restarting, providing players with informative guidance and a friendly kick message instead of generic errors. - Dynamic Channel Feedback (STATIC Mode): - The in-game linking instructions now dynamically resolve and display the #channel-name of the designated Discord linking channel whenSTATICmode is enabled. - ImprovedAccountLinkListenerto provide immediate, 5-second auto-deleting feedback when a user sends a code to the wrong public channel inSTATICmode. - Linking Privacy Enhancement: Upgraded all user-facing account linking Slash Commands (/link register,/link drop,/link status,/link remove,/link clear) to use ephemeral responses. Confirmation embeds and failure notices are now private to the executing user. - Differentiated Limit Feedback: Refactored theLinkErrorsystem to distinguish between different types of failure limits. -MAX_LINKS_REACHED: Specifically messages the user about hitting the maximum accounts per Discord profile. -MAX_IP_LINKS_REACHED: Explicitly notifies users when they reach the maximum allowed links from their current IP address. - Auto-Deleting Public Messages: Implemented a 5-second automatic cleanup for linking codes and bot responses in public channels. This ensures that valid/invalid codes and linking status messages do not clutter public text channels. - Improved Listener Feedback: TheAccountLinkListenernow provides informative replies in public linking channels when a valid code is posted but fails due to a limit (like IP, Discord, or Guild requirements), ensuring users understand why the process stalled without revealing valid codes to others. - SLASH_ONLY Mode Feedback: In-game linking codes posted via text (DMs) whileSLASH_ONLYis enabled now receive a direct response pointing the user to the/link registercommand.Fixed
- Shutdown Safety Guardrails: Implementedplugin.isEnabled()checks across all asynchronous task schedulers to preventIllegalPluginAccessExceptionerrors during server shutdown or reloads. - Discord API Error Suppression: Silenced "Requester has been stopped" log spam that occurred when the Discord bot was forced to shutdown or restart while tasks were still in flight. - Join-Time Blindness Persistence: Fixed a race condition where players would remain blinded after being unfrozen on their first join after an update. LeveragedEventPriority.HIGHESTto ensure a final blindness cleanup at the end of the join sequence, providing a robust fix without artificial delays. - Duplicate Join Messages: Resolved an issue where authenticating via 2FA would occasionally trigger duplicate join broadcasts by centralizing broadcast logic within the linking bottleneck. - STATIC Mode DM Fix: Fixed an issue where private messages (DMs) were ignored whenSTATIClinking mode was enabled. DMs are now correctly processed regardless of the designated static channel.Technical
- Build Optimization: Streamlined themaven-shade-pluginconfiguration to prevent redundant artifact generation and reduce build noise.0.3.3JanusMCD 0.3.3Mar 23, 2026 [0.3.3] - 2026-03-23
⚠️ Configuration Update Required ⚠️ To take advantage of the newSTATICandSLASH_ONLYLinking Modes, as well as customize Slash Command cooldown limits, please backup and delete your currentplugins/JanusMCD/account-linking.ymlso the server generates a fresh configuration file containing the newly implemented variables!Added
- Linking Modes (`STATIC` & `SLASH_ONLY`): Extensively overhauled linking controls.STATICmode explicitly requires linking codes to be posted in a configuredlink-channel-id.SLASH_ONLYmode fully removes chat processing for codes, moving all linked verification exclusively into Slash Commands. - Link Slash Commands: Implemented user-facing commands/link register <code>and/link drop <IGN>. Standard users can execute these without Administrative permissions. - Discord Drop Rate-Limiting & Auto-Complete: The/link dropcommand filters available accounts intelligently through Auto-Complete, exclusively proposing the Discord User's linked IGNs. Also added a 7-day configurable cooldown logic to unlinking. - Strict Data Wipe: When players execute/link drop, their.datPlayer files, statistics, and advancements are forcefully deleted from the world/playerdata/ server payload to inhibit unlinked alting. - Secure Unlinking: The /link drop command now strictly validates that the user actually owns the account they are trying to drop, even if they manually type the name. - Webhook Queueing Engine: Fully replaced custom HTTP webhooks withclub.minnced.discord-webhooks. It natively queues operations and respects Discord API rate limits, solving out-of-order chat messages and severe CPU/Thread hogs during player bursts. - Strict IP Validation: Added a strict mismatch detector. If a player attempts to join with a trusted session but their IP address has changed, their trusted session is wiped and they are forced to fully re-authenticate to prevent hijacking. - Guild Security Isolation & Audit: Refactored unauthorized guild enforcement into a dedicatedGuildSecurityListener. This centralizes the "allowed-guilds" logic and introduces an automated hourly "safety net" audit to ensure the bot never remains in unauthorized servers.Fixed
- World Restoration: Fixed an issue where players were not correctly returned to their previous dimensions (Nether/End) after logging out. Location preservation is now correctly saved duringPlayerQuitEventrather than being prematurely consumed on join. - Early-Login IP Detection: Implemented an early IP Cache inLoginProtectionListenerto prevent edge-case kicks when a player's network address returns null during initial handshakes. - Event Deprecation Warning: Bypassed Paper'sPlayerSpawnLocationEventdeprecation warning by utilizing manualEventExecutorregistration. This removes console spam while retaining necessary access to thePlayerobject during spawn enforcement.0.3.2JanusMCD 0.3.2Mar 10, 2026 Jumped Version 0.3.1 due to number of fixes. - Chat Security: Resolved "Scunthorpe Problem" by implementing safe-word lists and context-aware de-spacing analysis. - Networking & Auth: Eliminated ghost links and auth loops via granular unlinking and proactive backend vouching. - Session Security: Enforced strict 24-hour session expiry and standardized all network logic to Unix timestamps. - Admin Tools: Launched the Panopticon dashboard for unified investigations, inventory renders, and activity sparklines. - Technical Health: Migrated build system to Maven, upgraded to Java 25, and implemented library shading/relocation for Java 21.0.3.0Janus 0.3.0Feb 18, 2026 JanusMCD v0.3.0 - The "Panopticon" Update
I been hard at work behind the scenes, and this update brings a massive leap in server intelligence and security. Here's what's new:New Feature: The Panopticon
This feature requires TartarusPunishments and an upcoming release called "Jupiter Administration" Trust Scores: Instantly see a player's reliability rating (0-100) based on their history. This is an active calculation over time. Activity Graphs: View a visual sparkline of their login activity over the last 30 days. No more guessing if they're active! Forensics: Check their last known IP, verify if they're using a VPN, and see potential alt accounts. Command: simply run /investigate <player>Deep Ecosystem Integration
Janus now talks directly to other plugins for a seamless experience: Jupiter Administration: View live renders of player inventories, armor, and ender chests directly in Discord! You can even browse their NBT data or check quarantined items. Tartarus Punishments: Access a player's full criminal record and staff notes instantly. Need to take action? Ban, Kick, Mute, or Freeze them with a single click of a button.Rock-Solid Stability
Sync-Lock Protocol (VELOCITY): Prevents "split-brain" issues by locking player actions until data is fully synced across servers. Paper & Folia Support: Added native support for modern chat rendering, ensuring your chat looks crisp and clean on the latest server software.Security Upgrades
Resolved an issue where filling inconsole.channel.role.iddid not release control to users with said role. This didnt cause a security issue as this was fail-closed, it blocked everything in the console. Security preserved.0.2.5JanusMCD - 0.2.5Jan 30, 2026 [0.2.5] - 2026-01-30
New Features
- Sync-Lock Protocol (Split-Brain Prevention): - Zero-Trust Synchronization: Implemented a robust "Lock & Ack" protocol for critical operations (like Unlinking). The backend now waits for explicit acknowledgement from the Proxy before finalizing state changes. - Player Locking:SyncLockManagertemporarily freezes players (blocking Move, Interact, Chat, Command) while synchronization is in progress. - Acknowledgement Packets: IntroducedSyncAckPacket. Velocity confirms it has processed the Unlink (cleared session/DB) by sending an ACK back to the backend. - Strict Workflow: The backend will only kick/redirect the player after receiving the ACK, ensuring the Proxy is guaranteed to be in the correct state (Unauthenticated) when the player reconnects.Security & Hardening
- Freeze System Hardening: - Universal Command Blocking: Frozen players are now blocked from executing ALL commands, including proxy-level commands (e.g.,/server,/glist) on Velocity. - Packet Synchronization: ActiveFREEZE_SYNCpacket listening ensures instant state enforcement on the proxy. - Inventory Blocking: Added checks to prevent frozen players from moving items or opening inventories. - Split-Brain Resilience: Validated idempotent packet handling forLINKandUNLINKoperations. - Spawn Location Enforcement: - Universal Apply: Fixed logic to strictly enforcedefault-spawnfor ALL players (Linked, Unlinked, or Auto-Vouched) across every workflow (Join, Manual Auth, Session Resume). - Auto-Vouch Fix: Resolved an issue where players authenticating via stored sessions (Auto-Vouch) would bypass the spawn teleport. - Debug Warnings: Added console alerts for potentially misconfigured spawn settings. - UUID Spoofing Mitigation: - Strict Backend Enforcement: Players who fail to verify their session with the Proxy (potential spoofers) are now KICKED instead of just frozen. - Security Audit: Enhanced startup diagnostics for proxy configuration.Improved
- Chat Relay: - Logic Refinement: Explicitly separated "Should Relay" logic into a reusable method. - Vanish Support: Added clearer checks for Vanish status to prevent relaying messages from vanished players. - Paper Support: Added dedicatedPaperChatListenerto handleAsyncChatEventproperly on Paper/Folia servers.Fixed
- Discord ID Unlink Guard: Fixed a potential bypass where unlinking a user by Discord ID (instead of UUID) might not trigger the race-condition guards on Velocity.SyncRelayManagernow correctly maps Discord IDs to all online player UUIDs and adds them to thependingUnlinksguard. - SyncRelay Syntax: Fixed syntax errors inSyncRelayManagerthat could prevent proper packet interception. - Velocity Sync: Fixed JSON parsing inSyncRelayManagerto correctly handleLINKandUNLINKpackets usingGSON. - Join Messages:AuthHandshakeListenernow suppression initial join messages and manually broadcasts them after successful authentication/handshake. - Velocity Authorization Persistence: Fixed a critical bug where unlinked players would be automatically re-authenticated upon rejoining.VelocitySecurityManagernow correctly removes the persistent database record when anUNLINKpacket is received. - Sync Link Packet (DM Fix): Fixed an issue where verifies via Discord DM would not update the Proxy or other servers immediately. Added missingSyncLinkPackettransmission toAccountLinkingManager. - Console Security: - Fail-Safe Role Check: Fixed a security loophole where a blankconsole-command-role-idallowed everyone to run console commands. Now, a blank ID triggers a "System Lockdown", denying all commands. - Sync Race Condition (Auto-Vouch): Fixed a critical race condition where players could be "Auto-Vouched" by Velocity immediately after unlinking. - Split-Brain Protection (Backend): ImplementedrecentUnlinkscache to retain knowledge of unlinks for 15s after packet flushing. This covers the "Flush -> Vouch Arrives" window where the backend acts as the source of truth. - Queue Inspection (Backend): Inspects local packet queue to ignore stale proxy vouches if anUNLINKis pending. - Auto-Vouch Delay (Velocity):SessionManagernow waits 2 seconds before checking trust, allowing the Lobby server time to flush itsUNLINKpacket queue. - Pending Unlink Guard (Velocity):VelocitySecurityManagertemporarily blacklists players in memory while processingUNLINKpackets to block race-condition reads. - Sync Logging: Improved visibility of Sync Packet forwarding on Velocity by changing debug logs to INFO level.Changed
- Dependencies: Relocated GSON to prevent conflicts with Velocity.0.2.4JanusMCD - 0.2.4Jan 28, 2026 [0.2.4] - 2026-01-27
Added
- Core Security & Network Evolution: - Unified Security Model: The "Gateway & Enforcer" protocol is now the standard for all implementations. - In Proxy Networks: Velocity acts as the Gateway, handling all trust; Backend servers act as Enforcers, strictly validating the Gateway's decisions via secure channels. - In Single Server: The server acts as both, maintaining the same rigorous "Auto-Vouch" and session security standards locally. - Evolution of Trusted Sessions: Expanded the trust architecture to support reliable IP-based "Auto-Vouching," whether managed by a Proxy or a local server. - Smart Session Handshake: Intelligent handshake protocol that proactively synchronizes authenticated state. On Velocity, this syncs across servers; on Single Server, it ensures instant state restoration after reloads/relays. - Offline Packet Queue: Implemented a "Store and Forward" system for sync packets. Actions taken while servers are empty are queued and flushed when players join, guaranteeing data consistency for both single and multi-server setups. - Cross-Server Synchronization: - Implemented robustjanusmcd:syncPlugin Messaging channel. - Velocity now actively intercepts/relaysLINKandUNLINKpackets between backend servers, ensuring account states are consistent across the entire network. - Visual Feedback: - Added distinct notifications for authentication types: -✔ Session verified by Velocity: Indicates an Auto-Vouched trusted session. -✅ Your identity has been verified: Indicates a manual DM button authentication. - Configuration: - Customizable Join/Leave messages viadiscord.yml. - Join/Leave messages can now be toggled viause-embeds.Changed
- Strict Security Enforcement: - Removed `janusmcd.auth.bypass`: Removed the bypass permission entirely. The "Gateway & Enforcer" model requires ALL connections to be validated by the Proxy (or Janus local auth). No player, including OPs, can bypass this check via permission node, eliminating a potential configuration loophole. - Strict Console Security: Implemented a mandatory Role ID check (console-command-role-id) for executing commands via Discord Console channels. If configured, even the Guild Owner is denied access unless they hold the specific role. - Nuclear Command Blacklist: Added a dedicatednuclear-blacklist.ymlconfiguration file. This system provides an "Air-Gap" defense by hard-blocking specific commands (default: categorized lists for rank control, server stability, integrity, etc.) from being executed via Discord Console under any circumstances, even by the Owner. Supports recursive namespaced filtering (e.g., blockingopalso blocksminecraft:op). - Critical Sync Bugs: - Solved race condition where 'Unlink' from Discord wouldn't propagate to Velocity if the server was empty. - Fixed a bug where Backend servers would not receive Sync packets due to missing carrier players. - FixedPluginMessagingManagerinitialization and logging visibility. - Security Check: - Anti-Spoofing: Velocity now explicitly blocks client-sourced messages on thejanusmcd:syncchannel, preventing hacked clients from forging link packets. - Performance: Database operations during the join handshake are now fully asynchronous, preventing main-thread lag during login storms. - Build & Compatibility: - RelocatedGSONlibrary to prevent conflicts with Velocity's internal dependencies. - FixedFoliascheduler reflection issues.Technical
- Bumped logging levels for Sync operations toINFOfor better visibility during setup. - RefactoredAuthHandshakeListenerto handle "Lazy Sync" of Discord IDs.0.2.3JanusMCD - 0.2.3Jan 24, 2026 JanusMCD v0.2.3 - "The Fortress Update"
Major Security & Feature Updates
Backend servers now fully trust your Velocity authentication. - Trusted Velocity Logic: If a player is verified by Velocity, they skip local authentication on backend servers. - Instant Play: Players linked in the Lobby are immediately unfrozen and allowed to play. - Direct Connection Block: Players bypassing the proxy are automatically kicked.Velocity Authentication (Single Sign-On)
Full support for modern multi-threaded server architectures. - Folia Native: Optimizations for Folia's RegionScheduler and EntityScheduler to prevent thread crashes. - Async Teleport: Cross-region teleports are now handled asynchronously for zero-stall movement.Folia & Paper Compatibility
We've migrated to the latest Discord API (JDA 6.3.0). - Future-Proof: Ready for Discord API v10 and upcoming changes. - Performance: Improved interaction handling (Buttons/Commands).JDA 6 Migration
The old regex filter has been replaced with a smart Adversarial Pipeline. - Evasion Detection: Detects and blocks leetspeak (h3ll0), normalization bypasses, and toxicity. - Auto-Deletion: Offending Discord messages are instantly deleted from the channel. - Strict Mode: Evasion attempts result in a full message block rather than a partial replacement.Adversarial Chat Filter
Hardened security against bypasses and API failures. - Fail-Closed Logic: If a VPN provider's API goes down or times out, the connection is now BLOCKED by default (instead of allowed). - Anti-Bypass: Fixed potential loop-holes where lag could allow players to skip checks.VPN & Bot Protection
- Config: fixed redirect-unauthenticated not being respected on backend servers. - Performance: High-performance UUID caching to reduce database load. - Chat: Cross-Discord chat relay now correctly handles edits and deletions.Fixes & Improvements
0.2.2JanusMCD - 0.2.2Jan 19, 2026 Bug Fix: Fixed permissions logic matching. Bug fix: No passback for unbans in the syncronisation. New Features: Enhanced /link status: Added support for Minecraft username/UUID lookup.0.2.1-PatchJanusMCD 0.2.1-PATCHJan 18, 2026 patched legacy calls for config.yml. These are all updated to the correct files0.2.1JanusMCD - 0.2.1Jan 18, 2026 [0.2.1] - 2026-01-17
THIS IS A BREAKING UPDATE.
You will need to redo your configs. The config files have been renamed and restructured to make it easier to find settings.Added
- Expanded Reporting: - New Command Structure:/report [type] [period]supportinghour,day,week,month, andyear. - Report Types: -general: Adaptive charts (Line vs Bar) for CCU, Engagement, and Growth. -heatmap: Activity grid showing "Average Day" activity by hour. -sessions: Session duration histogram (<15m, 1h-4h, etc). - New Metrics: Added Failure Tracking (Security) and New Join Counting (Growth). - Configurable Command Permissions: Addedpermissions.admin-role-idtoconfig.yml. This allows setting a specific Discord Role ID that bypasses theMANAGE_SERVERrequirement for administrative slash commands (like/linkand/report). - Discord Membership Enforcement: Added option to require players to be members of the Discord server before linking or joining (seeaccount-linking.yml). - Linking: Users cannot link their Minecraft account if they are not in the Discord server. - Join Check: Linked players are kicked on join if they have left or been banned from the Discord server. - Allowed Guilds Enforcement: Security feature to restrict which Discord servers the bot can join. - Configuration: Addedallowed-guildslist todiscord.yml. - Startup: Bot automatically leaves any unauthorized guilds on startup, before registering slash commands. - Runtime: Bot automatically leaves unauthorized guilds immediately if invited while running. - Configuration Reorganization: Splitconfig.ymlinto multiple files (discord.yml,security.yml,chat.yml,synchronization.yml) for better organization. BREAKING CHANGE: Users must migrate their settings to the new files. - Enhanced Account Linking: - Linking Modes: Introducedlinking-modeoption (SIMPLEorSTRICT) inaccount-linking.yml. - Strict Mode (Default): Security feature that invalidates codes sent in public channels, kicks the player, and warns them to prevent brute-force leaks. - Simple Mode: Allows linking from public channels if the code is valid (for easier user onboarding).Fixed
- Trusted IP Removal: "Trusted Session" data (which allows auth bypass) is now automatically purged when an account is unlinked via/link remove. - Legacy Database Cleanup: The deprecatedtrusted_sessionsdatabase table is automatically cleared on server startup to remove any lingering trusted status from old versions. - Slash Command Timeouts ("The interaction failed to respond"): - Deferred Replies: Updated/link status,/link remove, and/link clearto immediately acknowledge interactions with a "Thinking..." state, preventing timeouts on loaded servers. - API Commands: UpdatedJanusAPIto automatically force ephemeral deferred replies for all registered external commands (e.g., Tartarus Punishments integration). - Player List Truncation: Fixed issue where the Discord status embed would truncate the player list at 15 players. Now dynamically splits the list across multiple embed fields to show all online players. - Report Generation Error: Resolved HTTP 400 error when generating server reports by switching the QuickChart API request from GET to POST, allowing for larger datasets. - Security Update: Migrated player logout location storage from flat file (data/logout_locations.yml) to database (sqlite) to improve data security and integrity. - Account Linking Protection: Fixed a potential bypass indirectLinkwhere legacy links (without IP) could be overwritten by a different Discord account. Added enhanced debug logging for link verification to diagnose protection failures. - Discord Reply Relay: Fixed an issue where Discord replies were being ignored by the relay. Messages replying to others will now appear in Minecraft chat with the format[Discord] sender: (Reply to @user) message.0.2.0-PATCHJanusMCD 0.2.0-PATCHJan 16, 2026 Small patch to fix the registration of slash commands to multiple guilds. Set the permission from OWNER to MANAGE_SERVER for Report0.2.0JanusMCD 0.2.0Jan 16, 2026 Changelog This is the next phase update. Brand New: JanusAPI now included to allow other plugins to register slash commands with Discord. This is a full data passthru so that the MC players can be managed from Discord. Full Metric system. Everything is tracked. Use /report or /janus report in discord to see a metrics summary. Updates: - Better ban enforcement. This links in with TartarusPunishments. When a user joins, if Tartarus is present, it will check with Tartarus if any linked account is banned, and thus deny the login. - Slash commands are logged to the CommandLog channel when configured. - With this update, we move away from Discord management and security to full server concierge.0.1.9JanusMCD - 0.1.9Jan 15, 2026 - Secure Legacy Linking: Verified in AccountLinkingManager. The system correctly identifies legacy accounts (no IP) and forces re-verification via code, strictly accepting only the originally linked discord_id. - IP Reuse Blocking: Verified in AccountLinkingManager. It blocks new links if the IP address exceeds the configured limit (getLinkCountByIp). - Trusted IP Bypass (24h): Verified in PlayerAuthListener. Logic exists to bypass authentication if the player joins from their linked IP within the configured auth.trusted_session.duration_hours (default 24h). - Join Message Suppression: Verified in JanusMCD.java (onPlayerJoin). Detailed logic suppresses the global join message until authentication is fully complete (event.setJoinMessage(null)). Discord Security Checks: Verified in AccountLinkingManager. The bot blocks linking attempts for accounts younger than minAccountAgeDays or those without a profile picture (requireAvatar). - Join Spam Protection: Verified via ConnectionThrottleManager. Logic exists to rate-limit connections and suppress messages for rapid join/leaves.0.1.8JanusMCD - 0.1.8Jan 12, 2026 [0.1.8] - 2026-01-12
Added
- Account Linking Overhaul: - Refactored Linking Logic: Added flexibility to allow optional linking (mandatory-linking: false) and toggleable 2FA (require-authenticationinaccount-linking.yml). - Linking Improvements: Introduced a simplified, rich-text join message for unlinked players with clickable Discord Invite and Direct Bot DM links. - Config: Addeddiscord-invite-urloption toconfig.yml. - Status Embed Enhancements: - Multi-Server Support: Added ability to process multiple status embeds across different Discord servers/channels. - Clickable Usernames: Status embed now displays clickable Discord mentions for linked players. - Minecraft IGNs: Status embed now shows the Minecraft IGN next to the linked Discord ID. - Webhooks & Commands: - Bot Identity: Forced webhooks to use the bot's name and avatar unless specifically overridden (e.g., for player chat impersonation). - New Command: Added/janusmcd initwebhooksto reload webhook configurations without a full server restart. - Chat Filtering: Added feedback message to players when their chat is blocked.Changed
- Logging & Console Spam: - Reduced Verbosity: Changed log levels for chat relay and command logs fromINFOtoFINEto reduce console spam. - Embed Cleanup: - Achievement Embeds: Reduced duplicate information in achievement/advancement embeds. - Permissions: -/linkcommands (status,remove,clear) now default toMANAGE_SERVERpermission.Fixed
- DiscordLogAppender Shutdown Error: - Fixed aRejectedExecutionExceptionthat occurred during server shutdown by checking JDA status before flushing logs.0.1.7-PATCH2JanusMCD - 0.1.7-PATCH2Jan 11, 2026 Fixed issue with the webhook loop. Now call configured webhooks are handled properly, and show a proper error if it fails.0.1.7-PATCHEDJanusMCD 0.1.7Jan 11, 2026 Patched chat filter, it was missing all the filtering logic.0.1.7JanusMCD - 0.1.7Jan 10, 2026 Changelog - JanusMCD v0.1.7 Dropped support for MC versions previous to 1.21.x New FeaturesPacket-Level Vanish System ProtocolLib Integration: Replaced legacy hiding with packet interception (PacketAdapter) to silence chest opening sounds/animations and block entity interaction packets. Persistent State: Vanish status is now stored in PersistentDataContainer (PDC_VANISH_KEY) to persist across server restarts. Deep Stealth: Includes action bar warnings, fake join/quit messages, and complete hitbox removal for vanished players.
Proximity Voice Chat Dynamic Channel Management: Automatically creates temporary voice channels ("Voice Group X") and moves players based on in-game proximity. Smart Clustering: Uses a Breadth-First Search (BFS) clustering algorithm with squared-distance checks to group nearby players efficiently. Lobby Fallback: Players outside the proximity radius (default 20 blocks) are automatically moved to a configured Lobby channel. Death Muting: Automatically mutes players in Discord when they die in-game (mute-on-death).
Immersive Webhook Chat SkinsRestorer Support: Implemented reflective access to SkinsRestorerAPI (supporting both v14 and v15+) to correctly fetch custom skins for offline-mode servers. Smart Avatars: SkinUtil now distinguishes between v3 (Offline) and v4 (Online) UUIDs to resolve the most accurate skin URL. Hybrid Impersonation: Added multiple webhook modes: DISCORD: Impersonates the player's linked Discord profile. HYBRID_MINECRAFT: Uses Minecraft avatar + "Player | @DiscordName". HYBRID_DISCORD: Uses Discord avatar + "DiscordName | IGN: Player". Bug Fixes & Technical Changes
Stability & Core Fixed Startup Crash: Removed conflicting log4j-slf4j-impl dependency which caused a NoSuchMethodError with the server's internal logger. The bot now uses the server's native SLF4J implementation. Fixed Auth Loop: Refactored AuthManager to return a CompletableFuture<Boolean>, preventing premature kicks by ensuring the DM was successfully sent before blocking the player. Cleaned Logging: Removed custom System.out/err bindings to resolve "Nag author" warnings and prevent duplicate console output.
0.1.6JanusMCD – 0.1.6Dec 29, 2025 [0.1.6] - 2025-12-29
This version has significant changes to the config file. You WILL need to backup your config file, delete the existing version and allow the plugin to generate the new one. Then replace the values from your old config into the new file.
Migration Notes
For users upgrading from previous versions: 1. Backup your currentconfig.yml2. Deleteconfig.ymlfrom your server 3. Restart with new plugin version 4. A freshconfig.ymlwill be generated with all comments 5. Copy your custom values from the backup to the new file 6. A newdata.ymlfile will be created automatically for runtime dataUpdates
- Updated server joining process - Users who are not linked or have not yet authenticated cannot see the player list.Added
- Multi-Discord Server Support - Bot can now be invited to multiple Discord servers simultaneously - Configure multiple channel IDs inchannel-idslist - Minecraft chat is relayed to ALL configured channels across different servers - Messages from any Discord channel are synced to Minecraft - Cross-Discord Chat Sync - New config option:cross-discord-sync(default: true) - When enabled, messages from one Discord channel appear in all other configured Discord channels - Creates a unified chat experience across multiple Discord servers - Perfect for communities spanning multiple Discord servers or using separate staff/public servers - Duplicate Login Protection (if new in this version) - New config option:settings.prevent-duplicate-login- When enabled, blocks second login attempts while preserving the first session - Prevents session hijacking and forced logouts - High priority event handling to override other plugins0.1.5JanusMCD – v0.1.5Dec 18, 2025 - Fixed issue with the linking process not starting due to JDA not being fully initialised first. Direct fix for v0.1.40.1.4JanusMCD – 0.1.4Dec 17, 2025 - Refactored code to remove "god classes". - Performance enhancements made, moved potential locking process' to separate threads to remove thr impact on server ticks. - Added per-feature enablement flags - fixed the commandlogger not having access to the maskSensitiveCommands() methods. Now obfuscates passwords in commands properly.0.1.3JanusMCD 0.1.3Dec 9, 2025 Fix - After authentication, or linking has started on a player, if linking is disabled, the player remains frozen. Updated so that automatic freeze tags are cleared during onDisable().0.1.2JanusMCD 0.1.2Dec 3, 2025 Issue - Missing configuration elements to disable account linking. Fix - Added to account-linking.yml, and added checks within the workflows. Added an additional FEATURE_DISABLED response to avoid nullPointerErrors0.1.1JanusMCD 0.1.1Nov 19, 2025 Fixed an issue with config file generation. Fixed issue with console logs and colour codes Fixed issue with the status embed appearing twice.0.1.0JanusMCD v0.1.0Nov 17, 2025 Refactored to improve the reliability of the code, removed duplicates where necessary and created handlers where applicable. Updated the linking message for user convenience. This project is now considered complete. If you would like to request an addition, please visit the support server.0.0.3JanusMCD 0.0.3-PatchNov 6, 2025 Fixed an inconsistency with server authentication. If a user gets banned, or leaves the discord server.. the bot was still able to send them a DM allowing them in. This is a security hole. Updated the system to run an API call to check for the discordID's server membership. If not detected, the player is kicked with a message explaining why. If found, the player is allowed to authenticate as normal.0.0.3-BETA4JanusMCD 0.0.3-BETA4Nov 3, 2025 Huge update. - Added banCheck for linked accounts. - updated freezeManager for complete isolation. - added a filter for all discord-bound messages to remove colour codes and other formatting symbolism. - Status embed now shows the online players minecraftName - discordName. - Account links now handled by a linkLogManger, for auditing. - (/link status) slash command now shows a timestamp of every active link. Future work before final release: - Clean up the console debug logs, using a manager for cleanliness. - implement an embedManager for all Discord embeds to minimise duplicated code.0.0.3-BETA3JanusMCD 0.0.3-BETA3Oct 31, 2025 Beta3 Release. - Completely refactored the account linking (Removal and rewrite) - Added slash commands for server administrators, to manage linking - Fixed the database relationship problem, now supports a one to many relationship. Issues still to fix: - Need to add ban check back in - Need to completely delete the logging for the link and authentication process' so they can be started again from scratch. -0.0.3-Beta2JanusMCD 0.0.3-Beta2Oct 24, 2025 This is a Beta release. USE AT YOUR OWN RISKInitial release of Linking and Passwordless Authentication.
Account-linking: Users have to link their Minecraft accounts to their Discord accounts using a link code. Passwordless Authentication: Unlike other account managers, passwords are not used here. Linked Discord accounts will get a DM with an action button to press. Upon pressing this, your account can play. Known Bugs: - Max-links-per-discord, This currently will only allow 1. When resolved it will allow a max of 3 configurable in the account-linking.yml file. - Shutdown message in the main chat is not working - link attempts not outputting to log channel - Session management is technically in alpha0.0.2JanusMCD 0.0.2Aug 20, 2025 Added commandlistener: This outputs information about player initiated commands to a discord channel which is configured in the config0.0.1-StableJanusMCD 0.0.1-StableJun 17, 2025 - Updated colour tagging for chat messages - Updated ASCII tagging for console log - Updated to first stable releaseBETA1JanusMCD BETA1Jun 13, 2025 Beta release of JanusMCD for Paper servers
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta