
JExVote
JExVote handles everything related to server voting, from receiving votes off voting sites to rewarding players, tracking streaks, and displaying statistics. It ships with its own Votifier-compatible server built in, so you do not need NuVotifier.
Список изменений
JExVote
The Votifier Reward System
Built-in Votifier server · Vote streaks · Reward system · Beautiful GUIs · Multi-language
Supports Votifier v1 (RSA) and NuVotifier v2 (HMAC) — no external Votifier plugin required.
What is JExVote?
JExVote handles everything related to server voting, from receiving votes off voting sites to rewarding players, tracking streaks, and displaying statistics.
It ships with its own Votifier-compatible server built in, so you do not need NuVotifier or any other listener plugin. Just point your vote sites at the configured port and JExVote takes care of the rest.
Votes trigger configurable rewards, feed into a streak system that keeps players coming back, and populate a leaderboard GUI accessible to every player. Admins get full control through commands and hot-reloadable configuration files.
Feature Overview
-
Built-in Votifier server
- Supports both v1 (RSA-encrypted) and v2 (HMAC-SHA256) protocols.
- No NuVotifier dependency.
-
12 reward types
- Commands
- Items
- XP
- Currency (JExEconomy)
- Permissions (LuckPerms)
- Sounds
- Particles
- Titles
- Teleports
- Composite bundles
- Choice menus
- Custom handler hooks
-
Vote streaks
- Tracks consecutive daily votes.
- Configurable timeout.
- Milestone rewards at any threshold.
-
Per-site rewards
- Assign bonus rewards to specific vote sites.
-
Offline vote queue
- Stores votes while players are offline.
- Delivers them on next login.
-
Interactive GUIs
- Vote overview
- Paginated leaderboard
- Streak progress
-
Vote site cooldowns
- Rolling windows or fixed daily resets.
-
Vote points
- Separate point system from total vote count.
-
Broadcast & private messages
- Server-wide announcements.
- Anti-spam cooldown.
- Optional thank-you messages.
-
Multi-language
- English
- German
- Czech
- Slovak
-
Record retention
- Automatic cleanup of old vote data.
-
Spigot / Paper / Folia compatible
-
Fully configurable commands
- Aliases
- Translations
- Command trees
GUIs
Vote Overview
The main menu players see when they type /vote.
Shows:
- Personal stats
- Current streak progress bar
- All configured vote sites
- Clickable vote links
- Leaderboard navigation
- Streak navigation
Leaderboard
A paginated all-time leaderboard with player heads for the top 3 players.
Displays:
- Total votes
- Monthly votes
- Current streak
- Vote points
- Visual vote bar
Streak Progress
Shows:
- Current streak
- Highest streak
- Configured milestones
Milestones are color coded:
- 🟢 Achieved
- 🟡 Next target
- 🔴 Locked
Includes a 20-segment progress bar toward the next reward.
Setup Guide
Step 1 — Install
Drop JExVote.jar into your plugins/ folder and restart the server.
JExVote automatically generates:
- Configuration files
- RSA keypair
- Votifier token
Step 2 — Configure the Votifier Server
Open config.yml:
votifier:
host: ''
port: 8192
token: ''
Notes
- Leave
hostempty to bind all interfaces. tokenis automatically generated on first launch.- Copy the generated token into your vote site settings.
- Ensure the configured port is open in your firewall or hosting panel.
Step 3 — Add Vote Sites
Edit sites.yml:
sites:
serverliste:
display-name: "Serverliste.net"
service-name: "Serverliste"
vote-url: "https://serverliste.net/vote/12345"
cooldown-minutes: 1440
points-per-vote: 1
mcserverlist:
display-name: "MC Server List"
service-name: "MCServerList"
vote-url: "https://minecraft-server-list.com/server/12345/vote/"
daily-reset: "00:00"
timezone: "Europe/Berlin"
points-per-vote: 2
Cooldown Modes
Rolling Window
cooldown-minutes: 1440
Player can vote again X minutes after their last vote.
Daily Reset
daily-reset: "00:00"
timezone: "Europe/Berlin"
Everyone can vote again at the configured reset time.
Step 4 — Configure Rewards
Open rewards.yml:
default-rewards:
- type: command
command: "give {player} diamond 1"
as-console: true
- type: sound
sound: ENTITY_PLAYER_LEVELUP
volume: 1.0
pitch: 1.2
- type: title
title: "<green>Thank you!"
subtitle: "<gray>Your vote has been counted."
fade-in: 10
stay: 40
fade-out: 10
Reward Categories
default-rewards
Granted for every vote.
streak-rewards
Granted when reaching configured streak milestones.
site-rewards
Granted only when voting on specific sites.
Step 5 — Verify
Run:
/jexvote fakevote <yourname>
Verify:
- Rewards
- Broadcasts
- GUI functionality
- Console output
Reward Types
| Type | Description | Key Fields |
|---|---|---|
| command | Execute a command | command, as-console |
| item | Give an item stack | material, amount, name, lore, enchantments |
| xp | Grant vanilla XP | amount |
| currency | Deposit currency | currency, amount |
| permission | Timed LuckPerms permission | permission, duration, server |
| sound | Play sound effect | sound, volume, pitch |
| particle | Spawn particles | particle, count, offset |
| title | Display title and subtitle | title, subtitle, fade-in, stay, fade-out |
| teleport | Teleport player | world, x, y, z, yaw, pitch |
| composite | Bundle rewards together | rewards |
| choice | Reward selection GUI | options |
| custom | Custom plugin hook | handler, data |
Commands & Permissions
Player Commands
/vote
/vote help
/vote sites
/vote stats [player]
/vote top [count]
Permission:
jexvote.command.vote
Alias:
/v
Admin Commands
/jexvote
/jexvote info
/jexvote reload
/jexvote reset <player>
/jexvote resetmonthly
/jexvote fakevote <player> [service]
Alias:
/jv
Permission Nodes
jexvote.command.vote
jexvote.command.admin
jexvote.command.admin.reload
jexvote.command.admin.reset
jexvote.command.admin.fakevote
Configuration Reference
votifier:
host: ''
port: 8192
token: ''
broadcast:
mode: 'all'
cooldown-minutes: 30
private-message:
enabled: true
offline-vote-queue: true
streak:
timeout-hours: 36
claim-mode: 'auto'
bonus-commands:
7:
- "give {player} diamond 3"
14:
- "give {player} diamond 5"
30:
- "give {player} diamond_block 1"
- "broadcast &6{player} &7reached a &630-day &7vote streak!"
records:
retention-days: 90
Streak System
Streaks track how many consecutive days a player has voted.
Default behavior:
- 36-hour timeout
- Missing the timeout resets the streak
Milestones can trigger:
Bonus Commands
Configured in:
streak.bonus-commands
Streak Rewards
Configured in:
streak-rewards
Both systems can be used together.
Votifier Protocol
JExVote includes a fully self-contained Votifier server.
No NuVotifier installation required.
Supported Protocols
Votifier v1
- RSA encrypted
- Legacy vote sites
NuVotifier v2
- JSON payload
- HMAC-SHA256 verification
- Challenge-response support
JExVote automatically detects the protocol version.
Generated Files
plugins/JExVote/rsa/public.key
plugins/JExVote/rsa/private.key
The HMAC token is stored in:
config.yml
Language & Localization
Included translations:
- en_US
- de_DE
- cs_CZ
- sk_SK
The plugin automatically detects player locale.
Force a locale globally:
force-locale: 'de_DE'
Custom translations can be added via:
translations/<locale>.yml
Missing keys automatically fall back to English.
Dependencies
Required
- Paper 1.20.4+
- Spigot
- Folia
- Java 21+
Optional
JExEconomy
Enables currency rewards.
LuckPerms
Enables permission rewards.
PlaceholderAPI
Provides placeholders for:
- Scoreboards
- Tab lists
- Chat formats
Vault
Economy fallback when JExEconomy is not installed.
Editions
Free Edition
- Up to 5 vote sites
Premium Edition
- Unlimited vote sites
- Vote shop
JExVote is part of the JExcellence plugin suite.
Issues, feature requests, and support are handled through the Discussion section or support tickets.
