# LiteVotePlugin
A lightweight, modern, and highly customizable voting plugin for **Paper, Purpur, Folia, and Spigot** that allows players to vote for changing the time of day or weather — without needing admin intervention or sleeping through the night.
---
## ✨ Features
- 🖱️ **Interactive Chat:** Clickable `[ЗА]` / `[ПРОТИВ]` buttons in chat with hover tooltips powered by Adventure MiniMessage.
- 🔊 **Sound Effects:** Audible cues on vote start, reminders, success, and failure.
- ⏱️ **Flexible Timers & Reminders:** Configurable vote duration, ending countdown reminder, and cooldown between votes.
- 📊 **Customizable Vote Threshold:** Choose between **Simple Majority** (`yes > no`) or **Player Percentage** (e.g. 50% of active players).
- 🌍 **World-Specific or Global:** Restrict voting and weather changes to the initiator's current world or apply them server-wide.
- 🛡️ **Permissions & Admin Controls:** Configurable permission nodes and an in-game config reload command (`/vote reload`).
- ⚡ **Modern Paper API:** Built on the latest Paper Brigadier command lifecycle and MiniMessage formatting.
---
## 🎮 Commands & Aliases
Commands can be run using either `/vote` or `/v`.
| Command | Permission | Description |
| --- | --- | --- |
| `/vote day` | `litevote.vote` | Start a vote to set time to day |
| `/vote night` | `litevote.vote` | Start a vote to set time to night |
| `/vote clear` | `litevote.vote` | Start a vote for clear weather |
| `/vote rain` | `litevote.vote` | Start a vote for rain |
| `/vote storm` | `litevote.vote` | Start a vote for a thunderstorm |
| `/vote yes` | `litevote.vote` | Vote in favor of the active proposal |
| `/vote no` | `litevote.vote` | Vote against the active proposal |
| `/vote reload` | `litevote.admin` | Reload `config.yml` without server restart |
| `/vote` | `litevote.vote` | View available commands and help |
---
## 🔑 Permissions
| Permission | Default | Description |
| --- | --- | --- |
| `litevote.vote` | `true` (all players) | Allows players to initiate and participate in votes |
| `litevote.admin` | `op` | Allows reloading the configuration via `/vote reload` |
| `litevote.bypass.cooldown` | `op` | Allows starting a vote ignoring the cooldown timer |
---
## ⚙️ Configuration (`config.yml`)
The plugin generates a fully documented `config.yml` upon first run:
```yaml
settings:
# Duration of the vote in seconds
vote-duration: 30
# Seconds before the vote ends to send a reminder broadcast (0 to disable)
reminder-seconds: 15
# Cooldown between votes in seconds (0 to disable)
cooldown-seconds: 60
# Cooldown mode:
# - "global": Nobody can start a vote until cooldown expires
# - "player": Only the vote initiator has a cooldown
cooldown-mode: "global"
# Vote requirement mode:
# - "simple_majority": YES votes must be strictly greater than NO votes (yes > no)
# - "percentage": Percentage of eligible players who voted YES must reach required-percentage
requirement-mode: "simple_majority"
# Required percentage of YES votes if requirement-mode is "percentage" (1 - 100)
required-percentage: 50
# If true, votes and effects are restricted to the initiator's world
world-only: true
# Minimum number of online players required to start a vote
min-players: 1
# Sound effects (Minecraft sound keys)
sounds:
enabled: true
vote-start: "block.note_block.bell"
vote-reminder: "block.note_block.pling"
vote-success: "entity.player.levelup"
vote-failure: "entity.villager.no"
vote-cast: "ui.button.click"
# Localized names for vote targets
targets:
day: "День"
night: "Ночь"
clear: "Ясно"
rain: "Дождь"
storm: "Гроза"
# Messages using Adventure MiniMessage format (colors, gradients, click & hover events)
messages:
prefix: "[LiteVote] "
vote-start: " начал голосование за !\nГолосуйте: Нажмите, чтобы проголосовать ЗА'>[ЗА] или Нажмите, чтобы проголосовать ПРОТИВ'>[ПРОТИВ] ( сек.)"
vote-reminder: "До конца голосования осталось сек.!"
vote-success: "Голосование завершено успешно! ( ЗА / ПРОТИВ). Применяем: !"
vote-failure: "Голосование не прошло! ( ЗА / ПРОТИВ). Запрос отклонён."
# ... and more customizable strings
```
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.20, 1.20.1, 1.20.2
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Hangar — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
LiteVotePlugin is a free Minecraft Java mod. Compatible with Minecraft 1.20, 1.20.1, 1.20.2, 1.20.3 and newer. Downloaded 3 times (via Hangar). Download it and open it directly in the game.