Connect your Minecraft server community to your Discord server in real-time. KodaDiscordLink offers a robust, asynchronous, and fully configurable system that links Minecraft accounts with Discord IDs, synchronizing ranks and roles in both directions automatically!
Whether you run a single survival server or a massive multi-lobby network, this plugin keeps your community's ranks organized automatically without any hassle.
Visual Demos & In-Game Showcase
Here is how the plugin operates in-game and on Discord.
Minecraft Verification Initiation (/link)
When players run /link in-game, they receive a stylized, temporary alphanumeric code.
Discord Interaction (/verify <code>)
Players input the code inside Discord using native Slash commands. The bot immediately confirms linking and updates their server roles.
Administrative Query Output (/whois)
Staff members can lookup linkages instantly via /whois on Minecraft, showing full details asynchronously.
Premium Features & Technical Highlights
Bidirectional Real-Time Sync:- Minecraft ➔ Discord: Changing a player's group in LuckPerms (via rank purchase, command, or staff promotion) instantly updates their Discord roles.
- Discord ➔ Minecraft (Reverse Sync): Adding or removing a mapped role directly on Discord updates their LuckPerms group in-game!
SQLite & MySQL/MariaDB Support: Use SQLite for simple, lightweight setups, or connect a MySQL database connection pool powered by HikariCP to share linkages across your entire server network (Lobby, Survival, Skyblock, etc.).
Auto-Unlink on Discord Leave: If a player leaves or is kicked from your Discord server, the plugin automatically removes their linked database entry and strips their in-game ranks.
100% Asynchronous & Lag-Free: Database queries, Discord bot actions, and /whoisqueries run completely on separate threads, ensuring your server's TPS never drops!
Admin /whois command: Instantly lookup who is linked to what account by checking a Minecraft username, UUID, or Discord ID.
Discord Action Logs: Send automatic logs of new links, unlinks, and synchronization actions directly to a Discord text channel of your choice.
PlaceholderAPI Support: Show link status, Discord tags, and Discord IDs on tab lists, scoreboards, or chat expansions.
Step-by-Step Installation Guide
Make sure you have LuckPerms installed on your Minecraft server.
Put the KodaDiscordLink-1.0.jarfile inside your server'splugins/directory.
Go to the Discord Developer Portal, create your application/bot, and invite it to your server.
Under the Bot tab in the developer portal, enable the Server Members Intent under Privileged Gateway Intents.
In your Discord server, go to Roles, find the role of your Bot, and drag it physically above the roles you want it to manage.
Start your Minecraft server, then open plugins/KodaDiscordLink/config.yml.
Fill in your Bot Token, Guild ID, and define your Ranks to Roles mappings.
Restart the server or reload the plugin, and enjoy!
Commands & Permissions
In-Game Commands
/link— Generates a unique 6-character code to link your account. ➔ (No permission required)/unlink— Removes your linkage and clears sync roles. ➔ (No permission required)/whois <player|discord_id>— Look up linkage details for any account. ➔ (Permission:kodadiscordlink.admin)
Discord Commands
/verify <code>— Input the in-game code to complete account verification.
Placeholders
%kodadiscordlink_linked%— Returnstrueif linked,falseotherwise.%kodadiscordlink_id%— Returns the user's Discord ID.%kodadiscordlink_tag%— Returns the user's Discord username/tag (e.g.koda_dev).
Default config.yml
YAML:
# KodaDiscordLink Configuration
bot:
token: "YOUR_BOT_TOKEN_HERE"
guild-id: "YOUR_GUILD_ID_HERE"
log-channel-id: "YOUR_LOG_CHANNEL_ID_HERE"
enable-logs: true
database:
type: "sqlite" # 'sqlite' or 'mysql'
mysql:
host: "localhost"
port: 3306
database: "kodadiscordlink"
username: "root"
password: ""
useSSL: false
pool:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
verification:
code-length: 6
expiration-minutes: 5
sync:
reverse-sync: true
auto-unlink-on-leave: true
mappings:
admin: "ROLE_ID_ADMIN"
vip: "ROLE_ID_VIP"
default: "ROLE_ID_DEFAULT"
