Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Tags
Creators
Details
Licensed ARR
Published 2 days ago
SyVote
A powerful Minecraft 1.21.x voting plugin, supporting Purpur / Paper, integrated with the Vault economy system.
Features
- Player-Initiated Votes — Regular players can launch server-wide votes on their own
- Vault Economy Integration — Votes can be created with a configurable fee, automatically deducted from the player's balance
- Admin-Configurable Controls — Administrators can freely toggle the player vote-creation permission and adjust the fee
- Server-Wide Broadcasts — Support for broadcasting clickable vote links to all players
- Real-Time Vote Results — Automatically publishes yes/no vote counts and percentages when a vote ends
- Hyperlink-Based Voting — Players can quickly participate by clicking the hyperlink in chat
- Concurrent Votes — Multiple votes can run simultaneously, with a configurable maximum number of active votes per player
- Granular Permissions — Fine-grained permission nodes to flexibly control what each player can do
Requirements
| Item | Version |
|---|---|
| Minecraft Server | 1.21.x |
| Server Type | Purpur / Paper |
| Java | 21+ |
| Vault (Optional) | Any version |
Installation
- Download
SyVote-1.0.0.jar - Place the jar file into the server's
plugins/directory - Make sure Vault and an economy plugin (e.g. EssentialsX) are installed
- Restart the server or run
/reload confirm - Edit
plugins/SyVote/config.ymlto customize the configuration
Commands
Player Commands
| Command | Description | Permission |
|---|---|---|
/syvote create <title> <description> [duration] |
Create a new vote | syvote.create |
/syvote vote <voteId> [yes/no] |
Cast a vote on a specified vote | syvote.use |
/syvote list |
List all active votes | syvote.use |
/syvote info <voteId> |
View detailed information of a vote | syvote.use |
/syvote help |
Show the help message | syvote.use |
Admin Commands
| Command | Description | Permission |
|---|---|---|
/syvote cancel <voteId> |
Forcefully cancel a specified vote | syvote.admin |
/syvote broadcast <voteId> |
Send a vote notification (with a clickable link) to the entire server | syvote.admin |
/syvote setcost <amount> |
Set the fee players must pay to create a vote | syvote.admin |
/syvote togglecreate |
Enable/disable the player vote-creation feature | syvote.admin |
/syvote reload |
Reload the configuration file | syvote.admin |
All commands can also be invoked with the aliases
/svor/vote.
Permission Nodes
| Permission | Default | Description |
|---|---|---|
syvote.use |
All players | Use basic voting features |
syvote.create |
All players | Create votes (subject to the configuration toggle) |
syvote.admin |
OP | Administrator permission, includes all sub-permissions |
Configuration File
# Whether to allow players to create votes on their own
allow-player-create: true
# Fee for creating a vote (requires the Vault economy plugin)
create-cost: 100.0
# Default vote duration (in minutes)
default-duration: 10
# Maximum number of concurrent active votes per player
max-active-votes: 3
# Whether to allow players to vote on votes they created
allow-self-vote: false
# Message prefix
prefix: "&b[SyVote] &r"
# Messages (color codes are supported)
messages:
no-permission: "&cYou do not have permission to perform this action!"
no-vault: "&cVault economy plugin is not installed; economy features are unavailable!"
insufficient-funds: "&cYou don't have enough balance; you need &e%cost% &cgold!"
vote-created: "&aVote created successfully! Cost: &e%cost% &agold."
vote-ended: "&eVote &6%title% &ehas ended!"
vote-cancelled: "&cVote &6%title% &chas been cancelled!"
already-voted: "&cYou have already voted!"
self-vote-denied: "&cYou cannot vote on a vote you created!"
vote-not-found: "&cVote not found!"
no-active-votes: "&cThere are no active votes at the moment."
max-votes-reached: "&cYou already have too many active votes!"
player-create-disabled: "&cThe administrator has disabled the player vote-creation feature!"
broadcast-message: "&6[Vote] &e%creator% &fstarted a vote: &6%title%"
broadcast-hover: "&aClick to vote!"
vote-success: "&aVote cast successfully!"
vote-results: "&6===== Vote Results: %title% ====="
vote-result-yes: "&aYes: %yes% (&f%yesPercent%%&a)"
vote-result-no: "&cNo: %no% (&f%noPercent%%&c)"
vote-result-total: "&eTotal votes: %total%"
config-reloaded: "&aConfiguration reloaded!"
create-cost-set: "&aVote creation cost has been set to &e%cost%"
player-create-enabled: "&aPlayer vote-creation feature has been enabled!"
player-create-disabled-msg: "&cPlayer vote-creation feature has been disabled!"
Usage Examples
Create a Vote (Player)
/syvote create "Enable PVP?" "Should we enable the PVP feature in the spawn area?"
After creation, a clickable broadcast message will be sent to the entire server:
[Vote]
Shiyuanstarted a vote: Enable PVP? (click to vote)
Cast a Vote
Click the vote link in chat, or type the command manually:
/syvote vote vote_1_xxx yes # Vote yes
/syvote vote vote_1_xxx no # Vote no
Admin Broadcast
/syvote broadcast vote_1_xxx
Resends a clickable link of the specified vote to the entire server, making it easier to remind players to participate.
Set the Creation Fee
/syvote setcost 500
Sets the cost for players to create a vote to 500 gold.
Disable Player Vote Creation
/syvote togglecreate
After disabling, only administrators with the syvote.admin permission can create votes.
Project Structure
SyVote/
├── pom.xml # Maven build configuration
├── README.md # Project documentation
└── src/
└── main/
├── resources/
│ ├── plugin.yml # Plugin descriptor
│ └── config.yml # Default configuration file
└── java/cn/shiyuan/syvote/
├── SyVote.java # Main class
├── model/
│ └── Vote.java # Vote data model
├── manager/
│ ├── ConfigManager.java # Configuration manager
│ ├── EconomyManager.java # Vault economy manager
│ ├── MessageManager.java # Message manager
│ └── VoteManager.java # Vote logic manager
└── command/
└── VoteCommand.java # Command handler
Building
# Clone the repository
git clone <repository-url>
cd SyVote
# Build with Maven
mvn clean package
# After the build completes, the jar is located at target/SyVote-1.0.0.jar


