flexible in-game voting and polling system for Bukkit/Spigot/Paper servers. Admins can create command-based polls, while regular players can create restricted, silent polls from admin-approved templates.
Testet only on mc version 1.21.11
flexible in-game voting and polling system for Bukkit/Spigot/Paper servers.
Admins can create command-based polls, while regular players can create restricted, silent polls from admin-approved templates. Polls are displayed in a GUI, support repetition, reminders, persistence, and multilingual messages.
Place the plugin JAR into the plugins/ folder
Start the server once to generate config files
Configure:
config.ymllang.ymlpolls.ymlhistory.ymlReload configuration with:
/votepoll reload
A poll represents a vote with the following properties:
Supported command placeholders:
{target}{creator}customCommands)Poll templates defined in config.yml.
They are reusable and safe predefined commands.
Only templates listed in playerAllowedCommands can be used by non-admin players.
Example:
/votepoll add example_ban --target=RareHuman
Open poll GUI:
/votepoll
Preview the poll info:
/preview <id>
Create a poll from an allowed template:
/votepoll add <templateId> [--target=PLAYER]
Vote on a poll:
/vote <pollId> yes
/vote <pollId> no
Toggle reminders:
/votepoll notify on
/votepoll notify off
Set language:
/votelang <languageCode>
votepoll.admin or OP)Create a poll:
/votepoll add [id] <duration> <minYes> <minNo> "<display>" <command> [flags]
Supported flags:
--target=PLAYER--repeat--repeat=SECONDS--interval=SECONDS--silent--display=NAMEExamples:
/votepoll add banVote 300 5 3 "Ban toxic player" ban {target} --target=BadPlayer
/votepoll add 600 4 2 "Restart server?" restart --silent
Other admin commands:
/votepoll cancel <id>
/votepoll reload
/votepoll preview <id>
Lists all active polls
Displays full poll information:
Admin-created polls:
reminderIntervalSecondsPlayer-created polls:
Players can opt out of reminders individually
polls.yml stores active pollshistory.yml stores completed pollsreminderIntervalSeconds: 1800
defaultRepeatIntervalSeconds: 60
playerAllowedCommands:
- "example_ban"
customCommands:
- id: "example_ban"
display: "Ban example player"
description: "Ban a player for breaking rules"
command: "ban {target} Breaking server rules"
durationSeconds: 300
minYes: 5
minNo: 3
repeat: false
repeatIntervalSeconds: 0
messages:
usage_votepoll: "&cUsage: /votepoll add|cancel|list|reload|notify"
no_permission: "&cYou don't have permission to do that."
usage_cancel: "&cUsage: /votepoll cancel <id>"
unknown_subcommand: "&cUnknown subcommand."
vote_failed: "&cUnable to vote."
poll_canceled: "&cVote canceled: &6{display} (id: {id})"
broadcast_new_poll: "&aNew vote created: &6{display} &f(id: {id})"
vote_passed: "&aVote passed: &6{display}"
vote_failed: "&cVote failed: &6{display}"
vote_passed_majority: "&aVote passed (majority): &6{display}"
vote_failed_majority: "&cVote failed (majority): &6{display}"
| Permission | Description |
|---|---|
votepoll.admin |
Full administrative access |
| none | Required for voting and allowed templates |
playerAllowedCommandsdefaultRepeatIntervalSeconds is used