What is DiscordConnector?
If you run a Paper network and want Discord actually tied into your server, this plugin handles the stuff people usually patch together with separate tools: linking accounts, syncing ranks, media uploads, slash commands, and letting staff run console commands from Discord.
Works on Paper 1.21.4+ with Java 21. LuckPerms is recommended for role sync and the media rank system. You bring your own Discord bot, everything else is in the JAR. No license keys, no DRM.
Account linking
Players run /link in-game and get a code. They finish linking in Discord with /link code:XXXXXX (or the Discord slash command).
Once linked, pending Discord roles apply automatically. If someone gets a Discord role before linking, it waits until they link up. New Discord members can get a welcome message explaining how to link.
Role sync (Discord ↔ LuckPerms)
Map Discord roles to LuckPerms groups in config. Give someone a role in Discord → they get the rank in-game. Remove a rank in-game → the Discord role comes off too.
Good for staff ranks, media ranks, boosters, VIP, subs — whatever you map. Unlinked players queue roles until they link.
Media system
Staff use /rank <player> to grant the media rank (there’s a confirm/cancel GUI so you don’t misclick). That adds the LuckPerms group and starts a timer.
Players check time left with /media — opens a chest GUI with their head, time remaining, and expiry date.
Two timers you can configure:
When media rank expires in-game, the Discord media role can be removed automatically if you want that on.
- How long /rank lasts (default 14 days)
- Whether accepting an upload resets the timer (default 14 days)
Media uploads (Discord /post)
Creators submit through /post in Discord. A form asks for username, upload link, and TikTok. It posts to your upload channel as an embed with a 3D Minecraft head, the info fields, and Accept / Decline buttons for media managers.
Accept → timer resets. Decline → staff must give a reason, player gets a DM with it.
Embed title, colors, footer, field names, and ping format are all in config.
Slash commands
Discord: /link, /post, /media, /ip, /store
Minecraft: /link, /media, /rank, /post (points people to Discord), /discordbridge reload, /discordbridge status
/discordbridge also works as /dc or /db.
/ip and /store messages are fully configurable.
Staff console from Discord
Staff with the right Discord role type ! then any server command — like !say Hello or !broadcast Welcome. Runs on the server as if you typed it in console.
Same idea works in-game for admins with the console permission. Prefix and which channel it works in are configurable.
Customization
One config file for bot token, guild ID, channels, roles, role mappings, media timers, upload embed design, welcome text, slash command replies, and every in-game message.
Messages support normal color codes (&a, &c) and hex/MiniMessage (<#00C3FF>, <bold>, etc.).
Change config → /discordbridge reload. No restart needed.
Permissions
Discord console = role in discord.roles.console-access
Permission Default What it does discordbridge.admin OP /rank, /discordbridge discordbridge.console OP In-game !commands discordbridge.link Everyone /link
Accept/decline uploads = role in discord.roles.media-manager
Setup
Enable Server Members Intent and Message Content Intent on your bot in the Developer Portal.
- Drop DiscordConnector.jar in plugins/
- Install LuckPerms (recommended)
- Start once — config generates at plugins/DiscordConnector/config.yml
- Create a Discord bot, paste token + guild ID
- Set your channel and role IDs
- Map role sync + tweak messages
- /discordbridge reload
README included with the download.![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
