COWMODSКаталог модов
ConsoleDiscord

ВЕРСИИ (12)

release

ConsoleDiscord 2.1.1

2.1.1
8 окт. 2026 г.163Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3folia, paper, purpur, spigot
Скачать
Что нового
## [2.1.1] - 2026-10-08 — Bugfix & Compatibility Release ### Security - Blocklist also checks server aliases (`rl` → `reload`) and commands nested in `execute … run` / `return run`. - Bundled library logs (JDA) are no longer mirrored to Discord. - Audit log escapes line breaks and records denied attempts (not allowed, blocked, rate limited). - `!mc` denial replies are limited to one per user and minute; autocomplete only for allowed users. - The bot no longer pings anyone; masked links in log lines are neutralized, command output can't break out of its code block. ### Fixed - Embed log mode recognizes levels again (thread names with spaces or slashes were shown as INFO). - Embed log lines always show the full console line incl. time (2.1.0 dropped it for single-word thread names). - Embed log lines are shown literally: markdown (`dark_oak_button`) is escaped, Minecraft color codes are removed. - A long entry such as a stack trace starts a new embed instead of cutting off the following lines. - Performance alerts and auto-cleanup keep working after an automatic Discord reconnect. - Long commands no longer break the Discord audit embed or suppress the command reply. - `/cdr reload` no longer blocks the main thread while the old Discord connection or the audit writer shuts down. - `DEBUG`/`TRACE` in `log-levels` are forwarded when the server's log4j configuration logs them. - `auto-cleanup` values below 1 are clamped (0 days deleted every bot message, 0 hours ran every tick). - Auto-cleanup reads the history from the cutoff, so busy channels (>1000 new messages) are cleaned too. - Missing permissions in one channel only pause that channel instead of stopping all log forwarding. - The watchdog no longer restarts JDA during its own reconnect (5 min grace) or after a failed login. - The watchdog retries the Discord start if it failed with an exception (backoff up to 2 min). - Disabling the plugin during a watchdog restart no longer leaves a Discord connection running. - Code block mode splits long batches into several messages instead of dropping lines. - Deleted default aliases, categories and patterns no longer come back on restart. - Command aliases and messages are swapped atomically on reload (no race with Discord threads). ### Changed - One jar for Minecraft 1.21.x and 26.x (Java 21 target, `api-version: '1.21'`). - Update notice with clickable Modrinth + CurseForge links, in-game for `consolediscord.update` (OP), once per version on Discord, texts in `messages_*.yml`.
release

ConsoleDiscord 1.5.0

1.5.0
11 июл. 2026 г.157Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11folia, paper, purpur, spigot
Скачать
Что нового
## [1.5.0] - 2026-07-11 — Security, Stability & Feature Release Backport of the v2.1.0 changes from the Minecraft 26.x line: a full security and code review (fixes three attack vectors, five functional bugs and a packaging issue) plus a set of new quality-of-life features. ### ⚠️ Breaking Change - **Empty whitelists now mean deny-all.** Previously an empty `allowed-user-ids` list allowed *every* Discord user in *every* server the bot was in to run console commands — with only `op`/`deop` blocked, anyone could run `stop`, `ban`, `whitelist add`, etc. Commands are now disabled until at least one Discord user ID (or role ID, see below) is whitelisted; a clear warning is logged on startup. **Migration:** add your Discord user ID to `allowed-user-ids` in `config.yml`. ### New Features - **Command output replies:** `/mc` and `!mc` now reply with the actual command output (captured via Paper's feedback sender) instead of a generic "executing" note — e.g. `/mc list` shows the real player list in Discord. Configurable via `command-feedback` (enabled + collect window). - **Role-based whitelist:** `allowed-role-ids` allows everyone holding one of the configured Discord roles to run commands — easier to manage for teams than individual user IDs. - **`/cdr status`:** shows plugin version, server type, Discord connection state, configured channels (validated live), pending log queue size, whitelist counts and available updates. - **`/cdr cleanup`:** manually triggers the message cleanup (the existing `cleanupNow()` logic was previously unreachable). - **Tab completion** for all `/cdr` subcommands, filtered by permission. - **Token via environment:** the bot token can be provided through the `CONSOLEDISCORD_BOT_TOKEN` environment variable, which takes precedence over `config.yml` — keeps the token out of config backups and support pastes. - **Periodic update check:** the Modrinth check now repeats every `update-checker.interval-hours` (default 24, 0 = startup only) so long-running servers get notified too. - **Audit log rotation:** `command-audit.max-file-size-mb` (default 10) rotates `audit.log` to `audit.log.old` so it no longer grows unbounded. - **Startup notification** is now sent when the Discord connection is actually established instead of after a fixed 5-second delay (which silently skipped it on slow logins). - **LICENSE file added** (MIT) — the README referenced it, but it didn't exist. ### Security - Blocked-command checks can no longer be bypassed via plugin namespaces: **all** namespaced commands (`minecraft:op`, `essentials:op`, `anyplugin:cmd`, ...) are rejected. Previously only `minecraft:`, `bukkit:`, `spigot:` and `paper:` were caught, so `essentials:op` slipped past the `op` block. - Leading slashes are stripped before the security check, so `/op` cannot bypass the `op` blocklist entry. - `!mc` commands are ignored in direct messages — console access is only possible in guild channels where the channel restriction can apply. - Default blocklist extended to `op`, `deop`, `stop`, `restart`, `reload`, `ban-ip` (existing configs keep their own list). ### Bugfixes - Config validation no longer runs before JDA is connected — the channel cache was still empty right after startup, producing false "invalid channel-id" warnings on every start/reload. Validation now runs once the connection is established. - Fixed a thread leak on `/cdr reload`: the previous `AuditLogger` writer thread is now shut down before a new one is created, and disabling the audit log via reload actually deactivates it. - Fixed command aliases with a missing/non-string target being loaded as the literal command `"null"`; invalid aliases are now skipped with a warning. Alias keys are also normalized to lowercase so aliases with capital letters match. - Fixed the shutdown notification potentially hanging `onDisable()` forever — `complete()` has no timeout and retries rate limits indefinitely; replaced with a hard 5-second timeout. - Fixed oversized log lines producing an empty code block in Discord; overlong lines are now truncated instead of silently dropped. ### Improvements - Watchdog reconnects no longer run on the main server thread — `stopDiscordStuff()` waits up to ~7s on JDA shutdown, which previously caused lag spikes on every reconnect attempt. - A blocked command no longer consumes rate-limit quota (security check now runs before the rate limiter). - `lastConnected`/`restartBackoffSec` are now `volatile` (written by the JDA event thread, read by the watchdog thread). - Bulk message cleanup uses a 13-day boundary so messages close to Discord's 14-day bulk-delete limit don't fail while requests are queued. - Test suite extended from 21 to 41 tests: new coverage for `LogFilter` (level/pattern/category filtering) and `LogFormatter` (Discord message/embed limits), plus new `CommandSecurity` bypass tests. ### Build - All shaded JDA transitive dependencies (okhttp, okio, kotlin-stdlib, jackson, nv-websocket, commons-collections4, trove, tink, protobuf) are now relocated into the plugin's own namespace — previously they were shaded unrelocated and could clash with other plugins bundling the same libraries. `slf4j` and annotation-only artifacts are excluded from the JAR entirely. **Build:** Java 21 | Paper 1.21.4 | JDA 6.1.0 | Folia supported **Migration:** Swap the JAR **and add your Discord user ID to `allowed-user-ids`** (see Breaking Change above).
release

ConsoleDiscord 2.1.0

