
SideGate
SideGate is a Minecraft server plugin that provides a hybrid authentication system for mixed-access environments. Premium players can join normally through Mojang authentication, while administrators may optionally allow specific non-authenticated accounts
50
1
SideGate 1.2.1
Release date: 2026-06-10
Added
- Optional Floodgate and Geyser-Spigot integration. Detected Bedrock players stay on the Floodgate/Geyser authentication path and are not classified or tagged as SideGate guests.
- Soft dependencies for
floodgateandGeyser-Spigot; neither plugin is required when Bedrock support is not used. - Added configurable
premium-session-failure.actionwithKICK_WITH_MESSAGEandFALLBACK_TO_GUESTmodes. - Added a configurable Premium-name conflict message. SideGate compares the login UUID with the official Mojang profile before encryption so cracked launchers that abort on HTTP 401 receive the configured message.
- Added Guest fallback for Premium-name UUID mismatches before encryption, plus same-connection fallback when an invalid encrypted session response is available.
Changed
- Mojang profile lookups now run through ProtocolLib's asynchronous listener path to avoid blocking the packet thread.
- Premium lookup cache entries now expire after 10 minutes and use bounded eviction instead of clearing the entire cache.
- Premium lookup cache entries now retain the official Mojang UUID for early Premium-name conflict detection.
- Mojang API errors, invalid responses, and invalid Java usernames now fail closed by leaving authentication to the server instead of granting guest access.
- Guest connection selection now requires an exact address match or matching login profile name; unsafe cross-connection and port-only fallbacks were removed.
- Removed duplicate
[SideGate]text from plugin logger messages because Bukkit already adds the plugin name. - Compatibility and issue-report startup notices now use
INFO; the ProtocolLib dev-build warning is skipped when a development build is already installed.
Fixed
- Fixed Floodgate/Geyser Bedrock players being treated as non-premium guests.
- Fixed a possible guest injection mix-up when multiple login connections were pending.
- Fixed a ProtocolLib
TemporaryPlayerwarning and stack trace caused by reading an unavailable UUID during early login.
SideGate 1.2.0
Release date: 2026-05-18
Added
- Runtime API service (
SideGateApi) exposed through BukkitServicesManagerfor addon/plugin integration. - Runtime reload support with
/sidegate reloadto re-read config and rebind listeners. - Guest handling improvements: guest scoreboard tag, configurable join title/subtitle/messages, and guest-only chat prefix.
Changed
- ProtocolLib is now
compileOnlyto avoid shading/packaging ProtocolLib into SideGate and prevent classloader conflicts. - Login-state injection path was adjusted to prefer stable accept states (
READY_TO_ACCEPT, fallbackACCEPTED) to reduce non-premium login timeouts. - Defensive ProtocolLib runtime checks were added to avoid
NullPointerExceptionwhen ProtocolManager is temporarily unavailable. - Guest login injection now cancels login at
STARTand immediately injects approved guests, with delayed fallback retained for packet-order edge cases. - Post-auth login pipeline now supports modern
GameProfilemethod signatures (verifyLoginAndFinishConnectionSetup,startClientVerification,finishLoginAndWaitForClient) for newer Paper builds.
Fixed
- Fixed startup failure where
ProtocolLibrary.getProtocolManager()could benulland crash plugin enable/disable. - Fixed guest login flow instability causing repeated guest injection and disconnect timeout behavior in hybrid mode.
- Fixed
Invalid session/timeout on Paper 1.21.11 when guest login state advanced incompletely.
Compatibility
- Server: Paper/Spigot/Purpur (Bukkit-compatible)
- Tested: Paper 1.20.1, Spigot 1.20.1, Paper 1.21.11
- Practical compatibility range from implementation behavior: 1.20.1-1.21.11 (with ProtocolLib dev build recommended for 1.21.9+)
- Java: 17+
- Dependency: ProtocolLib 5.x+
Notes
- For hybrid guest mode operation, set
enforce-secure-profile=falseinserver.properties. - Keep
online-mode=true; SideGate handles approved guest flow without globally switching offline mode. - Added startup warning for Minecraft
1.21.9-26.xto recommend ProtocolLib dev build:https://github.com/dmulloy2/ProtocolLib/releases/tag/dev-build.
- Runtime API service (
SideGate v1.0.1 Changelog
New Features & Enhancements
- Hybrid Auto-Detection System
- Implemented intelligent Mojang API integration. The plugin now automatically verifies if a connecting username belongs to a paid Minecraft account.
- Premium Players: Automatically routed through the standard secure login process (preserving skins and UUIDs).
- Guest/Cracked Players: Automatically redirected to the guest injection protocol without manual intervention.
- Config Option:
auto-detect-premium: true(Enabled by default).
- Premium Override List
- Added a
premium-usernamesconfiguration list. - Allows administrators to manually force specific usernames to be treated as Premium, bypassing the API check. This is useful for staff security or in cases of API downtime.
- Added a
- Performance Optimization
- Introduced
ConcurrentHashMapcaching for API results. This minimizes external HTTP requests and prevents login lag during peak traffic. - Added a cache cleanup mechanism to prevent memory overflow.
- Introduced
Bug Fixes & Stability
- UUID Handling: Refined the logic for detecting Offline UUIDs (Version 3) to ensure guest restrictions are applied correctly only to non-premium players.
- Packet Injection: Improved the stability of the
Login.Client.STARTpacket listener to reduce potential conflicts with other protocol-based plugins.
Configuration Changes
- Added
auto-detect-premium(boolean) to toggle the hybrid detection system. - Added
premium-usernames(list) for manual premium overrides. - Updated default messages to clearer, more professional wording.
Upgrade Instructions: To utilize the new features, please regenerate your
config.ymlor manually add the newauto-detect-premiumandpremium-usernameskeys to your existing configuration.- Hybrid Auto-Detection System

