Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
ZLDiscord is a universal plugin for Minecraft servers that provides advanced features, including a voting system, integration with placeholders for voice chats, and the creation of custom messages. This plugin is designed to simplify and automate server management.
Version: 1.16.5 - 1.21.x
Minimum Java: 17
Mandatory dependencies: PlaceholderAPI
Development: here
Commands in the game:
• /zlink — Link your account to Discord. (zoliryzik.link)
• /zunlink — Unlink your account from Discord. (zoliryzik.unlink)
• /zevent "title" "command" "time" "channel_id" [resolve-now] — Creates a new poll. (zoliryzik.event)
• /zembed "name" "title" "description" "channel_id" [image] [thumbnail] [footer] [icon] — Creates an embed in Discord. (zoliryzik.embed)
• /zembedmanage delete/edit_title/edit_description <name> [value] — Manage embeds. (zoliryzik.embed_manage)
• /zcc list/run/create/remove/reload/info <name> — Manage custom commands with template engine. (zoliryzik.cc)
• /zattr get/set/inc/dec list bot|member|player <key> [value] — DataStore attributes. (zoliryzik.attr)
• /zstatus — Show bot and plugin status. (zoliryzik.status)
• /zlongpoll create/list/remove/reload <name> <url> <key> [wait] — LongPoll connections with auto-reconnect. (zoliryzik.longpoll)
• /zsync — Synchronize Discord roles with LuckPerms. (zoliryzik.sync)
• /zprefix set/reload [prefix] — View or change command prefix. (zoliryzik.prefix)
• /zreload — Reload plugin configuration. (zoliryzik.reload)
• /rolegive <member> <role> — Give a Discord role to a member. (zoliryzik.rolegive)
• /roleremove <member> <role> — Remove a Discord role from a member. (zoliryzik.roleremove)
• /rolemenu — Open role selection menu in Discord. (zoliryzik.rolemenu)
• /roletoggle [member] [role] — Toggle a Discord role. (zoliryzik.roletoggle)
Commands in Discord:
Slash Commands:
• /zevent — Creates a new poll. (Admin roles required).
• /zcc reload — Reload custom commands.
• /zcc list — List all custom commands.
• /zcc prefix — Manage prefix settings.
Text Commands:
• /link <code> — Link your account to Discord. (Bot DMs)
Permissions:
zoliryzik.link
zoliryzik.unlink
zoliryzik.embed
zoliryzik.embed_manage
zoliryzik.cc
zoliryzik.attr
zoliryzik.longpoll
zoliryzik.event
zoliryzik.status
zoliryzik.rolegive
zoliryzik.roleremove
zoliryzik.rolemenu
zoliryzik.roletoggle
zoliryzik.sync
zoliryzik.prefix
zoliryzik.reload
zoliryzik.admin
Placeholders (PlaceholderAPI)
ZLDiscord integrates with PlaceholderAPI to display voice chat status, role information and DataStore attributes. Make sure you have PlaceholderAPI installed.
Available placeholders:
• %zoliryzik_in_vc% — Returns "In voice chat", "Not in voice chat" or "Not linked" based on the linked Discord member's voice status.
• %zoliryzik_role_<role_id>% — Returns "true" if the player has ANY of the specified Discord role IDs. Multiple IDs separated by commas. (OR logic)
• %zoliryzik_roles_<role_id>% — Returns "true" if the player has ALL of the specified Discord role IDs. Multiple IDs separated by commas. (AND logic)
• %zoliryzik_attr_member_<key>% — Returns a DataStore attribute for the linked Discord member.
• %zoliryzik_attr_player_<key>% — Returns a DataStore attribute for the player.
• %zoliryzik_attr_bot_<key>% — Returns a DataStore attribute for the bot.
Examples of use
Create a poll for an event:
• /zevent "Siege of the ship" "say &aSiege of the ship is starting!" "20m" 0000000000000000000
Title is fixed. Command executes when voting ends.
Create a poll with teleport:
• /zevent "PvP Tournament" "tp %player_name% 500 65 -300" "30m" 0000000000000000000
Title is fixed. Placeholder is resolved at creation. Teleport happens when voting ends.
Create a poll with placeholder in title:
• /zevent "%player_name% invites to raid" "say &cRaid is starting!" "10m" 0000000000000000000
Title is fixed (player name resolved at creation). Command executes when voting ends.
Create a poll with resolve-now=false:
• /zevent "Online: %server_online%" "say &aHello, %player_name%!" "20m" 0000000000000000000 false
Title shows online at creation. Placeholder in command is resolved when voting ends — may differ.
Create an embed message in Discord:
• /zembed "Siege of the ship" "Siege of the ship" "The Siege of the Ship event is underway\nCords X: 0 Y: 0" "0000000000000000000"
Players will be able to see this message in the Discord channel you specified.
Attributes:
• /zattr set player balance 100
• /zattr get player balance
Custom command:
Commands are created and edited in the commands/ folder. Example commands/heal.yml:
<do mc.command('effect give ' + _player_name + ' regeneration 10 5')>
<do mc.broadcast('&a' + _player_name + ' has been healed!')>
Then register in custom_commands.yml:
commands:
heal:
file: "commands/heal.yml"
description: "Heal a player"
cooldown: 10
enabled: true
command_mc: heal
permission: zoliryzik.heal


