MCPcopy Index your code
hub / github.com/TuxCoding/FastLogin

github.com/TuxCoding/FastLogin @1.12-kick-toggle

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.12-kick-toggle ↗ · + Follow
758 symbols 2,180 edges 111 files 70 documented · 9%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

FastLogin

A shield-shaped emblem with a bold lightning bolt on the left, resembling Minecraft blocks. To the right, "FastLogin" is written in teal, with the tagline: "Automatically detect and login premium Minecraft players"

Checks if a Minecraft player has a paid account (premium). If so, they can skip offline authentication (auth plugins). So they don't need to enter passwords. This is also called auto login (auto-login).

Features

  • Detect paid accounts from others
  • Automatically login paid accounts (premium)
  • Support various of auth plugins
  • Premium UUID support
  • Forward skins
  • Detect username changed and will update the existing database record
  • BungeeCord/Velocity support
  • Auto register new premium players
  • No client modifications needed
  • Good performance by using async operations
  • Locale messages
  • Support for Bedrock players proxies through FloodGate

Issues

Please use issues for bug reports, suggestions, questions and more. Please check for existing issues. Existing issues can be voted up by adding up vote to the original post. Closing issues means that they are marked as resolved. Comments are still allowed and it could be re-opened.

Development builds

Development builds contain the latest changes from the Source-Code. They are bleeding edge and could introduce new bugs, but also include features, enhancements and bug fixes that are not yet in a released version. If you click on the left side on Changes, you can see iterative change sets leading to a specific build.

You can download them from here: https://ci.codemc.org/job/Games647/job/FastLogin/


Commands

/premium [player] Label the invoker or the argument as paid account
/cracked [player] Label the invoker or the argument as cracked account

Permissions

fastlogin.bukkit.command.premium
fastlogin.bukkit.command.cracked

fastlogin.command.premium.other
fastlogin.command.cracked.other

Placeholder

This plugin supports PlaceholderAPI on Spigot. It exports the following variable %fastlogin_status%. In BungeeCord environments, the status of a player will be delivered with a delay after the player already successful joined the server. This takes about a couple of milliseconds. In this case the value will be Unknown.

Possible values: Premium, Cracked, Unknown

Requirements

  • Java: 21+ recommended for improved multi-threading code by FastLogin
  • Spigot: 8+
  • BungeeCord and Velocity: 17+
  • Server software in offlinemode:
  • Spigot (or a fork e.g. Paper) 1.8.8+
  • Latest BungeeCord (or a fork e.g. Waterfall) or Velocity proxy
  • An auth plugin.

Supported auth plugins

Spigot/Paper

BungeeCord/Waterfall

Network requests

This plugin performs network requests to:

  • https://api.mojang.com - retrieving uuid data to decide if we should activate premium login
  • https://sessionserver.mojang.com - verify if the player is the owner of that account

How to install

Spigot/Paper

  1. Download and install ProtocolLib/ProtocolSupport
  2. Download and install FastLoginBukkit
  3. Set your server in offline mode by setting the value onlinemode in your server.properties to false

BungeeCord/Waterfall or Velocity

Install the plugin on both platforms, that is proxy (BungeeCord or Velocity) and backend server (Spigot).

  1. Activate proxy support in the server configuration
  2. This is often found in spigot.yml or paper.yml
  3. Restart the backend server
  4. Now there is allowed-proxies.txt file in the FastLogin folder of the restarted server
    • BungeeCord: Put your stats-id from the BungeeCord config into this file
    • Velocity: On plugin startup the plugin generates a proxyId.txt inside the plugins folder of the proxy
  5. Activate ip forwarding in your proxy config
  6. Check your database settings in the config of FastLogin on your proxy
    • The proxies only ship with a limited set of drivers where Spigot supports more. Therefore, these are supported:
    • BungeeCord: mysql for MySQL/MariaDB
    • Velocity: mariadb for MySQL/MariaDB
    • Note the embedded file storage SQLite is not available
    • MySQL/MariaDB requires an external database server running. Check your server provider if there is one available or install one.
  7. Set proxy and Spigot in offline mode by setting the value onlinemode in your config.yml to false
  8. You should always configure the firewall for your Spigot server so that it's only accessible through your proxy
  9. This is also the case without this plugin
  10. https://www.spigotmc.org/wiki/bungeecord-installation/#post-installation

Extension points exported contracts — how you extend this code

FastLoginAutoLoginEvent (Interface)
This event fires if the plugin performs an auto login on the platform where the login plugin is {@snippet : @EventHa [6 …
core/src/main/java/com/github/games647/fastlogin/core/shared/event/FastLoginAutoLoginEvent.java
FastLoginPremiumToggleEvent (Interface)
This even represents the opt-in premium status change by request. [6 implementers]
core/src/main/java/com/github/games647/fastlogin/core/shared/event/FastLoginPremiumToggleEvent.java
FastLoginPreLoginEvent (Interface)
This action represents the login attempt of a player before the plugin makes any online mode actions. [6 implementers]
core/src/main/java/com/github/games647/fastlogin/core/shared/event/FastLoginPreLoginEvent.java
AuthPlugin (Interface)
Represents a supporting authentication plugin in BungeeCord and Bukkit/Spigot/... servers @param either {@link org. [8 …
core/src/main/java/com/github/games647/fastlogin/core/hooks/AuthPlugin.java
LoginSource (Interface)
(no doc) [8 implementers]
core/src/main/java/com/github/games647/fastlogin/core/shared/LoginSource.java

Core symbols most depended-on inside this repo

getLog
called by 106
core/src/main/java/com/github/games647/fastlogin/core/shared/PlatformPlugin.java
getPlugin
called by 66
core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java
getName
called by 58
core/src/main/java/com/github/games647/fastlogin/core/shared/PlatformPlugin.java
getCore
called by 54
bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java
getScheduler
called by 37
core/src/main/java/com/github/games647/fastlogin/core/shared/PlatformPlugin.java
getAddress
called by 32
core/src/main/java/com/github/games647/fastlogin/core/shared/LoginSource.java
getConfig
called by 29
core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java
equals
called by 27
core/src/main/java/com/github/games647/fastlogin/core/storage/StoredProfile.java

Shape

Method 640
Class 101
Interface 11
Enum 6

Languages

Java100%

Modules by API surface

bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java27 symbols
core/src/main/java/com/github/games647/fastlogin/core/storage/StoredProfile.java24 symbols
bukkit/src/test/java/com/github/games647/fastlogin/bukkit/listener/protocollib/EncryptionUtilTest.java23 symbols
core/src/main/java/com/github/games647/fastlogin/core/shared/FastLoginCore.java22 symbols
velocity/src/main/java/com/github/games647/fastlogin/velocity/FastLoginVelocity.java20 symbols
bungee/src/main/java/com/github/games647/fastlogin/bungee/FastLoginBungee.java17 symbols
bukkit/src/main/java/com/github/games647/fastlogin/bukkit/BungeeManager.java14 symbols
bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ProtocolLibListener.java13 symbols
bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/EncryptionUtil.java13 symbols
bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/VerifyResponseTask.java11 symbols
velocity/src/main/java/com/github/games647/fastlogin/velocity/task/ForceLoginTask.java10 symbols
core/src/main/java/com/github/games647/fastlogin/core/shared/PlatformPlugin.java10 symbols

For agents

$ claude mcp add FastLogin \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact