
Discord-support
Gateway between Minecraft and Discord for a support system
Список изменений
DiscordSupport v2.1.0
Free & Open Source — Developed freely for the Minecraft community.
What's New
Bot Status Rotation
The Discord bot now cycles through a list of custom status messages automatically. Configure the type (Playing, Watching, Listening, Competing), the rotation interval in seconds, and as many messages as you want directly in config.yml.
Ticket Transcript System
When a support ticket is closed, a full .txt transcript of the conversation and all moderator actions is automatically uploaded to a configurable Discord channel. The transcript includes the player name, the closing staff member, timestamps for every message and action, and a clean summary header.
Full English Rewrite
Every piece of text — config keys, messages, comments, button labels, embed fields, log output, and Discord messages — has been rewritten in English. No more French keys or mixed-language configurations.
Improvements
- Cleaner code structure — Managers, commands, and models are clearly separated with no redundant logic.
- Professional log output — All console messages now use consistent, informative English phrasing. No inline code comments remain.
- Simplified config.yml — Removed all legacy French config keys and dual-key fallback systems. Configuration is now straightforward and fully documented in English.
- Duplicate button-building code removed — The public and private ticket flows now share a single
buildTicketMessage()method, eliminating the previous duplication bug. - Null-safety fixes — Bot token validation, channel/category lookups, and ticket log handling are all properly null-checked.
- StatusManager added as a dedicated manager class, cleanly started after the bot is ready and stopped on plugin disable or reload.
getJda()exposed onDiscordManagerso theStatusManagercan restart the status task on/supportreload.
Bug Fixes
- Fixed French config keys being read when the config used English keys, causing missing messages (
&cMessage manquant: ...). - Fixed moderator ban flow not sending the transcript before closing the ticket.
- Fixed
ticketLogsleaking entries for tickets that were never formally closed. - Fixed action buttons being duplicated across
createPrivateTicket()andsendPublicTicket()— both now call the shared builder. - Fixed player IP returning
"Inconnue"instead of"Unknown"in transcripts.
Migration from v2.x
Your old config.yml will not be compatible automatically. Please back it up and let the plugin generate a fresh one, then transfer your values to the new English keys. Key changes:
| Old Key | New Key |
|---|---|
discord.token-bot | discord.bot-token |
discord.tickets-publics.actif | discord.public-tickets.enabled |
discord.tickets-publics.id-salon | discord.public-tickets.channel-id |
discord.tickets-prives.actif | discord.private-tickets.enabled |
discord.tickets-prives.id-categorie | discord.private-tickets.category-id |
cooldown.actif | cooldown.enabled |
cooldown.temps | cooldown.time |
boutons-actions.* | action-buttons.* |
coordonnees.* | coordinates.* |
Compatibility
- Paper / Spigot 1.20+
- Java 17+
- JDA 5.1.0 (shaded)
