DUXPLIMA Documentation

Reference

Every command, permission, placeholder and file of uxmAuth.

Command names below are the defaults; commands.conf renames, aliases or disables each one. A player command works for a player who has not logged in yet, and the password after it is kept out of the console and the log.

Contents: Player commands · Staff commands · Permissions · Placeholders · Events and API

Player commands

CommandAliasesPermissionWhat it does
/login [password]/l, /loguxmauth.loginLogs in with the password.
/register [password] [confirm]/reguxmauth.registerMakes an account.
/changepassword [old] [new]/changepass, /cpuxmauth.changepasswordChanges the password.
/logoutuxmauth.logoutLogs out and waits at the door again.
/claimuxmauth.claimSays the name is yours; the next connection from the same address is asked to prove it through Mojang.
/premiumuxmauth.premiumProves the name on the next connection and logs in without a password from then on.
/cracked [password]uxmauth.crackedTurns a premium account cracked.
/unregister [proof]uxmauth.unregisterDeletes the player's own account: alone it asks, then again with the password or an app code within account.delete-confirm-seconds.
/session on|offuxmauth.sessionChooses whether a join from the same address skips the password. Off ends every session of the account.
/captcha [code]uxmauth.captchaAnswers the captcha.
/recover [code] [password]uxmauth.recoverAlone it mails a code to the linked address; with the code and a new password it sets that password.
/email add [address]uxmauth.emailMails a code to the address.
/email confirm [code]uxmauth.emailLinks the address with its code.
/email removeuxmauth.emailTakes the linked address away.
/2fa [code]uxmauth.2faAnswers the second-factor code.
/2fa setupuxmauth.2faShows the key, the link and the QR code on a map.
/2fa confirm [code]uxmauth.2faTurns it on with the app's first code and shows the backup codes.
/2fa backup [code]uxmauth.2faShows a new set of backup codes and voids the old set.
/2fa email on / /2fa email off [code]uxmauth.2faMails the login code instead of asking the app, or stops it.
/2fa off [code]uxmauth.2faTurns it off with an app code or a backup code.

Every command also has Turkish words, for example /giris, /kayit, /cikis, /oturum, /dogrulama, /eposta, /kurtar, /sahiplen, /hesabisil and /crackedol. They work for anyone who types them and are listed to players who read Turkish.

Staff commands

The root is /uxmauth, alias /auth.

CommandPermissionWhat it does
/uxmauthuxmauth.admin.versionSays what the command is.
/uxmauth versionuxmauth.admin.versionShows the running version.
/uxmauth reloaduxmauth.admin.reloadReads the configuration and the content again.
/uxmauth doctoruxmauth.admin.doctorOne line per check, and whether anything needs an operator.
/uxmauth info <player>uxmauth.admin.infoDates, logins, factors, address and the other accounts on its addresses. /uxmauth bilgi in Turkish.
/uxmauth history <player>uxmauth.admin.historyThe latest logins with time, address and way in.
/uxmauth perfuxmauth.admin.perfTime spent hashing, querying the database and asking Mojang.
/uxmauth forcelogin <player>uxmauth.admin.forceloginLets a waiting player in past the login, on whichever server they wait.
/uxmauth unban <address>uxmauth.admin.unbanLifts the ban on an address and forgets its wrong passwords.
/uxmauth unregister <player>uxmauth.admin.unregisterRemoves an account and everything kept under it.
/uxmauth setpassword <player> <password>uxmauth.admin.setpasswordSets a password and ends the account's sessions.
/uxmauth forceregister <player> <password>uxmauth.admin.forceregisterMakes a password account under a name.
/uxmauth disable2fa <player>uxmauth.admin.disable2faTurns off every second factor of an account.
/uxmauth markpremium <player>uxmauth.admin.markpremiumTurns a cracked account premium when Mojang names a paid account under its name.
/uxmauth markcracked <player>uxmauth.admin.markcrackedTurns a premium account cracked.
/uxmauth resolve <player> <side>uxmauth.admin.resolveSettles a name a cracked holder and a paid owner both want: premium or cracked.
/uxmauth database moveuxmauth.admin.databaseCopies every account to storage.move-to. Console only, while nobody plays.
/uxmauth uuidscheme <scheme>uxmauth.admin.databaseGives every account the id another UUID scheme gives it. Console only, while nobody plays.
/uxmauth languxmauth.languageSays the language the player reads and what else exists.
/uxmauth lang set <language>uxmauth.languageReads the plugin in one language.
/uxmauth lang resetuxmauth.languageFollows the client again.
/uxmauth lang set-player <player> <language>uxmauth.admin.languageSets another player's language.
/uxmauth lang reset-player <player>uxmauth.admin.languageClears another player's choice.

Besides the permission, forcelogin, unregister, setpassword, disable2fa, markpremium, markcracked and resolve run only from the console unless staff.in-game lists them. The Velocity jar registers the /login and /register words of commands.conf for the proxy's waiting world only.

Permissions

PermissionDefault
uxmauth.language, uxmauth.login, uxmauth.register, uxmauth.logout, uxmauth.claim, uxmauth.premium, uxmauth.unregister, uxmauth.cracked, uxmauth.captcha, uxmauth.session, uxmauth.2fa, uxmauth.recover, uxmauth.email, uxmauth.changepasswordeveryone
uxmauth.admin.*op, grants the whole uxmauth.admin family
uxmauth.admin.doctor, .version, .reload, .info, .history, .forcelogin, .unban, .unregister, .setpassword, .forceregister, .disable2fa, .markpremium, .markcracked, .resolve, .alerts, .perf, .database, .languageop
uxmauth.2fa.requirednot declared; second-factor.required-permission names it. A player holding it outright plays only with the app on. The default an operator gets does not count.

Placeholders

Published through PlaceholderAPI under uxmauth when it is installed. Each answers for the player asked about, from memory, on whatever thread asks. A player who has not logged in reads false for authenticated and nothing for the rest.

PlaceholderAnswers
%uxmauth_authenticated%true or false
%uxmauth_method%how the session got in: password, registered, premium, bedrock, session, forced or network
%uxmauth_premium%true or false
%uxmauth_kind%premium, cracked or bedrock
%uxmauth_2fa%true or false: an app, or a code by mail
%uxmauth_registered%when the account was made, in placeholders.date-format
%uxmauth_last_login%when the session logged in, in placeholders.date-format

%uxmauth_time_left%, the seconds a waiting player has before the timeout, works only inside effects lines.

Events and API

Another plugin compiles against the uxmAuth-api module and reaches the API through AuthApiProvider.get() on Paper and Velocity, or through the services manager on Paper. It answers isAuthenticated, method and kind from memory. Both jars carry the module unrelocated.

On Paper, PreLoginEvent and PreRegisterEvent fire off the server's threads before a password is checked or an account is made; refuse(reason) refuses with that reason and a refused login spends no attempt. LoginEvent and RegisterEvent fire on the player's thread. FailedLoginEvent, BanEvent, PasswordChangeEvent, UnregisterEvent and KindSwitchEvent fire off the server's threads. On Velocity PreLoginEvent, PreRegisterEvent, LoginEvent, RegisterEvent, FailedLoginEvent and BanEvent fire for what happens at the proxy.