2.1.0
11 июл. 2026 г.149Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3folia, paper, purpur, spigot
Скачать
Что нового
## [2.1.0] - 2026-07-10 — Security, Stability & Feature Release Full security and code review of the plugin (fixes three attack vectors, five functional bugs and a packaging issue) plus a set of new quality-of-life features. ### ⚠️ Breaking Change - **Empty whitelists now mean deny-all.** Previously an empty `allowed-user-ids` list allowed *every* Discord user in *every* server the bot was in to run console commands — with only `op`/`deop` blocked, anyone could run `stop`, `ban`, `whitelist add`, etc. Commands are now disabled until at least one Discord user ID (or role ID, see below) is whitelisted; a clear warning is logged on startup. **Migration:** add your Discord user ID to `allowed-user-ids` in `config.yml`. ### New Features - **Command output replies:** `/mc` and `!mc` now reply with the actual command output (captured via Paper's feedback sender) instead of a generic "executing" note — e.g. `/mc list` shows the real player list in Discord. Configurable via `command-feedback` (enabled + collect window). - **Role-based whitelist:** `allowed-role-ids` allows everyone holding one of the configured Discord roles to run commands — easier to manage for teams than individual user IDs. - **`/cdr status`:** shows plugin version, server type, Discord connection state, configured channels (validated live), pending log queue size, whitelist counts and available updates. - **`/cdr cleanup`:** manually triggers the message cleanup (the existing `cleanupNow()` logic was previously unreachable). - **Tab completion** for all `/cdr` subcommands, filtered by permission. - **Token via environment:** the bot token can be provided through the `CONSOLEDISCORD_BOT_TOKEN` environment variable, which takes precedence over `config.yml` — keeps the token out of config backups and support pastes. - **Periodic update check:** the Modrinth check now repeats every `update-checker.interval-hours` (default 24, 0 = startup only) so long-running servers get notified too. - **Audit log rotation:** `command-audit.max-file-size-mb` (default 10) rotates `audit.log` to `audit.log.old` so it no longer grows unbounded. - **Startup notification** is now sent when the Discord connection is actually established instead of after a fixed 5-second delay (which silently skipped it on slow logins). - **LICENSE file added** (MIT) — the README referenced it, but it didn't exist. ### Security - Blocked-command checks can no longer be bypassed via plugin namespaces: **all** namespaced commands (`minecraft:op`, `essentials:op`, `anyplugin:cmd`, ...) are rejected. Previously only `minecraft:`, `bukkit:`, `spigot:` and `paper:` were caught, so `essentials:op` slipped past the `op` block. - Leading slashes are stripped before the security check, so `/op` cannot bypass the `op` blocklist entry. - `!mc` commands are ignored in direct messages — console access is only possible in guild channels where the channel restriction can apply. - Default blocklist extended to `op`, `deop`, `stop`, `restart`, `reload`, `ban-ip` (existing configs keep their own list). ### Bugfixes - Config validation no longer runs before JDA is connected — the channel cache was still empty right after startup, producing false "invalid channel-id" warnings on every start/reload. Validation now runs once the connection is established. - Fixed a thread leak on `/cdr reload`: the previous `AuditLogger` writer thread is now shut down before a new one is created, and disabling the audit log via reload actually deactivates it. - Fixed command aliases with a missing/non-string target being loaded as the literal command `"null"`; invalid aliases are now skipped with a warning. Alias keys are also normalized to lowercase so aliases with capital letters match. - Fixed the shutdown notification potentially hanging `onDisable()` forever — `complete()` has no timeout and retries rate limits indefinitely; replaced with a hard 5-second timeout. - Fixed oversized log lines producing an empty code block in Discord; overlong lines are now truncated instead of silently dropped. ### Improvements - Watchdog reconnects no longer run on the main server thread — `stopDiscordStuff()` waits up to ~7s on JDA shutdown, which previously caused lag spikes on every reconnect attempt. - A blocked command no longer consumes rate-limit quota (security check now runs before the rate limiter). - `lastConnected`/`restartBackoffSec` are now `volatile` (written by the JDA event thread, read by the watchdog thread). - Bulk message cleanup uses a 13-day boundary so messages close to Discord's 14-day bulk-delete limit don't fail while requests are queued. - Test suite extended from 21 to 41 tests: new coverage for `LogFilter` (level/pattern/category filtering) and `LogFormatter` (Discord message/embed limits), plus new `CommandSecurity` bypass tests. ### Build - All shaded JDA transitive dependencies (okhttp, okio, kotlin-stdlib, jackson, nv-websocket, commons-collections4, trove, tink, protobuf) are now relocated into the plugin's own namespace — previously they were shaded unrelocated and could clash with other plugins bundling the same libraries. `slf4j` and annotation-only artifacts are excluded from the JAR entirely. **Build:** Java 25 | Paper 26.1.2 | JDA 6.1.0 | Folia supported **Migration:** Swap the JAR **and add your Discord user ID to `allowed-user-ids`** (see Breaking Change above).
release

ConsoleDiscord 2.0.1

2.0.1
5 июн. 2026 г.195Minecraft: 26.1, 26.1.1, 26.1.2, 26.2folia, paper, purpur, spigot
Скачать
Что нового
## [2.0.1] - 2026-06-05 — Bugfix, Tests & Setup Guide Backport of the v1.4.2 fixes to the Minecraft 26.x / Java 25 line. ### Bugfixes - Fixed Discord showing "command failed" for vanilla commands that actually ran — `Bukkit.dispatchCommand()`'s unreliable return value is no longer treated as success/failure; only a thrown exception counts as a failure. The audit log now records the real execution status. - Fixed the `RateLimiter` memory leak for good — removed the self-defeating empty-entry churn (entries were removed and immediately re-added) and added a periodic `purgeExpired()` that runs automatically every 100 commands, keeping the tracking map bounded on busy public servers. - Fixed `HttpURLConnection` not being released in `ModrinthUpdateChecker` — `disconnect()` is now called in a `finally` block. ### Improvements - The plugin no longer forwards its own log messages to Discord, preventing echo/feedback noise (e.g. repeated send-error warnings looping back into the log channel). - Added a JUnit 5 test suite (21 tests) covering `CommandSecurity`, `RateLimiter` and the update-checker version comparison; tests run on every build via Surefire. - Added a bundled `SETUP.md` guide (installation + step-by-step Discord bot creation), automatically exported next to `config.yml` on first start.
release

ConsoleDiscord 1.4.2

1.4.2
5 июн. 2026 г.63Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11folia, paper, purpur, spigot
Скачать
Что нового
## [1.4.2] - 2026-06-05 — Bugfix, Tests & Setup Guide ### Bugfixes - Fixed Discord showing "command failed" for vanilla commands that actually ran — `Bukkit.dispatchCommand()`'s unreliable return value is no longer treated as success/failure; only a thrown exception counts as a failure. The audit log now records the real execution status. - Fixed the `RateLimiter` memory leak for good — removed the self-defeating empty-entry churn (entries were removed and immediately re-added) and added a periodic `purgeExpired()` that runs automatically every 100 commands, keeping the tracking map bounded on busy public servers. - Fixed `HttpURLConnection` not being released in `ModrinthUpdateChecker` — `disconnect()` is now called in a `finally` block. ### Improvements - The plugin no longer forwards its own log messages to Discord, preventing echo/feedback noise (e.g. repeated send-error warnings looping back into the log channel). - Added a JUnit 5 test suite (21 tests) covering `CommandSecurity`, `RateLimiter` and the update-checker version comparison; tests run on every build via Surefire. - Added a bundled `SETUP.md` guide (installation + step-by-step Discord bot creation), automatically exported next to `config.yml` on first start. - bStats metrics integration for anonymous usage statistics (moved here — the commit landed after the 1.4.1 release). - Aligned `@version` JavaDoc tags across classes and corrected placeholder GitHub links in the README.
release

ConsoleDiscord 2.0.0

2.0.0
3 мая 2026 г.59Minecraft: 26.1, 26.1.1, 26.1.2folia, paper, purpur, spigot
Скачать
Что нового
## [2.0.0] - 2026-05-03 — Minecraft 26 Edition Port of v1.4.1 to Minecraft 26.x with Java 25. Functionally identical to v1.4.1. - Java 25 target (was Java 21) - Paper API 26.1.2 (was 1.21.4) - api-version: 26.1 (was 1.21) - bStats metrics integration **Build:** Java 25 | Paper 26.1.2 | JDA 6.1.0 | Folia supported
release

ConsoleDiscord 1.4.1

1.4.1
3 мая 2026 г.71Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11folia, paper, purpur, spigot
Скачать
Что нового
## [1.4.1] - 2026-05-03 — Bugfix & Quality Release ### Bugfixes - Fixed `NullPointerException` when audit logging is disabled - Fixed rate limiter not updating on config reload - Fixed `allowed-user-ids` not working with unquoted numeric IDs - Fixed default config re-adding placeholder user IDs - Fixed token placeholder check (now recognizes EN + DE placeholders) - Fixed resource leak in `ModrinthUpdateChecker` (try-with-resources) - Fixed `LogFilter` regex using `matches()` instead of `find()` — patterns no longer need `.*` wrapping - Fixed `RateLimiter` memory leak on public servers (auto-cleanup of empty entries) - Fixed update checker notifying about incompatible Java/MC versions - Fixed language files not receiving new message keys on update (auto-merge added) ### Improvements - Log queue: O(1) size tracking via `AtomicInteger` - Async audit log file writing (dedicated daemon thread) - Bulk delete for message cleanup (Discord API, < 14 days) - Command aliases pointing to blocked commands are rejected on load - Performance alerts (TPS/Memory) now fully localized (EN/DE) - Update checker filters by Minecraft version via Modrinth API - Language files auto-merge new keys (like `config.yml` already did) - Deprecated API calls replaced (`URL` constructor, Reflection for TPS) - bStats metrics integration **Build:** Java 21 | Paper 1.21 - 1.21.11 | JDA 6.1.0 | Folia supported **Migration:** Drop-in replacement — just swap the JAR.
release

ConsoleDiscord 1.4.0

1.4.0
10 апр. 2026 г.65Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11folia, paper, purpur, spigot
Скачать
Что нового
## [1.4.0] - 2026-04-10 🚀 **Folia Support & Stability Release** ### ✨ New Features **Folia Compatibility** ⭐ - **Full Folia support** - Plugin now works on both Paper and Folia servers - **Automatic detection** - Detects server type and uses appropriate scheduler API - **Zero configuration** - Works out of the box on both platforms - **Region-aware scheduling** - Uses global region scheduler for console commands on Folia - **Async scheduler migration** - All async tasks use Folia's new scheduler when available **Modrinth Update Checker** ⭐ - Automatically checks for new versions on startup via Modrinth API - Notification in server console and optionally in Discord channel - Configurable: `update-checker.enabled` **Config Auto-Merge** ⭐ - New config options from updates are automatically added to existing config - User values are never overwritten - only missing keys are added - No more manual config migration needed after updates ### 🐛 Bugfixes - **Fixed: `MAX_EMBED_SIZE_EXCEEDED` error** - Embeds are now split into groups that respect Discord's 6000 character total limit per message. Previously, multiple embeds could exceed this limit and cause `ErrorResponseException: 50035` - **Fixed: `Thread.sleep(1000)` blocking server shutdown** - Removed unnecessary sleep in `onDisable()`. The shutdown notification already uses blocking `complete()` call - **Fixed: `CommandSecurity` race condition** - Static fields are now thread-safe using `AtomicBoolean` and `AtomicReference`. Config reloads during command checks no longer cause inconsistent state - **Fixed: `SchedulerAdapter.isCancelled()` always returning `false`** - Folia tasks now properly track cancel state via `AtomicBoolean`, Paper tasks delegate to `BukkitTask.isCancelled()` - **Fixed: Potential `NullPointerException` in `MessageCleanup`** - Added null-safety check for `jda.getSelfUser()` during message cleanup - **Fixed: Fragile JSON parsing in `ModrinthUpdateChecker`** - Replaced manual `indexOf()`/`substring()` parsing with Gson for robust Modrinth API response handling ### 🔄 Changes **Scheduler Refactoring** - New `SchedulerAdapter` class provides unified API for Paper and Folia - Replaced all `Bukkit.getScheduler()` calls with adapter methods - Console commands now use `GlobalRegionScheduler` on Folia - Removed busy-wait loops when cancelling tasks (cleaner shutdown) **Code Cleanup** - Removed legacy `org.example` package (outdated duplicate code from pre-1.3.0) - Added Gson as provided dependency (shipped by Paper at runtime) **Technical Details** - Auto-detection via `io.papermc.paper.threadedregions.RegionizedServer` class check - `folia-supported: true` flag in plugin.yml - Backwards compatible with Paper/Spigot servers ### 📦 Build Information **JAR File:** `consolediscord-1.4.0.jar` **Size:** ~16 MB (with JDA shaded) **Java Version:** 21 **Paper Version:** 1.21.4-R0.1-SNAPSHOT (also supports Folia) **JDA Version:** 6.1.0 --- ## Migration Guide from 1.3.0 → 1.4.0 ### ✅ Automatic Migration All changes are **100% backwards compatible**. Simply replace the JAR file! New config options (like `update-checker`) are **automatically merged** into your existing `config.yml` on first startup - no manual editing needed.
release

ConsoleDiscord 1.3.0

