Skip to content

SnDiscordLink v1.0.0

Choose a tag to compare

@ValentinTarnovsky ValentinTarnovsky released this 07 Sep 16:14
· 25 commits to main since this release

First stable release of SnDiscordLink.

Links Minecraft accounts to Discord accounts with one-time codes. Several servers share one
MySQL database and elect a single embedded Discord bot through a database lease, so a player
links once and every server, placeholder and reward follows.

Features

  • One-time 6-digit codes in both directions: /discord link in game redeemed with /link <code>
    in Discord, and /link in Discord redeemed with /discord verify <code> in game.
  • Multi-server by design: codes, links, rewards, cooldowns and the bot lease all live in the
    shared database. No cross-server messaging, identical config.yml everywhere.
  • Automatic bot failover: exactly one backend holds the lease and runs JDA; a dead host is
    replaced in about 30 seconds.
  • linked-role given on link and removed on unlink, with optional nickname sync.
  • claims: in-game rewards gated by a boost or a Discord role, each with its own cooldown.
  • rank-roles: permanent LuckPerms groups mirrored to Discord roles. Only mapped roles are
    ever added or removed, one PATCH per member.
  • role-rewards: Discord roles that run on-gain / on-lose actions in game.
  • rewards: action lists run once on link, on unlink and on a Discord leave.
  • PlaceholderAPI expansion and a webhook embed log of link events.
  • Discord side: /link, /unlink and the staff group /dlink info | unlink | accounts | stats.

Requirements

Java 21+, Paper 1.20.4+, SnLib 1.34.3+. JDA 6.6.0 is downloaded by Paper into libraries/ on
first boot, never shaded. Optional: LuckPerms, PlaceholderAPI.

Build

Obfuscated with SnObfuscator (59 classes renamed, verify 60 structural / 60 data-flow / 0 failed).