Tags
Creators
Details
Licensed Apache-2.0
Published 6 months ago
Updated 2 weeks ago
All versions
1.2.0
Release
ZDiscord 1.2.04 months ago 157
Uploaded by
Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
1.20.x
Platforms
Bukkit
Folia
Paper
Purpur
Spigot
Changes
[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./followingand/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,&mconversion.FollowModule— in-memory cache with non-blocking DM dispatch.PlayerProfileBuilderfor profile card embeds with Discord username resolution.- In-game
/confess <message>command for anonymous confessions.
Changed
config-versionbumped to 6. Default avatar changed to mc-heads.net.HeadUtilrewritten for mc-heads.net withavatar(),body(),combo().- Storage backends gained 12 new methods for activity, advancements, and follows.
AdvancementListenerpersists unlocks, reads rarity stats async, guards against duplicates.UpdateCheckerinterval 6h → 5h. Silent Discord notice fires once per release.JoinQuitListenerwrites 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.JoinQuitListenernull-safe bot connection checks./seenavatar resolution and "never joined" message.FollowModule.onPlayerJoinno longer blocks scheduler thread.MySQLStorage.isFollowingusesSELECT 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
/setupwizard 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.
/panelno longer crashes in thread or forum channels.UpdateCheckerDiscord announcement retries on failure.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:Ggb4tXoF:ThVgm5on"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Ggb4tXoF:ThVgm5on"
}

