
SyVote
A powerful Minecraft 1.21.x voting plugin, supporting Purpur / Paper, integrated with the Vault economy system.
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]** `Shiyuan` started 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
```bash
# 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
Сервер для плагина SyVote - как у профи
Плагин SyVote создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином SyVote для друзей можно за пару минут - BungeeHost всё уже подготовил.
