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:
Development: ZLDiscord
Commands in the game:
The plugin provides the following commands for administrators and players 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:
The plugin provides the following commands for administrators and players on the Discord server:
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:
- z!link <code> — Link your account to Discord. (Bot DMs)
Permisheny:
- 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

