Skip to content

TamKungZ/SideGate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SideGate

SideGate is a plugin for Minecraft servers (Spigot/Paper) designed for hybrid login environments. It allows server administrators to keep online-mode=true for premium authentication while still allowing controlled guest access for selected offline-mode users.

Concept

Operate a secure premium server while maintaining a designated entry path for authorized guest players.

Features

  • Hybrid Login Flow: Premium players are passed to normal server authentication; guest candidates are handled by SideGate's login injection path.
  • Manual Premium Override: premium-usernames always bypass guest flow and stay in premium path.
  • Guest Admission Modes: allow-all-guests or allowed-guests controls who can enter as guest.
  • Optional Mojang API Check: auto-detect-premium uses Mojang profile lookup with internal cache.
  • Guest Join Handling: Guest users are tagged (SideGate_Guest), receive configurable join title/subtitle/messages, and are assigned configured gamemode.
  • Guest Chat Prefix: Only players with SideGate_Guest tag receive the configured chat prefix.
  • Runtime Reload Command: /sidegate reload reloads config and rebinds runtime listeners.
  • Public Integration API: Other plugins can query SideGate state via Bukkit Services (SideGateApi).

Installation

  1. Download the latest SideGate .jar from Releases.
  2. Place it in your server's plugins directory.
  3. Ensure ProtocolLib is installed.
  4. Set online-mode=true in server.properties.
  5. Start or restart the server to generate config files.

Configuration

Edit plugins/SideGate/config.yml:

# SideGate Configuration

# Master switch for guest mode
enable-guest-mode: true

# Auto-detect premium by Mojang API
auto-detect-premium: true

# If true: all non-premium users can enter as guests
# If false: only allowed-guests list can enter
allow-all-guests: false

# Always treat as premium
premium-usernames:
  - "TamKungZ"

# Used only when allow-all-guests is false
allowed-guests:
  - "PlayerName1"
  - "PlayerName2"

guest-settings:
  default-gamemode: "SURVIVAL"
  chat-prefix: "&7[Guest] &r"

messages:
  join-title: "&cACCESS RESTRICTED"
  join-subtitle: "&7Guest Mode"
  join-message:
    - "&c=================================="
    - "&6 Welcome to SideGate Protocol"
    - "&7 Account Status: &cGuest (Non-License)"
    - "&7 You have restricted gameplay access."
    - "&c=================================="

Technical Details

SideGate works by intercepting login packets via ProtocolLib and applying controlled login-state injection for authorized guest sessions.

  • Premium users continue through normal Mojang authentication flow.
  • Guest users are mapped to offline UUID behavior and marked for guest restrictions.
  • Config and runtime behavior can be reloaded through /sidegate reload.

Public API

SideGate exposes me.tamkungz.sidegate.api.SideGateApi through Bukkit ServicesManager.

Provided API methods include:

  • isGuestModeEnabled()
  • isAutoDetectPremiumEnabled()
  • isAllowAllGuestsEnabled()
  • isConfiguredPremium(String username)
  • isKnownPremiumCached(String username)
  • checkPremium(String username)
  • isGuest(Player player)

Bug Reports and Feedback

Please submit issues and reproduction details on GitHub:

When reporting a problem, include at minimum:

  • Server software and exact version (Spigot/Paper/Purpur)
  • Java version
  • ProtocolLib version
  • SideGate version
  • Full startup/login logs related to the issue

Requirements

  • Java: 17 or higher
  • Server software: Spigot/Paper/Purpur (Bukkit-compatible)
  • Dependency: ProtocolLib 5.x+

Disclaimer

Allowing guest/offline access has security risks, including username impersonation. For production servers, pair SideGate with an authentication plugin and strict permission setup.

Project Status

This project is closed source.

Public reference snapshot:

The public snapshot is provided for viewing, compatibility reference, and issue reporting.

License

Allowed:

  • Normal usage of SideGate on your server.
  • Building separate addon plugins that integrate via the public SideGate API.

Restricted without explicit permission:

  • Modifying, redistributing, relicensing, or selling SideGate.
  • Repackaging SideGate source or binaries.

Commercial use / monetization requires prior permission by email:

See LICENSE for full legal terms.

About

SideGate allows server administrators to operate a strictly Online-Mode (Premium) server while granting access to specific, authorized players who do not possess a paid Minecraft license.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages