Repository navigation
Releases: slyphmp4/CloverDiscordLink
Release list
CloverDiscordLink v2.0.0
Changelog
All notable changes to CloverDiscordLink are documented here.
2.0.0 — 2026-09-09
Added
- Native target for Minecraft, Paper, and Cardboard 26.2 on Java 25.
- Secure expiring account-link codes generated with
SecureRandom. - One-to-one Minecraft UUID ↔ Discord account enforcement.
- Invalid-code rate limiting for Discord direct messages.
- HikariCP-backed MySQL connection pooling.
- Environment variable support for Discord and MySQL secrets.
- Automatic migration of legacy
config.ymlandlinks.ymlfromplugins/DiscordChatBridge. - Configuration validation with safe reload behavior.
- JUnit tests and Java 25 GitHub Actions builds.
Changed
- Renamed the plugin and project to CloverDiscordLink.
- Moved Java sources to
com.slyph.cloverdiscordlink. - Migrated the build to Gradle Kotlin DSL and Gradle 9.7.0.
- Updated JDA to 6.5.0, HikariCP to 7.1.0, and MySQL Connector/J to 26.7.0.
- Replaced legacy color processing with centralized Adventure and MiniMessage formatting.
- Reworked Discord startup, HTTP update checks, database operations, and local file writes to avoid blocking the server main thread.
- Replaced the single persistent JDBC connection with a managed connection pool.
- Made local
links.ymlwrites atomic to reduce corruption risk during interrupted saves. - Preserved the existing
dcb_linksMySQL table for upgrade compatibility. - Preserved
/dchat reloadand the existing link data format where possible. - Uses
AsyncPlayerChatEventdeliberately as a compatibility fallback because Cardboard 26.2 currently emits that Bukkit event rather than PaperAsyncChatEvent.
Security
- User-controlled Discord and Minecraft text is handled without MiniMessage tag injection.
- Account-link codes now expire and cannot be reused after successful consumption.
- Discord role checks fail closed when role verification is unavailable.
- SQL writes use prepared statements and pooled connections.
- Secrets no longer need to be stored directly in
config.yml.
Upgrade notes
- Java 25 is required.
api-versionis now26.2.- Existing local links and the
dcb_linksMySQL table are retained. - Discord bot token and MySQL connection changes still require a full server restart.
Verification
- Production sources compile against Paper API 26.2 build 110 stable on Java 25.
./gradlew clean buildand the included JUnit test suite must pass in GitHub Actions before release publication.- Cardboard 26.2 event compatibility was checked against its
ver/26.2source implementation. A live Cardboard server smoke test is not part of the automated CI suite.
DiscordChatBridge - 1.4.3
Made login function for a specific role switchable
DiscordChatBridge - 1.4.2
DiscordChatBridge - 1.4.1
Added notification about new version of plugin
DiscordChatBridge - 1.4
Added a check to see if the user has a role
If a user does not have a specific role on the Discord server, the player will simply not be allowed into the Minecraft server, even if his Discord account is linked to Minecraft
DiscordChatBridge - 1.3
Account link Feature:
• First-time join triggers a personalised 4-digit code → player is kicked with a colour-formatted link screen.
• Player DMs the bot the code → green ✔ Linked embed sent back.
• Pair is persisted in links.yml; subsequent joins are allowed.
DiscordChatBridge - 1.2
Minecraft chat update!
-
Clickable Discord → Minecraft messages
Adventure components with a hover tooltip (multi-line, editable inconfig.yml) and a click action that opens the original Discord message. -
Adventure chat migration
Replaced deprecated Bungee chat classes with Kyori Adventure, enabling full RGB support and cleaner code.
DiscordChatBridge - 1.1
Add a new command for reloading plugin (/dchat reload)