Vexify: Minecraft-Discord Verification System
(JAR + Bot Source Code)Support Discord: https://discord.gg/cxmtXrz7Kv
Username Discord: warewolfzer
Description
Vexify is a seamless Minecraft-Discord verification system that bridges your Minecraft server and Discord community, enabling players to verify their in-game accounts with a simple Discord command and earn a verified role. Designed for Paper 1.21.4, Vexify combines a robust plugin (compiled JAR) with a fully customizable Discord bot (source code included), leveraging MySQL for secure data storage and Redis for efficient rate-limiting. With intuitive admin tools, secure JWT-based API communication, and a user-friendly verification process, Vexify enhances server security, fosters community engagement, and is ideal for server owners seeking a professional verification solution. Whether you’re running a small community or a large network, Vexify’s easy setup and extensibility make it a must-have for modern Minecraft servers.
Features
- Seamless Verification:
- Players click a “Verify” button in Discord to receive a unique code.
- Use /verify <code> in Minecraft to link accounts and receive a Discord role.
- Secure and Reliable:
- Uses MySQL for persistent storage and Redis for rate-limiting.
- JWT-based API authentication between plugin and bot.
- Customizable:
- Configure messages, database, and API settings via config.yml (plugin) and .env (bot).
- Bot source code allows full customization (e.g., add new commands).
- Rate-Limiting:
- Prevents abuse with a 3-attempt limit per 10 minutes per user.
- Admin Tools:
- Discord commands: /setup-verification (create verify button), /verifyrole @Role (set verified role).
- Automatic role assignment upon successful verification.
- Cross-Platform:
- Supports Paper 1.21.4 (compatible with 1.20.1+).
- Bot runs on any Node.js-compatible host (VPS, Heroku, etc.).
Setup Instructions
Follow these steps to set up VexifyPlugin and VexifyBot. Basic knowledge of Minecraft server administration, Discord bot setup, and database configuration is recommended.
Prerequisites
- VexifyPlugin:
- Paper 1.21.4 server (or compatible Spigot/Paper 1.16.5+).
- MySQL database (version 8.0+).
- Internet access for API communication with VexifyBot.
- VexifyBot:
- Node.js 18+ (download from nodejs.org).
- MySQL database (can share with plugin).
- Redis server (version 6.0+, e.g., from redis.io).
- Discord bot token (from Discord Developer Portal).
- Hosting environment (e.g., VPS, Heroku, or local server with public IP).
VexifyPlugin Setup
- Install Plugin:
- Download Vexify.zip from BuiltByBit and extract it.
- Copy VexifyPlugin.jar to your Paper server’s plugins/ folder.
- Start the server to generate plugins/VexifyPlugin/config.yml.
- Configure Database:
- Vexify Plugin will automatically create the database tables.
- Edit Configuration:
- Open plugins/VexifyPlugin/config.yml and update:database:
url: jdbc:mysql://your_mysql_host:3306/verification_db
user: your_mysql_user
password: your_mysql_password
api:
url: http://your_bot_host:3000
jwt_token: your_jwt_secret
messages:
player-only: "This command is for players only!"
usage: "Usage: /verify <code>"
code-expired: "This code has expired!"
too-many-attempts: "Too many attempts! Request a new code."
success: "Verification successful!"
invalid-code: "Invalid or already used code!"
error: "An error occurred. Try again later."
already-verified: "You are already verified!"
- Replace your_mysql_host, your_mysql_user, your_mysql_password with your MySQL credentials.
- Set your_bot_host to the bot’s public IP or domain (e.g., http://123.45.67.89:3000 or http://yourdomain.com:3000).
- Choose a secure your_jwt_secret (e.g., a random 8+ character string) and note it for bot setup.
- Open plugins/VexifyPlugin/config.yml and update:database:
- Test Plugin:
- Restart the server (/reload or full restart).
- Check latest.log for:[VexifyPlugin] Database connection pool initialized.
[VexifyPlugin] API connectivity check successful: {"status":"OK","message":"VexifyBot API is running"}
[VexifyPlugin] VexifyPlugin enabled!
- Ensure no errors (e.g., MySQL connection issues).
VexifyBot Setup
- Extract Bot Code:
- Extract VexifyBot.zip from Vexify.zip.
- Navigate to the VexifyBot directory.
- Install Dependencies:
- Ensure Node.js 18+ is installed.
- Run:cd VexifyBot
npm install
- This installs discord.js, express, mysql2, ioredis, winston, and dotenv.
- Configure Environment:
- Copy .env.example to .env
- Edit .env with your settings
- TOKEN=your_discord_bot_token
GUILD_ID=your_discord_guild_id
VERIFIED_ROLE_ID=your_verified_role_id
DB_HOST=your_mysql_host
DB_USER=your_mysql_user
DB_PASSWORD=your_mysql_password
DB_NAME=verification_db
REDIS_HOST=your_redis_host
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
API_PORT=3000
JWT_SECRET=your_jwt_secret - Obtaining Values:
- TOKEN: Create a bot in Discord Developer Portal, copy its token.
- GUILD_ID: Right-click your Discord server, select “Copy ID” (enable Developer Mode in Discord settings).
- VERIFIED_ROLE_ID: Create a role (e.g., “Verified”) in Discord, right-click to copy its ID.
- DB_HOST, DB_USER, DB_PASSWORD, DB_NAME: Use the same MySQL credentials as the plugin.
- REDIS_HOST, REDIS_PORT, REDIS_PASSWORD: Set up Redis (e.g., local or hosted) and note its details.
- API_PORT: Default is 3000; change if needed.
- JWT_SECRET: Must match the jwt_token in config.yml.
- Copy .env.example to .env
- Set Up Discord Bot:
- In the Discord Developer Portal:
- Go to your bot’s application > OAuth2 > URL Generator.
- Select scopes: bot, applications.commands.
- Select permissions: Administrator (or Manage Roles, Send Messages, Embed Links, Read Messages/View Channels).
- Copy the generated URL and invite the bot to your server.
- In Discord:
- Ensure the bot’s role is above the verified role in Server Settings > Roles.
- Example hierarchy:1. VexifyBot (Administrator or Manage Roles)
2. Verified
3. Other Roles
- In the Discord Developer Portal:
- Run Bot:
- Start the bot:
- npm start
- Check vexify_bot.log for
- {"level":"info","message":"Logged in as VexifyBot#1234 (VexifyBot)","timestamp":"..."}
{"level":"info","message":"VexifyBot API listening on port 3000","timestamp":"..."}
- If errors occur (e.g., invalid token, MySQL/Redis connection), verify .env settings.
- Configure Discord Commands:
- In Discord, run:
- Check vexify_bot.log for:{"level":"info","message":"Verified role updated to <role_id> for VexifyBot","timestamp":"..."}
- Verify config.json is updated:{"verifiedRoleId":"<role_id>"}
Test Verification
- Discord:
- Click the “Verify” button in Discord to receive a code (e.g., ABC123DEF4).
- Check for a private message with:Go to Minecraft and type: /verify ABC123DEF4
This code expires in 10 minutes.
- Minecraft:
- Join your server and run /verify ABC123DEF4.
- Expect:Verification successful!
- If errors occur (e.g., “Invalid or already used code”), check logs.
- Verify Role Assignment:
- In Discord, confirm the user receives the verified role.
- Check logs:
- Plugin (latest.log)
- [VexifyPlugin] Sending /api/verify request with payload: {"discordId":"...","minecraftUuid":"...","token":"..."}
[VexifyPlugin] Received /api/verify response for Discord ID: ..., status: 200, response: {"success":true}
[VexifyPlugin] Updated verification for code: ABC123DEF4
- Bot (vexify_bot.log)
- {"level":"info","message":"Assigned verified role ID=... to Discord ID=... (Minecraft UUID=...)","timestamp":"..."}
- Debug Issues:
- Plugin Errors:
- Check latest.log for MySQL or API connectivity issues.
- Verify config.yml settings and MySQL table existence.
- Bot Errors:
- Check vexify_bot.log for token, database, or permission issues.
- Ensure bot has Manage Roles and is above the verified role.
- API Errors:
- If status: 403 (permission error), recheck bot role hierarchy.
- If status: 401 (invalid token), ensure JWT_SECRET matches.
- Plugin Errors:
Dependencies
VexifyPlugin
- Included(shaded in JAR):
- mysql-connector-j: 8.0.33
- HikariCP: 5.0.1
- gson: 2.10.1
- External:
- Paper 1.21.4 (or 1.20.1+)
- MySQL 8.0+
- VexifyBot API (running bot)
- No additional plugins required.
VexifyBot
- Node.js Dependencies(via npm install):
- discord.js: ^14.15.3
- express: ^4.21.0
- mysql2: ^3.11.3
- ioredis: ^5.4.1
- winston: ^3.14.2
- dotenv: ^16.4.5
- External:
- Node.js 18+
- MySQL 8.0+
- Redis 6.0+
- Discord bot token
- Hosting (e.g., VPS, Heroku)
Disclosure
- VexifyPlugin:
- Provided as a compiled JAR under a proprietary license.
- No source code included; redistribution or decompilation prohibited.
- VexifyBot:
- Provided as source code under the MIT License.
- Modifications allowed; redistribution must follow MIT terms.
- Limitations:
- No warranty; provided "as is."
- Requires buyer-hosted MySQL, Redis, and bot API.
- Limited support via Discord; no guaranteed updates.
- External Resources:
- Minecraft EULA: https://www.minecraft.net/en-us/eula (governs server usage).
- Discord Terms of Service: https://discord.com/terms (governs bot usage).
- Third-party licenses: See DEPENDENCIES.md and DISCLOSURE.md for plugin (mysql-connector-j, HikariCP, gson) and bot (discord.js, express, mysql2, ioredis, winston, dotenv) licenses.
- Compliance:
- Not affiliated with Mojang, Microsoft, or Discord.
- Buyers must comply with Minecraft EULA and Discord Terms of Service.
- Full disclosure in DISCLOSURE.md.
Terms of Service
- Usage:
- VexifyPlugin JAR is for use on buyer’s Minecraft server only.
- VexifyBot source code may be modified but not redistributed without MIT License compliance.
- Redistribution:
- VexifyPlugin JAR may not be shared, leaked, or resold.
- VexifyBot source code redistribution must include MIT License.
- Refunds:
- No refunds or chargebacks after purchase.
- Support:
- Limited support via Discord for setup and basic issues.
- No obligation to provide updates or future compatibility.
- Liability:
- Developer is not liable for damages from using this product.
- TOS Updates:
- Terms may change; buyers agree to abide by the latest version.
FAQ
Q: Do I need to know coding to use this?
A: No coding is needed for the plugin. Basic server and Discord bot setup knowledge is required. The bot source code is provided for advanced users to customize.
Q: Will you update the plugin for future Minecraft versions?
A: Updates are not guaranteed but may be provided at the developer’s discretion. Join our Discord for updates.
Q: Can I resell the plugin or bot?
A: No, the plugin JAR cannot be resold or shared. The bot source code can be modified and distributed under the MIT License terms.
Contact
For support or inquiries, join: https://discord.gg/cxmtXrz7Kv
Happy verifying!
