Sentinel
1.0.0Velocity plugin that functions as a larger-scale Discord linking system leveraging MySQL.
Sentinel
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.
Commands
Discord Commands
/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.
Features
- Account Linking: Secure verification system linking Minecraft accounts to Discord
- Login Protection: Prevents unlinked accounts from joining (with configurable bypass servers)
- Role Management: Automatic Discord role assignment for linked players
- Quarantine System: Staff can quarantine problematic players, preventing login and kicking online players
- Automatic Cleanup: Removes database entries for users who leave Discord
- Rate Limiting: Respects Discord API limits with intelligent rate limiting
Requirements
- Java 17+
- Velocity Proxy (tested on 3.4.0-SNAPSHOT)
- MySQL or MariaDB
Setup
-
Install the plugin
Place the shaded JAR into yourplugins/folder on your Velocity proxy. -
Configure MySQL and Discord
On first run,plugins/sentinel/config.jsonwill 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"] } }
Configuration Options
-
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:- All existing linked accounts receive the role on bot startup (rate-limited)
- New accounts that link immediately receive the role
- Role synchronization spreads over ~20 minutes for large databases
-
quarantineRole: (Optional) Discord role ID for quarantined players. When configured:- Players with this role are denied login
- Staff can use
/quarantinecommand to toggle this role - Online players are immediately kicked when quarantined
-
quarantineMessage: Message shown to quarantined players when they try to join or are kicked -
staffRoles: Array of Discord role IDs that can use the/quarantinecommand
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta