ZDiscordСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (8)
release
ZDiscord 1.5.0
1.5.010 окт. 2026 г.126Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 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.3bukkit, folia, paper, purpur, spigot
Что нового
### Added
- **Halloween seasonal event** A configurable seasonal mob hunt with customizable date window (`halloween.window-start` / `halloween.window-end`), mob kill tracking, point scoring, and finale rewards. PvP kills are excluded.
- In-game `/zdiscord halloween [status|top]` displays event dates, personal points, and standings with the default player permission `zdiscord.halloween`.
- Discord `/halloween` slash command displays event state, standings, and countdown.
- Daily countdown announcements in Discord and Minecraft broadcasts leading up to the event opening.
- Live standings embed panel auto-updating during the event window.
- Milestone announcements when players reach configured point thresholds, with boss multiplier bonuses for dragons, withers, and elder guardians.
- Configurable event timezone, eligible worlds and mob types, excluded game modes, and spawner-mob filtering.
- Optional Halloween join titles, ambient sounds, and milestone particles with separate appearance controls (cosmetics require explicit opt-in).
- Independent switches for opening announcements and public Minecraft broadcasts.
- Automatic ticket inactivity closure, persistent exclusive staff claims, and complete paginated transcripts with chronological attachments and embed records.
### Changed
- Configuration schema version bumped to 16; existing settings are preserved while new defaults are materialized.
- Startup banner counts 17 modules, including the seasonal event.
- Halloween messages and displays use concise text, orange accents, and numbered standings; all in-game text customizable via `messages.yml`.
- Seasonal progress is described as points to reflect boss bonuses; Discord standings capped at 25 entries.
- Removed empty internal lifecycle hooks, unused message templates and status fields, obsolete ticket-count writes, and decorative emoji.
### Fixed
- Setup dropdowns and modals check administrator permissions in the configured guild; category IDs, colors, and limits are validated.
- Reloads unregister command-log listeners, cancel console and lockdown timers, and reconcile public API settings.
- Shutdown drains Discord callbacks before closing storage and prevents late bot reconnects.
- Paper staff-chat toggles relay each message once, namespaced sensitive commands redact arguments, and Discord console works when the chat channel is unset.
- Shaded SLF4J providers are discovered through the plugin classloader, and turning off log suppression restores normal library logging.
- Text conversion preserves literal ampersands and strips hex colors correctly. Slash profile, seen, and following titles honor message settings; update checks avoid duplicate notices and tolerate oversized version numbers.
- Ticket controls validate the configured guild and tracked channel; failed interaction acknowledgements or deletion requests release the closing guard for retry.
- Required account linking supplies a code in the rejected login message. Each Minecraft account has one pending code, and relinking keeps both account directions consistent.
- Concurrent playtime flushes claim each interval once, preserving fractional seconds. Leaderboard updates persist in the same order as accepted changes.
- Stored follows are available before a player joins; reloads and the public follower API preserve accepted buffered writes.
- Configuration reloads and Discord setup reconcile enabled modules, refresh channel settings, and replace repeating panel timers. Local linking and statistics also initialize without Discord.
- Discord panels serialize creation, ignore stale callbacks, and replace messages only when Discord confirms deletion.
- Ticket interactions defer before channel creation. Atomic reservations enforce linked-account limits, private channels explicitly grant bot access, and slots are released only after confirmed deletion.
- MySQL schema failures close the connection pool and select YAML fallback instead of reporting a working database.
- Discord REST/callback workers drain before Paper closes the plugin classloader. Disabled-plugin database cleanup avoids rejected scheduler tasks, and concurrent ticket welcomes display their own ticket number.
- Link/follow event threading matches the caller. Join/follower database lookups run off the game thread, and delayed welcome messages use the player scheduler.
- Update notifications use Spigot-compatible clickable components. Advancement embeds use display titles, and quit embeds show the correct online-player count.
- Discord attachments carry clickable Minecraft URLs using the Spigot component API.
- Minecraft seasonal scoring and commands remain available without a connected Discord bot.
- Creative, Spectator, passive-mob, and spawner kills are excluded from the default hunt.
- Actual mob deaths and boss bonuses contribute to the hunt, including milestones crossed by a multi-point kill.
- Event reloads retire old panel loops, preserve in-flight panel creation, and retain scores and reward claims across the master switch.
- Late and offline finale checks recover the recorded event, and winner rewards apply to first place only.
- MySQL write ordering prevents stale score writes from replacing newer values; shutdown drains pending writes before closing the pool.
### Install
Download the JAR below and place it in your server's `plugins/` folder.
release
ZDiscord 1.4.2
1.4.24 окт. 2026 г.34Minecraft: 1.20.4, 1.20.5, 1.20.6, 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.3bukkit, folia, paper, purpur, spigot
Что нового
### Added
- Added standalone `/link` in-game command as a direct shortcut for `/zdiscord link`.
- Added `chat.enabled` boolean option in `config.yml` to allow toggling the chat bridge without clearing the configured channel ID.
### Changed
- Configuration schema version bumped to 13.
- In-game `/zdiscord` help and tab completion now filter subcommands based on player permissions.
### Fixed
- Fixed `/zdiscord link` permission check blocking players without `zdiscord.admin` from generating account linking codes.
- Fixed playtime leaderboard stats not updating while players remain connected online. Active session playtime is now flushed periodically and on server reload/shutdown.
- Fixed stale leaderboard cached rankings when clicking the Discord refresh button or when stats are updated.
release
ZDiscord 1.4.1
1.4.13 окт. 2026 г.13Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6bukkit, folia, paper, purpur, spigot
Что нового
### Added
- A secret Halloween easter egg was added.
release
ZDiscord 1.4.0
1.4.021 сент. 2026 г.74Minecraft: 1.20.3, 1.20.4, 1.20.5, 1.20.6, 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.3bukkit, folia, paper, purpur, spigot
Что нового
### Added
- Optional CraftyAI integration via `/crafty` slash command for asking questions from Discord with private replies, rate limiting, and role/channel allowlists.
### Changed
- Configuration schema version bumped to 12.
- Updated official website links to demonz.org.
### Fixed
- Fixed an infinite loop in `LeaderboardModule` that could freeze the server thread when recording stats for a player without prior entries.
release
ZDiscord 1.3.1
1.3.130 авг. 2026 г.80Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 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.3bukkit, folia, paper, purpur, spigot
Что нового
### Fixed
- The startup banner now derives its module total from all 16 current modules, including Live Stats, Confession, and the Onlysleep/RedstoneReboot integration bridge.
### Changed
- Completed a maintainability pass across configuration, storage, Discord bridge, module, and utility code while preserving public API documentation and runtime behavior.
- Added regression coverage for startup module accounting.
release
ZDiscord 1.3.0
1.3.030 авг. 2026 г.13Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 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.2bukkit, folia, paper, purpur, spigot
Что нового
### Added
- Real profile pictures. If SkinsRestorer is installed, `/profile` cards and leaderboard thumbnails use the player's actual skin instead of the default Steve/Alex head. Set `profile.skin-restorer` to `false` to disable.
- Discord replies are now quoted in Minecraft chat. Replying to a bridged message shows a short "Replying to X: ..." line above it, so it's clear what the message is answering. See `chat.show-replies`, `chat.reply-format`, `chat.reply-preview-length`.
- More console logging: account links/unlinks, ticket open/close, and a shutdown summary with storage flush confirmation.
- `SkinsRestorer` listed as a soft dependency in `plugin.yml`.
- `/zdiscord diagnostics` — a read-only health check in-game: storage backend and unflushed writes, Discord ping, active webhooks, SkinsRestorer/Geyser detection with Bedrock player count, and module states.
- **Live stats panel** — one combined embed that refreshes itself in a channel: players online (with names), TPS, memory, top kills, most playtime, and most followed. Enable it with `live-stats.channel` in config.yml; refresh rate via `live-stats.update-interval`.
- **Self-refreshing `/leaderboard` replies** — command responses now re-edit themselves with fresh data every `leaderboard.auto-refresh-seconds` (default 60s, 0 disables) and follow you when you page or switch stats. They stop after 30 minutes or if the message is deleted.
- `logging.debug: false` in config.yml — one switch for troubleshooting. Turns every log category to DEBUG, unsuppresses JDA/Hikari connection logs, and applies live via `/zdiscord reload` (previously logging changes needed a restart). `/zdiscord diagnostics` shows whether it's on.
- Geyser/Floodgate awareness for avatars. Bedrock players get name-based mc-heads heads when SkinsRestorer has no skin for them instead of a guaranteed-broken UUID URL. `chat.avatar-url` now also accepts `"auto"` (the new default) which picks the best source per player; custom `%uuid%`/`%name%` formats still work everywhere.
- The "Most Followed Players" leaderboard panel now reads follower counts from storage, so players who haven't joined since the last restart no longer disappear from it.
- Ticket channels store their owner in the channel topic, so closing a ticket always frees the right person's ticket slot.
- Optional Onlysleep and RedstoneReboot bridges forward sleep/night and restart messages through ZDiscord's existing bot connection. Each can use a dedicated channel or fall back to `channels.events`.
- The public API can queue plain messages and `EmbedData` objects to configured Discord channels.
### Changed
- `config-version` bumped to 11 so existing configs pick up all avatar, logging, live-stats, reply, and integration keys. Untouched `chat.avatar-url` defaults are migrated to `"auto"` automatically.
- JDA updated from 5.2.1 to 6.5.0 for current Discord API behavior and 2026 permission changes; SLF4J updated/aligned to 2.0.18 and relocated inside the plugin JAR.
- MySQL connections encrypt by default (`use-ssl: true`) but no longer demand a CA-signed certificate; set `storage.mysql.ssl-verify-certificate: true` if yours has one. The official Connector/J driver is now bundled and relocated, so MySQL 8+ storage works on a clean server without another plugin supplying a driver.
- Stat-update events (`ZDiscordStatUpdateEvent`) fire before the value lands and cancelling one no longer rolls back increments that raced with it.
- `/zdiscord embed` reports "bot not connected" instead of throwing when startup failed.
### Fixed
- Emoji shortcodes (`:green_circle:` etc.) showed as raw text in every embed - Discord only renders shortcodes in plain messages, not embed titles/fields/footers. All ~80 usages across panels, cards, tickets, and status embeds now use real Unicode emoji, which render everywhere. (config-version 10)
- YAML storage could silently drop writes: a save landing between the flusher's file snapshot and its dirty-flag reset was lost until restart. Dirty flags now live under the same lock as the save itself.
- Pending MySQL writes queued during shutdown ran anyway instead of being cancelled with the scheduler teardown.
- `/ticket` from Discord no longer blocks JDA's gateway thread during channel creation (chat relay froze while tickets were being made).
- `/players` and the status embed no longer risk a `ConcurrentModificationException` when someone joins or leaves mid-refresh; the status panel just skips the player list that tick.
- Two simultaneous first messages in a channel can't create duplicate "ZChat" webhooks anymore (orphans count against Discord's 10-webhook channel cap).
- Unlinking no longer clears the reverse lookup when legacy data maps several players to one Discord ID - the other linked player keeps working.
- Startup gives up on a stuck Discord connection after 15 seconds instead of hanging the server enable phase forever.
- Transcript button on a fresh empty ticket replies with a friendly message instead of an exception.
- Numbers formatted into URLs and embeds (TPS, memory, K/D, avatar URLs) now use locale-independent formatting, so servers running under digit-substituting locales don't produce broken image links.
- Skin cache is bounded (~2048 entries) so very large servers don't accumulate entries forever; confession/follow cooldown maps evict expired entries too.
- SkinsRestorer's overloaded texture helper is resolved by its `SkinProperty` parameter, avoiding a runtime mismatch with the `String` overload.
- Release automation publishes only the shaded runtime JAR and now runs from immutable `v*` tags instead of every push to `main`.
- Discord console commands keep a hard denylist even when a custom allowlist is configured; shutdown, permission escalation, arbitrary command execution, and plugin reload commands cannot be enabled remotely.
- Minecraft chat cannot trigger Discord `@everyone`, `@here`, or role/user mentions, and console/webhook buffers now have hard memory bounds under message floods.
- Ticket numbering no longer resets to #1 after a restart (the counter was written as a string and read back as 0).
- ZDiscord no longer crashes at startup if the server console can't display unicode; the startup banner and console messages are ASCII-safe.
- `status.embed.color` is honored again; it was silently ignored during the rewrite.
- TPS reading falls back to a flat 20.0 on old Spigot builds instead of breaking the embed.
release
ZDiscord 1.2.0
1.2.027 июн. 2026 г.157Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 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.2bukkit, folia, paper, purpur, spigot
Что нового
## [1.2.0] - 2026-06-16
### Added
- Developer API (`ZDiscordAPI`, `ZDiscordProvider`, Bukkit events) for third-party plugins.
- Interactive leaderboards with medals, head thumbnails, pagination, and stat-switcher dropdown.
- Auto-updating leaderboard panel in a configurable channel.
- Centralized logger (`ZLogger`) with 9 categories, 6 levels, compact format.
- `/profile [player]` — player card with avatar, NameMC link, stats, and follow button.
- `/seen <player]` — last-seen lookup with online status, playtime, sessions.
- `/following` and `/unfollow <player>` — manage follow subscriptions from Discord.
- `/confess <message>` — anonymous confessions with cooldown and configurable color.
- Achievement rarity badges ("First of the day", rare advancement threshold).
- Player activity storage (last_seen, first_join, sessions, advancement unlocks, follows).
- `ColorUtil.toDiscordMarkdown()` for `&l`, `&o`, `&n`, `&m` conversion.
- `FollowModule` — in-memory cache with non-blocking DM dispatch.
- `PlayerProfileBuilder` for profile card embeds with Discord username resolution.
- In-game `/confess <message>` command for anonymous confessions.
### Changed
- `config-version` bumped to 6. Default avatar changed to mc-heads.net.
- `HeadUtil` rewritten for mc-heads.net with `avatar()`, `body()`, `combo()`.
- Storage backends gained 12 new methods for activity, advancements, and follows.
- `AdvancementListener` persists unlocks, reads rarity stats async, guards against duplicates.
- `UpdateChecker` interval 6h → 5h. Silent Discord notice fires once per release.
- `JoinQuitListener` writes last_seen and increments sessions on every join/quit.
- First-join detection uses storage instead of `player.hasPlayedBefore()`.
### Fixed
- `SetupCommand` "Loading options failed" bug and NPE on removed ticket categories.
- `JoinQuitListener` null-safe bot connection checks.
- `/seen` avatar resolution and "never joined" message.
- `FollowModule.onPlayerJoin` no longer blocks scheduler thread.
- `MySQLStorage.isFollowing` uses `SELECT COUNT(*)` instead of fetching all followers.
- Profile card shows actual Discord username instead of raw ID.
- Confession handles use monotonic counter instead of `hash % 10000`.
- Confession embeds use a real love-letter emoji instead of a Discord shortcode.
- Stat update events match the calling thread, fixing Paper quit-event crashes.
- JDA SLF4J provider packaging fixed so startup does not use the fallback logger.
- Ticket setup now uses the guided `/setup` wizard only and posts a ticket-specific setup flow.
- Ticket creation ignores placeholder support-role IDs instead of aborting channel creation.
- Setup and follow buttons use real emoji instead of Discord shortcode text.
- Ticket panel dropdown values now submit category IDs instead of display labels.
- `/panel` no longer crashes in thread or forum channels.
- `UpdateChecker` Discord announcement retries on failure.
release
ZDiscord 1.0.0
1.0.02 апр. 2026 г.106Minecraft: 1.20.4, 1.20.5, 1.20.6, 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.1bukkit, folia, paper, purpur, spigot
Что нового
# Initial release