DUXPLIMA Documentation

Premium names and ownership

A name that exists at Mojang can be held by a paid player or by a player without a paid account.

A name that exists at Mojang can be held by a paid player or by a player without a paid account. These settings decide who gets the name and what happens when two players want it. They live in the premium block of config.conf and in ownership.conf.

How a name is checked

premium.sources lists the services asked, in order: mojang, playerdb, minetools, ashcon. The first that can answer decides; one that is down, slow or refusing passes the name to the next. An answer is kept for premium.cache-minutes; an answer no source could give is never kept. premium.mojang-cap-per-10-minutes keeps requests under Mojang's limit so the mirrors answer the rest. premium.addresses points a source at a mirror of your own.

A premium player who has no password gets a random one at the first premium login, shown once and stored as a hash (premium.backup-password). With ownership.premium-password-fallback it lets the player in when the handshake fails because Mojang is down or the Mojang account is lost.

Ownership rules

ownership.rule is one of:

RuleBehavior
automaticA new name that exists at Mojang is asked for the handshake once. A paid player is in without a password. A player who fails joins with a password from the next connection and keeps the name until its paid owner proves it with /claim or the button on the login screen.
opt-inEverybody joins with a password. A player who types /premium is asked for the handshake from the next connection on.
strictEvery name that exists at Mojang must pass the handshake. A cracked player can never hold a paid name.
domainThe address a player joins through decides: ownership.domains.premium for paid accounts, ownership.domains.cracked for the rest. An address on neither list counts as cracked. A cracked name gets cracked-mark at mark-at.

when-every-source-fails says what a new name is taken for when no source could answer: cracked (marked unverified and asked again next time), premium or refuse. failed-memory-seconds remembers a connection that failed the handshake so it is told why. claim-minutes is how long a claim waits for the next connection from the same address.

The handshake itself runs on a lone server only in offline mode and not behind a proxy. In online mode the server proves every player, and behind a proxy the network's handshake belongs to the proxy; the console says which applies.

UUID schemes

ownership.uuid-scheme decides the UUID a player plays under, which every other plugin uses to key inventories, ranks and money:

SchemeBehavior
keep-firstA new paid player gets the Mojang UUID, a new cracked player the offline one. An account keeps the UUID it was made with.
offlineEverybody gets the offline UUID derived from the name.
mojangEvery paid player gets the Mojang UUID. A cracked account that later proves a paid name moves to it.
randomEvery new player gets a random UUID, kept from then on.

The scheme is written into the database at the first start. A later start under another scheme is refused, because it would put every player into an empty inventory. To change it, run /uxmauth uuidscheme <scheme> from the console while nobody plays, write the scheme in ownership.uuid-scheme and restart. Accounts that would share an id are named and left.

Name conflicts

When the paid owner of a name proves it while a cracked account holds it, ownership.conflict decides:

StrategyBehavior
renameThe cracked account moves with everything it had to the name plus rename-mark. The paid owner gets the name.
blockBoth are stopped with a message until staff settle it with /uxmauth resolve.
cracked-keepsThe cracked account keeps the name and the paid owner is told to change theirs at Mojang.
premium-takesThe cracked account is deleted and the paid owner gets the name. Whoever buys a name takes the account of the player who held it first.

rename-mark must pass names.pattern, and the plugin refuses a mark it does not take. The default _ passes Paper's own name check. A cracked mark such as + is refused by Paper while perform-username-validation is on in config/paper-global.yml; turn that off or use a letter mark. The start warns when the two do not fit.

Bedrock

With bedrock.auto-login, a Bedrock player that Floodgate vouched for through Xbox Live enters without a password, into their own Bedrock account or the Java account Floodgate linked them to. An unlinked Bedrock player under a Java account's name is still asked for that account's password. Off, every Bedrock player uses a password through a native form.