MCLocalAuth
1.4.1.1MCLocalAuth is a security plugin for Minecraft servers that uses Discord as an authentication system. Protect your server by limiting access to only members of your Discord community.
1.4.1.1latestMCLocalAuth 1.4.1.1Jul 4, 2026 MCLocalAuth v1.4.1.1 — Velocity
Type: Update - Multi-language System Date: July 4, 2026 Status: BÉTAFile:
MCLocalAuth-Velocity-v1.4.1.1.jar---New Features
All player-facing messages are now externalized into editable language files. Included languages: -Multi-language System
French (
fr_FR) -English (
en_US) — default -Spanish (
es_ES) -Polish (
pl_PL) Configuration:
Translated player messages (editable): - Kick messages (first join, unauthorized IP) - Bedrock kick messages (no color codes) -language: "en_US" # Change to fr_FR, es_ES or pl_PL/authcommands (help, errors, results) - Discord embeds (authentication, status, admin) - Discord slash command descriptions - Bot activity text Translated console messages (not editable): - Startup messages (storage, Discord) - Error messages (token, permissions, connection) - Admin log messages (IP add/remove/reset) - Update available notifications Language files: Files are generated on first startup inplugins/mclocalauth/messages/: -en_US.yml,fr_FR.yml,es_ES.yml,pl_PL.ymlYou can edit these files to customize player messages.Console messages follow the selected language but are not editable (built into the plugin).
- TheAutomatic Migration
language:key is automatically added to the top of existingconfig.yml---
| Platform | Versions | |----------|----------| | Velocity | 3.3.0+Compatibility
| Java: 17+ ---
1. DownloadInstallation / Update
MCLocalAuth-Velocity-v1.4.1.1.jar2. Replace the old JAR inplugins/3. Restart the proxy 4. Thelanguage:key is automatically added toconfig.yml5. Change the language if needed (fr_FR,es_ES,pl_PL) 6. Language files are inplugins/mclocalauth/messages/---
No known bugs at this time. --- Build: Maven 3.9.5 + Java 17 Status: BÉTAKnown Issues
1.4.1MCLocalAuth 1.4.1Jul 3, 2026 MCLocalAuth v1.4.1 — Velocity
Type: First Velocity Release - Metrics, Update Checker, MySQL Storage Date: July 3, 2026 Status: ALPHAFile:
MCLocalAuth-Velocity-v1.4.1.jar---New Features
MCLocalAuth is now available on Velocity! Full standalone module. - All features included (Discord bot, slash commands, IP authentication) - Independent SnakeYAML configuration - Compiled with Java 17 for Velocity 3.3.0+ compatibilityVelocity Support
[bStats](https://bstats.org/) integration to track how many servers use the plugin. - Anonymous and opt-out data collection - View statistics: [bstats.org](https://bstats.org/)bStats Metrics
The plugin automatically checks at startup if a newer version is available on Modrinth. - Async check (no startup impact) - Smart version comparison (only notifies if the Modrinth version is higher) - Console message with download linkUpdate Checker
Option to store player data (IPs, names, logins) in a MySQL database instead ofMySQL Storage (optional)
data.yml. Configuration:
Auto-created tables: -storage: type: "yaml" # yaml or mysql mysql: host: "localhost" port: 3306 database: "mclocalauth" username: "root" password: ""mclocalauth_players— UUID, name, last IP, last login -mclocalauth_ips— UUID + authorized IPs (unique key) Benefits: - Ideal for multi-server Velocity networks - Shared data across all servers connected to the same database - Automatic fallback to YAML if database is not configured
- Automatic Bedrock player detection (name prefix + Floodgate UUID) - Adapted kick message without color codes for Bedrock clients - Configurable viaGeyser/Bedrock Support
geyser.enabledandgeyser.prefix
-Configurable Discord Link
discord.invite_linkfield in config.yml -%discord_link%placeholder in kick messages ---
| Platform | Versions | |----------|----------| | Velocity | 3.3.0+Compatibility
| Java: 17+ ---
1. DownloadInstallation
MCLocalAuth-Velocity-v1.4.1.jar2. Place inplugins/3. Configure the Discord bot inplugins/mclocalauth/config.yml4. Restart the proxy ---
No known bugs at this time. --- Build: Maven 3.9.5 + Java 17 Status: ALPHAKnown Issues
1.4.0MCLocalAuth 1.4.0May 13, 2026 MCLocalAuth v1.4.0
Type: Major Update - BungeeCord Discord Bot + Discord Admin Commands Date: May 13, 2026 Status: STABLE---
Major New Features
The Discord bot is now fully functional on BungeeCord. - Complete Discord module added for the proxy - Clean startup and shutdown with the BungeeCord plugin - Automatic bot status verification after connection - Displays bot name, ping, Discord server name, and member count Example startup logs:Discord Bot on BungeeCord
§1[§6MCLocalAuth§1]§r §a§l[OK] §aDiscord bot connected: MyBot#1234 §1[§6MCLocalAuth§1]§r §7Ping: §f42ms §1[§6MCLocalAuth§1]§r §7Discord server: §fMy Server §1[§6MCLocalAuth§1]§r §7Members: §f150
You can now manage player authorized IPs directly from Discord. | Subcommand | Description | |----------|-------------| |New Discord
/mcadminCommand/mcadmin showips <player>| Show authorized IPs | |/mcadmin addip <player> <ip>| Add an IP | |/mcadmin removeip <player> <ip>| Remove an IP | |/mcadmin resetip <player>| Reset all IPs | |/mcadmin setip <player> <ip>| Set the primary IP | Security: - Restricted to the Discord ID set inadmin.discord_id- Unauthorized users receive an access denied message
Slash commands are now registered globally. This means you can use them: - On your Discord server - In direct messages with the botDiscord Commands Available in DMs
All important messages now use a colored prefix on both platforms:Colored Console Output on Paper and BungeeCord
- Brackets in dark blue -§1[§6MCLocalAuth§1]§rMCLocalAuthin orange - Works on Paper/Spigot and BungeeCord consoles
The BungeeCord proxy now has its own/authCommand on BungeeCord/authadmin command. Available subcommands: -/auth showips <player>-/auth addip <player> <ip>-/auth removeip <player> <ip>-/auth resetip <player>-/auth setip <player> <ip>This allows managing authorized IPs from the proxy, across your entire network. ---Important Fixes
`/auth setip <player> <ip>` - Before: Added the IP instead of replacing the primary oneIP Commands Fixed
- After: Properly sets the primary IP and removes others
`/auth resetip <player>` - Before: Deleted ALL player data
- After: Only clears the authorized IP list
The Discord bot now checks ifGuild ID Validation
guild_idis a valid numeric Discord snowflake. - No more crash ifguild_idcontains an invalid value - The plugin shows a clear error message instead of failing silently
Discord admin commands can now find a player: - by name - by full UUID Player names are also saved with authentication entries for better lookups. ---Improved Player Lookup
Compatibility
Supported Versions
| Platform | Versions | |----------|----------| | Paper | 1.8.9 → 26.1.1| | Spigot | 1.8.9 → 1.21.x
| | Purpur | 1.8.9 → 1.21.x
| | BungeeCord | Build 2068
| Java: 8+ The plugin is compiled with Java 8 for maximum compatibility. ---
1. Stop the server / proxy 2. Replace old JARs with theMigration from v1.3.x
v1.4.0versions 3. Configurediscord.bot_tokenif needed 4. Add your admin Discord ID:
5. Restartadmin: discord_id: "YOUR_DISCORD_ID"Configuration compatible
Player data preserved
Existing Discord commands still work ---
Technical Details
New Files
-BungeeDiscordBot.java-BungeeDiscordCommandListener.javaModified Files
-MCLocalAuthBungee.java-DiscordBot.java-DiscordCommandListener.java-Storage.java-BungeeStorage.java-BungeePendingManager.java-BungeeLoginListener.java-AuthAdminCommand.javaTechnical Improvements
- AddedverifyBotStatus()to check actual bot state - AddedisOnline()to test if the bot is connected - Added player lookup by name/UUID - Global Discord command registration - Improved console messages and error handling ---
| Command | Description | Access | |---------|-------------|--------| |Discord Commands
/mclogin <code>| Authenticate with code | Everyone | |/mctest| Test bot/plugin connection | Everyone | |/status| Check your status | Everyone | |/unlink <discord_id>| Unlink an account | Admin | |/mcadmin showips <player>| View authorized IPs | Admin | |/mcadmin addip <player> <ip>| Add an IP | Admin | |/mcadmin removeip <player> <ip>| Remove an IP | Admin | |/mcadmin resetip <player>| Reset IPs | Admin | |/mcadmin setip <player> <ip>| Set primary IP | Admin | ---
| Command | Spigot/Paper | BungeeCord | |---------|--------------|------------| |Minecraft Admin Commands
/auth showips <player>||
| |
/auth addip <player> <ip>||
| |
/auth removeip <player> <ip>||
| |
/auth resetip <player>|fixed |
| |
/auth setip <player> <ip>|fixed |
| ---
Spigot / Paper 1. DownloadInstallation
MCLocalAuth-Spigot-v1.4.0.jar2. Place inplugins/3. Configure the Discord bot 4. Restart the server BungeeCord 1. DownloadMCLocalAuth-Bungee-v1.4.0.jar2. Place inplugins/3. Configure the Discord bot 4. Restart the proxy ---
No known bugs at this time. If you encounter a problem, check: - Plugin version - Discord token -Known Issues
guild_id-admin.discord_idvalue --- Build: Maven 3.9.9 + Java 8 Status: STABLECompatibility: Minecraft 1.8.9 → 26.1.1 (Paper & BungeeCord 2068)
1.3.1MCLocalAuth 1.3.1Jan 2, 2026 MCLocalAuth v1.3.1 - Changelog
Type: Compatibility Update Date: January 2, 2026 Status: STABLE---
New Features
The plugin now officially supports all Minecraft versions from 1.8.9 to 1.21.11! Main improvements: - AddedExtended Compatibility: 1.8.9 → 1.21.11
VersionUtilutility class to automatically detect server version - Intelligent Minecraft version detection at startup - Enhanced log messages with detected version At plugin startup, you'll now see:
---[MCLocalAuth] ================================ [MCLocalAuth] MCLocalAuth v1.3.1 - Starting... [MCLocalAuth] Detected Minecraft version: v1_20_R3 [MCLocalAuth] Compatibility: 1.8.9 - 1.21.11 [MCLocalAuth] ================================Bug Fixes
Problem solved: NPE (NullPointerException) on some versions when blocking movement Before:PlayerMoveEvent Fix (Multi-version compatibility)
if (e.getFrom().getX() != e.getTo().getX() || ...) e.setTo(e.getFrom());Crashes if
getTo()returnsnullon certain versions After:Location to = e.getTo(); Location from = e.getFrom(); if (to != null && (from.getX() != to.getX() || ...)) e.setTo(from);Null check added to ensure compatibility Impact: Unauthenticated players won't be able to move, without crash risk on any version ---
Compatibility
Tested and Supported Versions
| Minecraft Version | Status | |-------------------|--------| | 1.8.9 - 1.12.2 |Compatible | | 1.13 - 1.16.5 |
Compatible | | 1.17 - 1.19.4 |
Compatible | | 1.20 - 1.21.11 |
Compatible | Supported Servers: Spigot, Paper, Purpur, Pufferfish Latest tested version: 1.21.11 Note: The plugin automatically detects your Minecraft version at startup ---
Technical Changes
Modified Files
Java: -MCLocalAuthPlugin.java- Enhanced startup logs with version detection -RestrictListener.java- NPE fix on PlayerMoveEvent with null check -VersionUtil.java- NEW - Version detection utility class Configuration: -plugin.yml- Version 1.3.1 + Updated description -pom.xml- Version 1.3.1 + Updated description Documentation: -README.md- Updated badges and compatibility range -CHANGELOG.md- Complete documentation of changes ---
Simple and risk-free! 1. Stop the server 2. Replace the JAR withMigration from v1.3.0
MCLocalAuth-Spigot-v1.3.1.jar3. Restart the server No configuration changes required!Existing configuration remains 100% compatible
Player data is preserved
No action required on Discord side ---
Why Update?
If you're using an old version (1.8.9 - 1.12.2)
Recommended - Important compatibility fix to avoid crashes
If you're using a recent version (1.20+)
Recommended - Better version detection and clearer logs
If you're on v1.3.0
Optional but recommended - Improves stability on all versions ---
All v1.3.0 features are preserved: -Core Features (Unchanged)
Integrated Discord bot -
Authentication via
/mclogin <code>-IP protection per account -
Discord commands:
/mclogin,/mctest,/status,/unlink(admin) -Admin commands: authorized IP management -
Restrictions for unauthenticated players -
IPv4 & IPv6 support ---
The new utility class provides:VersionUtil Class Details
Purpose: Allows future code adaptations based on server version ---VersionUtil.getVersion() // Ex: "v1_20_R3" VersionUtil.getMajorVersion() // Ex: 1 VersionUtil.getMinorVersion() // Ex: 20 VersionUtil.isVersion(1, 13) // true if >= 1.13 VersionUtil.is1_8() // true if 1.8.x VersionUtil.is1_13Plus() // true if >= 1.13 VersionUtil.is1_20Plus() // true if >= 1.20 VersionUtil.is1_21Plus() // true if >= 1.21
No known bugs at this time. If you encounter a problem: 1. Verify you're using v1.3.1 2. Check server logs (Minecraft version detected is displayed at startup) 3. Open an issue on GitHub with: - Plugin version - Minecraft version detected in logs - Problem description ---Known Issues
| Command | Description | Access | |---------|-------------|--------| |Discord Commands (Unchanged)
/mclogin <code>| Authenticate with code | Everyone | |/mctest| Test bot/plugin connection | Everyone | |/status| Check your status | Everyone | |/unlink <discord_id>| Unlink account | Admin only | ---
1. DownloadInstallation
MCLocalAuth-Spigot-v1.3.1.jar2. Place inplugins/folder 3. Restart server 4. Check logs: detected Minecraft version should be displayed 5. Test functionality with/mcteston Discord --- File: MCLocalAuth-Spigot-v1.3.1.jar Size: 11.20 MB Build: Maven 3.9.9 + Java 8 Status: STABLECompatibility: Minecraft 1.8.9 → 1.21.11
1.3.0MCLocalAuth 1.3.0Oct 22, 2025 MCLocalAuth v1.3.0 - Changelog
Type: Major Update Date: October 22, 2025 Status: STABLE---
New Features
1. Discord Command Renamed
- BEFORE:/auth <code>- NOW:/mclogin <code>- All messages and references updated throughout the plugin2.
- Usage:/unlinkCommand (Admin Only)/unlink <discord_id>- Reserved for admin configured inconfig.yml(admin.discord_id) - All attempts are logged for security auditing - Note: Basic feature implemented, persistent linking system coming soon ---Bug Fixes
1. UTF-8 Encoding Fixed (In-Game)
Problem solved: In-game messages displayed garbled characters Fixed messages: - "reset" instead of "réinitialisé" - "added" instead of "ajouté" - "removed" instead of "supprimé" - "set" instead of "défini" - "authorized" instead of "autorisées" Result: Clean, readable messages on all systems2. IPv6 Support
- IPv4 AND IPv6 both accepted for authorized IPs - Validation usingInetAddress.getByName()- Affected commands:/auth addip,/auth setip3. Current IP Displayed in Kick Messages
- Kick message now displays player's actual current IP - Variable%current_ip%is correctly replaced - Helps players identify their connection issues ---
Modified files: -Technical Changes
AuthAdminCommand.java: ASCII encoding + IPv6 validation -LoginListener.java: Current IP display + encoding fixes -DiscordBot.java: Renamed/auth→/mclogin-DiscordCommandListener.java:/mclogin+/unlinkadmin handler -config.yml: Messages without accents +/mcloginreferences -plugin.yml: Version 1.3.0 -pom.xml: Version 1.3.0 ---
Steps: 1. Stop the server 2. Replace JAR withMigration from v1.2.x
MCLocalAuth-Spigot-v1.3.0.jar3. Configure admin inconfig.yml:
4. Restart the server 5. Inform players: command is nowadmin: discord_id: "YOUR_DISCORD_ID" minecraft_uuid: ""/mclogin <code>Note: Old configuration remains compatible ---Changes for Players
On Discord:
- BEFORE:/auth 123456- NOW:/mclogin 123456In Minecraft:
- Connection message: "On Discord, type:/mclogin 870600" - (instead of "/auth PvP_UNGEUR 870600") ---
Admin logging: - All admin actions are logged - Example:Security
[ADMIN] PvP_UNGEUR#1234 attempted to unlink Discord ID: 987654321- Useful for auditing sensitive actions ---
- Minecraft: 1.8 → 1.21+ - Java: 8+ - IPv4 & IPv6: Fully supported - Config: Compatible with v1.2.x (auto-adds admin section) ---Compatibility
No known bugs at this time. If you encounter a problem: 1. Verify you're using v1.3.0 2. Check server logs 3. Open an issue on GitHub ---Known Issues
| Command | Description | Access | |---------|-------------|--------| |Discord Commands (Updated)
/mclogin <code>| Authenticate with code | Everyone | |/mctest| Test bot/plugin connection | Everyone | |/status| Check your status | Everyone | |/unlink <discord_id>| Unlink account | Admin only | ---
1. DownloadInstallation
MCLocalAuth-Spigot-v1.3.0.jar2. Place inplugins/folder 3. Restart server 4. Configureadmin.discord_idinconfig.yml5. Test with/mctestand/mclogin--- File: MCLocalAuth-Spigot-v1.3.0.jar Size: 10.68 MB Build: Maven 3.9.5 + Java 8 Status: STABLE1.2.3MCLocalAuth 1.2.3Oct 21, 2025 MCLocalAuth v1.2.3 - Changelog
Type: Critical Fixes Date: October 21, 2025 - 22:06 Status: STABLE---
Bug Fixes
1. UTF-8 Encoding Fixed
Problem: Discord messages with garbled characters Example:â„¹ï¸ Délier le compteSolution: All messages without accents/special emojis - Discord titles: Simple ASCII text - Server logs:[OK],[ERROR],[WARN]- No more problematic emojis () Result: Clean and readable messages everywhere ---
2. Administrator Configuration Added
New in `config.yml`:
Allows storing admin identifiers for future features (reserved commands, etc.) ---admin: discord_id: "YOUR_DISCORD_ID" minecraft_uuid: ""3.
- Old text:/statusCommand Updated/auth <username> <code>- New text:/auth <code>Consistent with v1.2.2 ---
Modified files: -Technical Details
config.yml- Added admin section (discord_id, minecraft_uuid) -DiscordBot.java- Logs without UTF-8 emojis - Messages: "Starting", "connected", etc. -DiscordCommandListener.java- All Discord messages in simple ASCII - Titles without emojis (→ text) - "been" instead of "été", etc. Reason: Java 8 + Windows Console = UTF-8 Issues Solution: ASCII only for maximum stability ---
-Compatibility
Minecraft: 1.8 → 1.21+ -
Java: 8+ -
Server: Spigot, Paper, Purpur -
Config: Compatible v1.2.0-1.2.2 (auto-adds admin section) Migration from v1.2.2: - No action required - Admin section added automatically on first start ---
Usage
Admin Configuration (Optional)
1. Openplugins/MCLocalAuth/config.yml2. Find the "admin" section 3. Fill in: -discord_id: Your Discord ID (right-click > Copy ID) -minecraft_uuid: (optional) Your Minecraft UUID To get your UUID: → https://mcuuid.net/?q=YOUR_USERNAME ---
-Fixed Bugs
Unreadable Discord messages (encoding) -
Broken emojis in logs -
Obsolete "/auth <username> <code>" text ---
Previous Versions
v1.2.2 (10/21/2025 19:53)
- Fixed code search (findByCode) - Code works even after kickv1.2.1 (10/21/2025 19:53)
- Force delete old Discord commands - /auth without username parameterv1.2.0 (10/21/2025 19:33)
- Added /mctest - Simplified /auth (code only) - Fixed "player not found"v1.1.0 (10/21/2025 19:12)
- Fixed plugin.yml package - Initial functional build ---
1. Stop the server 2. Replace old JAR withInstallation
MCLocalAuth-Spigot-v1.2.3.jar3. (Optional) Configureadmin.discord_idinconfig.yml4. Restart the server 5. Test with/mcteston Discord ---
Planned features: - Reserved admin commands (via discord_id) - Persistent Discord linking system - Functional /unlink - Authentication statistics - Multi-language support (FR/EN) --- File: MCLocalAuth-Spigot-v1.2.3.jar Size: 10.68 MB Build: Maven 3.9.5 + Java 8 (1.8.0_432) Status: STABLENext Version (v1.3.0)
1.0MCLocalAuth 1.0Oct 21, 2025 First version, several bugs may be present, they will be corrected in future updates.
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
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
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