
ConsoleDiscord
Mirrors your Paper server console log to a Discord channel and lets you run Minecraft console commands from Discord via /mc or !mc, with access control and configurable log batching.
ConsoleDiscord 1.4.0
release10 апреля 2026 г.[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_EXCEEDEDerror - Embeds are now split into groups that respect Discord's 6000 character total limit per message. Previously, multiple embeds could exceed this limit and causeErrorResponseException: 50035 - Fixed:
Thread.sleep(1000)blocking server shutdown - Removed unnecessary sleep inonDisable(). The shutdown notification already uses blockingcomplete()call - Fixed:
CommandSecurityrace condition - Static fields are now thread-safe usingAtomicBooleanandAtomicReference. Config reloads during command checks no longer cause inconsistent state - Fixed:
SchedulerAdapter.isCancelled()always returningfalse- Folia tasks now properly track cancel state viaAtomicBoolean, Paper tasks delegate toBukkitTask.isCancelled() - Fixed: Potential
NullPointerExceptioninMessageCleanup- Added null-safety check forjda.getSelfUser()during message cleanup - Fixed: Fragile JSON parsing in
ModrinthUpdateChecker- Replaced manualindexOf()/substring()parsing with Gson for robust Modrinth API response handling
🔄 Changes
Scheduler Refactoring
- New
SchedulerAdapterclass provides unified API for Paper and Folia - Replaced all
Bukkit.getScheduler()calls with adapter methods - Console commands now use
GlobalRegionScheduleron Folia - Removed busy-wait loops when cancelling tasks (cleaner shutdown)
Code Cleanup
- Removed legacy
org.examplepackage (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.RegionizedServerclass check folia-supported: trueflag 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.
ConsoleDiscord 1.3.0
release10 марта 2026 г.[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¬ifications.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
opanddeopblocked (changeable) - Flexible: Add commands like
stop,restart,whitelistas 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 plugindev.boondocksulfur.consolediscord.audit- Audit loggingdev.boondocksulfur.consolediscord.cleanup- Message cleanupdev.boondocksulfur.consolediscord.i18n- Internationalizationdev.boondocksulfur.consolediscord.listener- Discord eventsdev.boondocksulfur.consolediscord.logging- Log appender & formatterdev.boondocksulfur.consolediscord.performance- Performance monitoringdev.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:
# 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
-
Enable Discord Embeds:
log-formatting: use-embeds: true use-emojis: true -
Filter Spam Logs:
log-filters: ignore-patterns: - "Can't keep up! Is the server overloaded\\?" -
Configure Command Aliases:
command-aliases: enabled: true aliases: tps: "spark tps" save: "save-all" -
Reload Plugin:
/cdr reload
⚠️ Breaking Changes
None! All changes are backwards compatible.
ConsoleDiscord 1.2.0
release22 ноября 2025 г.[1.2.0] - 2025-01-22
Bugfixes
-
Discord Slash-Command Interaction Fix: Behoben, dass beim Ausführen von
/mc cdr reloadder FehlerIllegalStateException: This interaction has already been acknowledgedauftrat- 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
- Slash-Commands verwenden jetzt
-
Verbesserte Fehlerbehandlung: Alle Discord-API-Aufrufe haben jetzt Error-Handler, die Fehler loggen statt Exceptions zu werfen
Technische Details
DiscordListener.java: Refactoring derrunMinecraftCommand()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
ConsoleDiscord 1.1.0
release20 ноября 2025 г.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.
ConsoleDiscord 1.0.0
release18 ноября 2025 г.Нет описания изменений
