Skip to content

Commit ee4fccd

Browse files
author
ZDiscord Maintainer
committed
Fix shutdown + footer image; add interactive setup wizard + linked-identity chat
Bug fixes: - YamlStorage: scheduleFlush now checks the plugin's enabled state via a BooleanSupplier and falls back to a synchronous save when the plugin is already disabled. This fixes the IllegalPluginAccessException that fired during TicketModule.shutdown() (which is called after Bukkit has set the plugin to disabled) when setData tried to schedule an async task. - JoinQuitListener: footer icon is no longer hardcoded to a pair of imgur URLs that often fail to load. The footer icon is now resolved in three layers: events.<type>.footer-icon, events.footer-icon, then the guild icon, then null. Experience enhancements (join/quit embeds): - Clickable author URL (links to NameMC profile of the player). - Player count delta in the Online field (e.g. '12/50 (was 11)'). - Session duration on quit (e.g. '1h 23m'). - First-join indicator: a 'New Player' field and a private welcome message (events.join.first-join-message) when hasPlayedBefore() returns false. Configurable via events.join.show-first-join-indicator. Interactive /setup wizard: - Rewritten SetupCommand with a 3-step ticket flow that uses Discord modals to add, edit, remove, and reorder ticket categories from inside the wizard. Operators no longer need to edit config.yml for the most-tweaked ticket section. - New buttons: Add, Edit, Remove, Move up, Move down, Done. - The category list is rebuilt with every change; ordering is preserved by re-writing the tickets.categories section in the new order. - Done & post panel validates that at least one category exists before calling TicketModule.postPanel. Linked-identity chat: - ChatBridge now consults LinkModule and uses the player's Discord name + avatar (via JDA's getMemberById) when sending webhooks, instead of their Minecraft skin/username. Operators can opt out per-field with chat.prefer-linked-avatar / chat.prefer-linked-name (both default true). Unlinked players always fall back to the Crafatar avatar and MC name. - For default nameFormat, the resolved name is 'DiscordName (MCName)' so the channel can still tell who it is at a glance. A new %discord_name% placeholder is available in custom nameFormat strings. Config additions: - events.footer-icon, events.join.footer-icon, events.quit.footer-icon - events.join.first-join-message, events.join.show-first-join-indicator - chat.prefer-linked-avatar, chat.prefer-linked-name - tickets.* (unchanged; the wizard writes to it)
1 parent ea8af3d commit ee4fccd

5 files changed

Lines changed: 792 additions & 55 deletions

File tree

0 commit comments

Comments
 (0)