
LimboAuth 1.0.5
Minecraft Auth System for Velocity proxy built in virtual server - Limbo.
LimboAuth
Auth System built in virtual server (Limbo).
Needs LimboAPI to be installed on the proxy!
Test server: ely.su
See also
- LimboFilter - Most powerful bot filtering solution for Minecraft proxies. Built with LimboAPI.
- LimboAPI - Library for sending players to virtual servers (called limbo)
Features of LimboAuth
- Supports H2, MySQL, PostgreSQL databases;
- Geyser Floodgate support;
- Hybrid (Floodgate/Online/Offline) mode support;
- Uses BCrypt - the best hashing algorithm for password;
- Ability to migrate from AuthMe-alike plugins;
- Ability to block weak passwords;
- TOTP 2FA support;
- Ability to set UUID from database;
- Highly customisable config - you can change all the messages the plugin sends, or just disable them;
- MCEdit schematic world loading;
- And more...
Migration
Spoiler: Migration from another plugins
Start the server with LimboAuth (+ SocialAddon, if needed) on the desired SQL database.
Then you should execute the SQL statement (e.g. in PhpMySQL or in HeidiSQL)
And set the migration-hash field to the desired value in the LimboAuth config file.
JPremium:
INSERT INTO limbo.AUTH
SELECT lastNickname, LOWER(lastNickname), IF(hashedPassword IS NULL, "", IF(premiumId IS NULL, hashedPassword, "")), COALESCE(firstAddress, ""), "", (UNIX_TIMESTAMP(firstSeen) * 1000), CONCAT(SUBSTR(uniqueId, 1, 8), '-', SUBSTR(uniqueId, 9, 4), '-', SUBSTR(uniqueId, 13, 4), '-', SUBSTR(uniqueId, 17, 4), '-', SUBSTR(uniqueId, 21)), IF(premiumId IS NULL, "", CONCAT(SUBSTR(premiumId, 1, 8), '-', SUBSTR(premiumId, 9, 4), '-', SUBSTR(premiumId, 13, 4), '-', SUBSTR(premiumId, 17, 4), '-', SUBSTR(premiumId, 21)))
FROM jpremium.user_profiles WHERE lastNickname IS NOT NULL
If you've used SHA256 in JPremium, set migration-hash to AUTHME_NP; if you've used SHA512, to SHA512_DBA. If you've used BCrypt, leave this field blank.
NLogin:
INSERT INTO limbo.AUTH
SELECT realname, name, COALESCE(password, ""), COALESCE(address, ""), "", 0, CONCAT(SUBSTR(uniqueId, 1, 8), '-', SUBSTR(uniqueId, 9, 4), '-', SUBSTR(uniqueId, 13, 4), '-', SUBSTR(uniqueId, 17, 4), '-', SUBSTR(uniqueId, 21)), IF(premiumId IS NULL, "", CONCAT(SUBSTR(premiumId, 1, 8), '-', SUBSTR(premiumId, 9, 4), '-', SUBSTR(premiumId, 13, 4), '-', SUBSTR(premiumId, 17, 4), '-', SUBSTR(premiumId, 21)))
FROM nlogin.table
MoonVKAuth/DSKAuth:
INSERT INTO база_лимбы.AUTH SELECT username, LOWER(username), IF(password IS NULL, "", IF(premium = 1, "", password)), COALESCE(register_ip, ""), "", reg_date, "", "" FROM база_мунвк.auth WHERE username IS NOT NULL;
INSERT IGNORE INTO база_лимбы.SOCIAL
SELECT LOWER(username), vk_id, NULL, NULL, ban, double_auth, notification
FROM база_мунвк.vk;
migration-hash: AUTHME
AuthMe:
INSERT INTO limbo.AUTH SELECT realname, username, COALESCE(password, ""), COALESCE(ip, ""), COALESCE(totp, ""), regdate, "", "" FROM authme.table WHERE username IS NOT NULL
DBA:
INSERT IGNORE INTO u27303_data.AUTH SELECT name, LOWER(name), IF(password IS NOT NULL, CONCAT("SHA512$", salt, "$", password), ""), COALESCE(reg_ip, ""), "", (UNIX_TIMESTAMP(firstjoin) * 1000), uuid, "" FROM u27303_data.playerdata WHERE name IS NOT NULL
Then you should execute the SQL statement (e.g. in PhpMySQL or in HeidiSQL)
And set the migration-hash field to the desired value in the LimboAuth config file.
JPremium:
INSERT INTO limbo.AUTH
SELECT lastNickname, LOWER(lastNickname), IF(hashedPassword IS NULL, "", IF(premiumId IS NULL, hashedPassword, "")), COALESCE(firstAddress, ""), "", (UNIX_TIMESTAMP(firstSeen) * 1000), CONCAT(SUBSTR(uniqueId, 1, 8), '-', SUBSTR(uniqueId, 9, 4), '-', SUBSTR(uniqueId, 13, 4), '-', SUBSTR(uniqueId, 17, 4), '-', SUBSTR(uniqueId, 21)), IF(premiumId IS NULL, "", CONCAT(SUBSTR(premiumId, 1, 8), '-', SUBSTR(premiumId, 9, 4), '-', SUBSTR(premiumId, 13, 4), '-', SUBSTR(premiumId, 17, 4), '-', SUBSTR(premiumId, 21)))
FROM jpremium.user_profiles WHERE lastNickname IS NOT NULL
NLogin:
INSERT INTO limbo.AUTH
SELECT realname, name, COALESCE(password, ""), COALESCE(address, ""), "", 0, CONCAT(SUBSTR(uniqueId, 1, 8), '-', SUBSTR(uniqueId, 9, 4), '-', SUBSTR(uniqueId, 13, 4), '-', SUBSTR(uniqueId, 17, 4), '-', SUBSTR(uniqueId, 21)), IF(premiumId IS NULL, "", CONCAT(SUBSTR(premiumId, 1, 8), '-', SUBSTR(premiumId, 9, 4), '-', SUBSTR(premiumId, 13, 4), '-', SUBSTR(premiumId, 17, 4), '-', SUBSTR(premiumId, 21)))
FROM nlogin.table
INSERT INTO база_лимбы.AUTH SELECT username, LOWER(username), IF(password IS NULL, "", IF(premium = 1, "", password)), COALESCE(register_ip, ""), "", reg_date, "", "" FROM база_мунвк.auth WHERE username IS NOT NULL;
INSERT IGNORE INTO база_лимбы.SOCIAL
SELECT LOWER(username), vk_id, NULL, NULL, ban, double_auth, notification
FROM база_мунвк.vk;
AuthMe:
INSERT INTO limbo.AUTH SELECT realname, username, COALESCE(password, ""), COALESCE(ip, ""), COALESCE(totp, ""), regdate, "", "" FROM authme.table WHERE username IS NOT NULL
INSERT IGNORE INTO u27303_data.AUTH SELECT name, LOWER(name), IF(password IS NOT NULL, CONCAT("SHA512$", salt, "$", password), ""), COALESCE(reg_ip, ""), "", (UNIX_TIMESTAMP(firstjoin) * 1000), uuid, "" FROM u27303_data.playerdata WHERE name IS NOT NULL
Donation
Your donations are really appreciated. Donations wallets/links/cards: