PremiumBridge is a Paper 1.21.x plugin for offline-mode servers that detects real premium joins, auto-authenticates them with supported auth plugins, and keeps cracked players on the normal login/register flow.
- Premium session verification for offline-mode servers through ProtocolLib and Mojang session checks
- Automatic login for verified premium players
- Optional premium auto-registration with a random password
- Optional protection for nicknames that were already linked to premium accounts
- Seamless hiding of auth-plugin service messages for premium players, so auto-login does not spam chat
- Offline-to-premium data migration
- New migration modes:
disabledautomaticask-player
- Public API for other plugins
- AddHeads integration for premium players
- Public API for other plugins
- Built-in language files
- AuthMe
- OpeNLogin
xAuth is intentionally not listed as supported on modern Paper 1.21.x.
- Paper 1.21.x
- ProtocolLib
- One supported auth plugin
- Install
ProtocolLib. - Install
AuthMeorOpeNLogin. - Put
PremiumBridge.jarintoplugins/. - Start the server once.
- Edit
plugins/PremiumBridge/config.ymlif needed. - Restart the server or run
/premauthbridge reload.
Bundled language files are created in plugins/PremiumBridge/languages/:
en_USru_RUde_DEfr_FRpl_PLuk_UAes_ESit_IT
Set the default language in config.yml:
language:
default: "en_US"
auto-detect-client-locale: truemigration:
offline-data:
enabled: true
mode: "ask-player"disabled: do not migrate offline dataautomatic: migrate automatically before the premium player fully joinsask-player: show clickableYES/NObuttons in chat after premium auto-login
When a player accepts manual migration, PremiumBridge asks them to reconnect once. On the next join, the migration is applied before the player fully loads, which is the most reliable way to restore inventory, position, stats and advancements.
PremiumBridge registers a Bukkit service and also provides a static helper:
import goshkow.premlogin.api.PremiumBridge;
import goshkow.premlogin.api.PremiumBridgeApi;
import goshkow.premlogin.api.PremiumStatus;
PremiumBridgeApi api = PremiumBridge.getApi();
if (api != null) {
PremiumStatus status = api.getPremiumStatus(player);
if (status.isSecure()) {
// verified premium session
}
}The API also exposes:
- active auth provider detection
- secure vs insecure premium status
- known premium nicknames
- linked offline/premium UUID lookups
- migration state checks
- premium registration mode checks
PremiumBridge can integrate with AddHeads so verified premium players do not get duplicated tab heads.
How it works:
- PremiumBridge automatically grants
addhead.premiumto verified premium players when the integration is enabled - this is useful when AddHeads is configured to treat premium players through permission mode
- on first config creation, PremiumBridge enables this integration automatically if
AddHeadsis already installed
For this to work correctly in AddHeads, enable the premium-player detection mode that uses permission checks, and make sure addhead.premium is the permission being used there.
- Automatic data migration covers vanilla player data, stats and advancements.
- Third-party plugin data is not universally portable because each plugin stores it differently.