VoteMe
1.0.2A Vote Rewards plugin that doesn't require an second port to use, in this plugin we using an API from the Voting System Website, so this plugin doesn't require an second port to use, easy to setup and
1.0.2latestVoteMe 1.0.2Mar 5, 2026 Changelog
All notable changes to VoteMe will be documented here. ---[1.0.2] — 2025-03-05
Added
- Support for 8 vote sites: Minecraft Pocket Servers, Minecraft-MP, Minecraft-Server.net, Craftlist, TopG, Planet Minecraft, Minecraft-Servers.org, ServerPact - Craftlist timestamp-based vote tracking — stores last claimed vote per player indata.yml-PlayerJoinListener— async join reminder showing how many unclaimed votes a player has -/vote listsubcommand — lists all enabled vote site names and links in chat - Tab completion for/vote list-join-remindertoggle inconfig.yml-checkStatus()inVoteAPIClientfor read-only join reminder checks -ConfigManagerfully dynamic — reads all site data viaAPITypeenum -GUIListenerusesEnumMap<Material, APIType>for clean click routing -VoteGUIdynamically assigns slots based on active sites - Saweria support link added to top ofconfig.ymlChanged
- Config structure changed from flat keys to nested blocks per site:
-minecraft-pocket: api-key: "" name: "Minecraft Pocket Servers" url: "..."VoteAPIClientrestructured with clear per-site handlers and shared HTTP helpers -VoteGUIslot layout redesigned to accommodate up to 8 sites in a 27-slot chestNotes
- If upgrading from 1.0.0, delete the oldconfig.ymland let the plugin regenerate it ---[1.0.0] — 2025-03-03
Initial Release
-/votecommand opens a 27-slot chest GUI - Support for Minecraft Pocket Servers and Minecraft-MP - Pure HTTP API — no port forwarding, no listener daemon required - All API calls run asynchronously (non-blocking main thread) - Fully configurable rewards via console commands ({player}variable) - Configurable messages and broadcast with{player}and{link}variables - Vote party system — fires server-wide rewards at vote milestones - Sound feedback:VILLAGER_YES+XP_ORBsequence on success,VILLAGER_NOon failure - Vote party sound sequence for all online players - PlaceholderAPI support with 4 placeholders: -%voteme_total_votes%-%voteme_party_progress%-%voteme_party_target%-%voteme_party_needed%-/votereloadcommand for hot config reload -data.ymlfor persistent vote counter across restarts - MIT License1.0.0VoteMe 1.0.0Mar 4, 2026 <div align="center">
Turn every vote into a reward. No ports. No daemons. Just a clean API. [](LICENSE) [](ht… </div> ---__ __ _ _ __ __ \ \ / /__ | |_ ___| |\/| | \/ | ___ \ V / _ \| __/ _ \ |\/| | |\/| |/ _ \ \_/ \___/\__\___/_| |_||_| |_|\___/What is VoteMe?
VoteMe is a lightweight, pure API-based voting plugin for Java Edition servers. Players open a clean chest GUI, click a site, and their reward lands in their inventory — no port forwarding, no external listener, no daemon process needed. It supports two of the biggest Minecraft server listing sites out of the box, and every single piece of behavior — sounds, messages, rewards, GUI title, vote party threshold — is configurable down to the last character. ---Feature Overview
---/vote Opens a 27-slot chest GUI /vote list Lists all vote site links in chat Join Reminder Tells players how many votes they haven't claimed yet Dual API Support Minecraft Pocket Servers + Minecraft-MP, one or both Fully Async Zero impact on main thread — all API calls are non-blocking Reward System Any console command as a reward (items, money, permissions) Vote Party Server-wide reward event when a vote milestone is hit Sound Feedback Villager + XP Orb sounds for every vote outcome PlaceholderAPI 4 ready-to-use placeholders for scoreboards Hot Reload /votereload — no restart needed after config changesRequirements
| Requirement | Version | Notes | |---|---|---| | Java | 21+ | | | Paper or Spigot | 1.21.1 | Also runs on Purpur, Pufferfish, and other forks | | PlaceholderAPI | Any | Optional — unlocks%voteme_*%placeholders |Bedrock server software (PMMP, Nukkit, GeyserMC standalone) is not supported.
---Installation
Step 1. DropVoteMe.jarinto your/pluginsfolder. Step 2. Start the server once to generate the config file atplugins/VoteMe/config.yml. Step 3. Open the config and fill in your API key(s) and server page URL(s). Step 4. Run/votereloadin-game or from console. Done. ---Building from Source
Requires Maven and Java 21.
Output:git clone https://github.com/herza/VoteMe.git cd VoteMe mvn clean packagetarget/VoteMe.jar---Configuration
# ╔══════════════════════════════════════════════════════════╗ # VoteMe Configuration — by Herza # ╚══════════════════════════════════════════════════════════╝ # ── Vote Sites ───────────────────────────────────────────── # Set api-key to "" to disable that site. # You can run one site, or both at the same time. minecraft-pocket: api-key: "" name: "Minecraft Pocket Servers" url: "https://minecraftpocket-servers.com/server/YOUR_ID" minecraft-mp: api-key: "" name: "Minecraft-MP" url: "https://minecraft-mp.com/server/YOUR_ID" # ── Join Reminder ────────────────────────────────────────── # When a player joins, VoteMe checks all enabled sites. # If unclaimed votes exist, the player gets a private message. # Set to false to disable. join-reminder: true # ── Rewards ──────────────────────────────────────────────── # Console commands executed when a player claims a vote. # Variable: {player} rewards: - "give {player} diamond 1" - "eco give {player} 500" # ── Messages ─────────────────────────────────────────────── # Supports & color codes. Variables: {player}, {link} # Set any value to "" to disable that message. messages: success: "&a[Vote] &fThank you for voting, &e{player}&f! Rewards sent." already-claimed: "&e[Vote] &fYou already claimed your reward today." not-voted: "&c[Vote] &fYou haven't voted yet. Head to: &e{link}" error: "&c[Vote] &fCould not reach the voting API. Try again later." # ── Broadcast ────────────────────────────────────────────── # Sent to ALL online players when someone claims a vote. # Variables: {player}, {link}. Set to [] to disable entirely. broadcast: - "&6[Vote] &e{player} &fjust claimed their vote rewards! Vote at &e{link}&f." # ── Vote Party ───────────────────────────────────────────── # Fires every time total votes hit a multiple of this number. # Set to 0 to disable vote party entirely. vote-party: 50 # Console commands run for EVERY online player when the party fires. # Variable: {player} vote-party-rewards: - "give {player} diamond 5" # ── GUI ──────────────────────────────────────────────────── gui: title: "&8» &6&lVoteMe &8«" # ╔══════════════════════════════════════════════════════════╗ # PlaceholderAPI — requires PlaceholderAPI plugin # # %voteme_total_votes% All-time total votes recorded # %voteme_party_progress% Votes in the current party cycle # %voteme_party_target% Target to trigger a party (N/A if off) # %voteme_party_needed% Remaining votes until next party (N/A if off) # # Scoreboard examples: # "&fTotal Votes &e%voteme_total_votes%" # "&fParty &e%voteme_party_progress%&7/&6%voteme_party_target%" # "&fNext Party In &e%voteme_party_needed% &fvotes" # ╚══════════════════════════════════════════════════════════╝Where to get your API key
Minecraft Pocket Servers — Log into your dashboard atminecraftpocket-servers.com, open your server settings, and copy the API key from the voting section. Minecraft-MP — Log intominecraft-mp.com, go to your server panel, and find the API key under the voting/API tab. ---Commands
| Command | What it does | Permission | |---|---|---| |/vote| Opens the vote chest GUI |voteme.vote| |/vote list| Lists all vote site names and links in chat |voteme.vote| |/votereload| Reloads config without restarting the server |voteme.admin| ---Permissions
| Node | Default | Description | |---|---|---| |voteme.vote| All players | Access to/voteand/vote list| |voteme.admin| OP only | Access to/votereload| ---PlaceholderAPI
Install [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) and VoteMe registers its expansion automatically on startup — no extra commands needed. | Placeholder | Returns | |---|---| |%voteme_total_votes%| All-time total votes recorded by the plugin | |%voteme_party_progress%| Votes counted in the current party cycle | |%voteme_party_target%| Vote count target to fire a party (N/Aif disabled) | |%voteme_party_needed%| Votes remaining until the next party (N/Aif disabled) | Works with any scoreboard plugin that supports PlaceholderAPI — CMI, FeatherBoard, AnimatedScoreboard, etc.
---&fTotal Votes &e%voteme_total_votes% &fParty &e%voteme_party_progress%&7/&6%voteme_party_target% &fNext Party &e%voteme_party_needed% &fvotesHow the Vote API Works
VoteMe talks directly to each site's HTTP API. There is no listener port, no webhook server, and no firewall rules to configure.Minecraft Pocket Servers — two-step flow
Step 1 GET /api/?object=votes&element=claim&key=KEY&username=PLAYER Response: "1" = unclaimed | "2" = already claimed | "0" = not voted Step 2 (only if step 1 returns "1") GET /api/?action=post&object=votes&element=claim&key=KEY&username=PLAYER Response: "1" = successMinecraft-MP — single-step flow
All requests run on a separate async thread. The main server thread is never touched. ---GET /api/?action=post&object=votes&element=claim&key=KEY&username=PLAYER Response: "1" = claimed | "2" = already claimed | "0" = not votedSound Feedback
Every vote ou
Similar projects
Config →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta