Skip to content

Rank & author sync

Once a player is linked, dWebLink keeps their rank in sync with the website so it shows up next to their name β€” as the author byline on content they publish and in the admin sidebar for staff.

When sync runs, dWebLink reads the player’s LuckPerms data and sends it to the API:

POST /api/v1/link/minecraft/profile
Authorization: Bearer <api-key>
X-Tenant-Slug: <tenant-slug>
{ "uuid": "...", "name": "...", "lpGroup": "admin", "lpPrefix": "[Admin]" }
  • lpGroup β€” the player’s LuckPerms primary group.
  • lpPrefix β€” their LuckPerms prefix, with color codes stripped (legacy &/Β§, Β§x hex, and MiniMessage tags are removed so only the label remains).
  • name β€” the current username, so a rename is picked up too.

The API stores these on the player’s account only if the account exists β€” an unlinked player who joins is simply a no-op.

:memo: No LuckPerms? dWebLink still pushes the username (keeping it fresh); the group and prefix are just omitted.

Trigger Behaviour
Player join After a short delay (join-delay-ticks, default ~2s) so LuckPerms has loaded the user, throttled to at most once per min-interval-seconds (default 5 min) per player.
/webtoken Pushed immediately after a successful code, bypassing the throttle β€” so a player who just changed rank refreshes it on demand.

Because a link is completed on the website (invisible to the server), the first join after linking is what first populates a rank. Have players relog, or run /webtoken, if a freshly linked account shows no rank yet.

  • Author byline β€” content published from the admin panel shows the author’s Minecraft head, name, and rank chip on the public site.
  • Admin sidebar β€” staff see their own Minecraft head + name in the panel.

The website admin panel requires a verified Minecraft link. Staff sign in with Discord, but the panel refuses the session unless that Discord account is linked to a verified Minecraft account β€” so every author has a real in-game identity (skin, name, rank). There is no owner exemption.

This means: before enabling the gate, every admin must link (Minecraft and Discord). The API includes a check (admin:link-check) that lists any admin who would be locked out β€” run it until it is clear, then deploy. See the Phalanx deployment guide.

All in plugins/dWebLink/config.yml:

profile-sync:
enabled: true # master switch for join + /webtoken pushes
join-delay-ticks: 40 # raise if your LuckPerms loads slowly on join
min-interval-seconds: 300 # lower for fresher ranks, higher to reduce calls

Full reference: config.yml.