Velocity plugin that functions as a larger-scale Discord linking system leveraging MySQL.
⚠️ Tested with Minecraft 1.20.1:
This said, Sentinel uses Velocity’s login API and does not depend on specific Minecraft server software or versions. It should work with any backend supported by your Velocity proxy including Paper, Spigot, Forge, and Fabric servers.
Sentinel is a Velocity plugin that securely links Minecraft accounts to Discord accounts. It integrates with a Discord bot to verify players before allowing login, helping to prevent impersonation and aiding in connecting players together. Sentinel also provides quarantine functionality to temporarily restrict access for problematic players.
/link <code>
Link your Minecraft account to your Discord account.
/whois [discord: @user | minecraft: username]
Look up linked account info.
/quarantine <user>
Toggle quarantine role for a user (Minecraft username or Discord @mention).
Requires staff role permissions. Automatically kicks online players when quarantined.
Install the plugin
Place the shaded JAR into your plugins/ folder on your Velocity proxy.
Configure MySQL and Discord
On first run, plugins/sentinel/config.json will be created. Fill in your database credentials, Discord token, and optionally configure quarantine and staff roles:
{
"mysql": {
"host": "localhost",
"port": 3306,
"database": "sentinel",
"username": "sentinel_user",
"password": "password"
},
"discord": {
"token": "your_discord_bot_token",
"linkedRole": "123456789012345678",
"quarantineRole": "987654321098765432",
"quarantineMessage": "Your account has been quarantined. Contact an administrator.",
"staffRoles": ["111111111111111111", "222222222222222222"]
},
"bypassServers": {
"servers": ["lobby", "auth"]
}
}
bypassServers: Server names that bypass Discord verification requirement. Useful for lobbies or auth servers where unverified players should be allowed.
linkedRole: (Optional) Discord role ID automatically assigned to all linked players. When configured:
quarantineRole: (Optional) Discord role ID for quarantined players. When configured:
/quarantine command to toggle this rolequarantineMessage: Message shown to quarantined players when they try to join or are kicked
staffRoles: Array of Discord role IDs that can use the /quarantine command