1.3.0
10 мар. 2026 г.60Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11paper, purpur, spigot
Скачать
Что нового
## [1.3.0] - 2026-03-10 🎉 **The Big Feature Update** ### ✨ New Features #### 📋 Intelligent Log Forwarding **1. Discord Embeds instead of Code Blocks** - Color-coded embeds for better readability (Green=INFO, Orange=WARN, Red=ERROR) - Structured presentation with timestamps - Batch processing: Up to 10 log lines per embed - Configurable: `log-formatting.use-embeds` **2. Emoji Encoding for Log Levels** - 💀 FATAL - Critical errors - ❌ ERROR - Errors - ⚠️ WARN - Warnings - ℹ️ INFO - Information - 🔍 DEBUG - Debug output - 🔬 TRACE - Trace logs - Configurable: `log-formatting.use-emojis` **3. Log-Level Filtering** - Send only specific log levels to Discord - Default: INFO, WARN, ERROR, FATAL - Configurable: `log-levels: [INFO, WARN, ERROR]` **4. Regex Filters for Logs** - Filter out annoying spam logs ("Can't keep up", UUID warnings) - Unlimited regex patterns - Configurable: `log-filters.ignore-patterns` **5. Log Categories with Separate Channels** - Security logs in separate channel (op, ban, kick, etc.) - Performance logs in separate channel (TPS, Memory) - Unlimited categories definable - Pattern-based routing - Configurable: `log-categories` #### 🎮 Remote Commands **6. Command Autocomplete** - Intelligent suggestions while typing - Pre-configured common commands (gamemode, weather, time, difficulty, etc.) - Also shows command aliases - Automatic Discord slash command integration **7. Command Aliases** - Define shortcuts: `tps` → `spark tps` - Unlimited aliases - Autocomplete shows aliases with arrow: `tps → spark tps` - Configurable: `command-aliases.aliases` #### 🔒 Security & Monitoring **8. Command Audit Logging** - Logs every command with user, timestamp, and status - File-based: `plugins/ConsoleDiscord/audit.log` - Optionally also in Discord channel - Format: `[2026-03-10 19:30:45] User#123 (Name) executed: cmd [SUCCESS]` - Configurable: `command-audit` **9. Performance Alerts** - TPS warning at < 15.0 TPS (adjustable) - Memory warning at > 90% RAM (adjustable) - Cooldown system prevents spam (default: 5min) - Color-coded embeds: 🟡 Warning / 🔴 Critical - Configurable: `performance-alerts` #### 🛠️ Management **10. Startup/Shutdown Notifications** - 🟢 Server Start: Shows version & plugin count - 🔴 Server Stop: Shows uptime - Beautiful embeds with timestamp - Configurable: `notifications.startup` & `notifications.shutdown` **11. Auto-Cleanup for Old Messages** - Automatically deletes old log messages - Default: After 7 days (adjustable) - Check every 24 hours (adjustable) - Only bot's own messages are deleted - Configurable: `auto-cleanup` **12. Batch Embeds** - Groups up to 10 log lines per embed - Discord limit: Max 10 embeds per message - Reduces API calls and rate limits - Better performance with many logs - Configurable: `log-formatting.embed-batch-size` **13. Configurable Command Blacklist** ⭐ - **Fully customizable:** You decide which commands to block - **Default recommendation:** Only `op` and `deop` blocked (changeable) - **Flexible:** Add commands like `stop`, `restart`, `whitelist` as needed - **Disableable:** Security can be completely turned off - **Namespace protection:** Prefixes like `minecraft:`, `bukkit:` are always blocked - Configurable: `command-security.enabled` & `command-security.blocked-commands` --- ### 🔄 Changes #### Package Refactoring ``` Before: org.example Now: dev.boondocksulfur.consolediscord ``` **New Package Structure:** - `dev.boondocksulfur.consolediscord` - Main plugin - `dev.boondocksulfur.consolediscord.audit` - Audit logging - `dev.boondocksulfur.consolediscord.cleanup` - Message cleanup - `dev.boondocksulfur.consolediscord.i18n` - Internationalization - `dev.boondocksulfur.consolediscord.listener` - Discord events - `dev.boondocksulfur.consolediscord.logging` - Log appender & formatter - `dev.boondocksulfur.consolediscord.performance` - Performance monitoring - `dev.boondocksulfur.consolediscord.security` - Security & rate limiting #### Maven Configuration - **groupId:** `dev.boondocksulfur` (previously: `org.example`) - **artifactId:** `consolediscord` (previously: `console-discord`) - JDA relocation adjusted #### Config Extensions The `config.yml` has been extended with **58 new options**: - Advanced logging options (17 options) - Command features (10 options) - Performance alerts (4 options) - Notifications & cleanup (5 options) --- ### 📚 Documentation - **JavaDoc:** Complete documentation for all classes and methods - **README.md:** Completely revised with feature matrix and examples - **CHANGELOG.md:** Detailed changelog with migration guide --- ### 🐛 Improvements - Better error messages with i18n support - More informative Discord responses (emojis for feedback) - Cleaner code structure with separation of concerns - Improved type safety with proper generics - More consistent logging practices - Optimized performance through batch processing - **NEW:** Thread-safe reconnect logic with synchronized lock - no more race conditions - **NEW:** Discord bot token format validation on startup - **NEW:** Configurable command blacklist - you decide which commands to block --- ### 🔒 Security - Blocks execution of server-critical commands - Prevents command spam via rate limiting - Validates user permissions before execution - Filters commands with namespace prefixes - Audit trail for all commands - **NEW:** Configurable command blacklist - blocks only dangerous operations you specify - **NEW:** Discord bot token validation - checks format and length on startup - **NEW:** Race condition protection for Discord reconnects through synchronized lock --- ### 📦 Build Information **JAR File:** `consolediscord-1.3.0.jar` **Size:** ~8 MB (with JDA shaded) **Java Version:** 21 **Paper Version:** 1.21.4-R0.1-SNAPSHOT **JDA Version:** 6.1.0 --- ## Migration Guide from 1.2.0 → 1.3.0 ### ✅ Automatic Migration Most changes are **backwards compatible**. Your old `config.yml` will continue to work! ### 📝 New Config Options On first startup with 1.3.0, these options will be **automatically added**: ```yaml # New options with defaults language: "en" max-commands-per-minute: 5 command-security: enabled: true blocked-commands: ["op", "deop"] log-levels: [INFO, WARN, ERROR, FATAL] log-formatting: use-embeds: true use-emojis: true embed-batch-size: 10 log-filters: ignore-patterns: [] log-categories: enabled: false command-aliases: enabled: true aliases: {} command-audit: enabled: true log-file: "audit.log" performance-alerts: enabled: true low-tps-threshold: 15.0 high-memory-threshold: 90 notifications: startup: true shutdown: true auto-cleanup: enabled: false ``` ### ⚙️ Recommended Post-Migration Steps 1. **Enable Discord Embeds:** ```yaml log-formatting: use-embeds: true use-emojis: true ``` 2. **Filter Spam Logs:** ```yaml log-filters: ignore-patterns: - "Can't keep up! Is the server overloaded\\?" ``` 3. **Configure Command Aliases:** ```yaml command-aliases: enabled: true aliases: tps: "spark tps" save: "save-all" ``` 4. **Reload Plugin:** ``` /cdr reload ``` ### ⚠️ Breaking Changes **None!** All changes are backwards compatible.
release

ConsoleDiscord 1.2.0

1.2.0
22 нояб. 2025 г.119Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10paper, spigot
Скачать
Что нового
## [1.2.0] - 2025-01-22 ### Bugfixes - **Discord Slash-Command Interaction Fix**: Behoben, dass beim Ausführen von `/mc cdr reload` der Fehler `IllegalStateException: This interaction has already been acknowledged` auftrat - Slash-Commands verwenden jetzt `deferReply()` um Discord sofort zu bestätigen - Antworten werden nun über `getHook().sendMessage()` gesendet - JDA-Status wird geprüft bevor Antworten gesendet werden, um Race Conditions beim Reload zu vermeiden - **Verbesserte Fehlerbehandlung**: Alle Discord-API-Aufrufe haben jetzt Error-Handler, die Fehler loggen statt Exceptions zu werfen ### Technische Details - `DiscordListener.java`: Refactoring der `runMinecraftCommand()` Methode - Neue Helper-Methode `sendResponse()` für saubere Trennung von Slash-Command und Message-Antworten ## [1.1.0] - Initiale Version ### Features - Server-Konsolen-Logs werden automatisch in einen Discord-Channel gepostet - Minecraft-Befehle können über Discord ausgeführt werden: - `/mc <befehl>` - Slash-Command - `!mc <befehl>` - Text-Prefix - Konfigurierbare Berechtigungen (User-IDs) - Optionaler Command-Channel für eingeschränkte Nutzung - Watchdog für automatische JDA-Reconnects - Debug-Modus für JDA-Status-Logging
release

ConsoleDiscord 1.1.0

1.1.0
19 нояб. 2025 г.31Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10paper, spigot
Скачать
Что нового
Changelog Fixed an issue where ConsoleDiscord could throw an IllegalStateException: zip file closed when handling the Discord WebSocket shutdown. Improved plugin classloader handling to prevent crashes and unnecessary error stacktraces in the console.
release

ConsoleDiscord 1.0.0

1.0.0
18 нояб. 2025 г.40Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10paper, spigot
Скачать