🗳️ Vote systém
Vote systém přijímá hlasy z hlasovacích stránek přes NuVotifier protokol (V1 RSA & V2 HMAC), provádí odměnové příkazy a řadí hlasy offline hráčů do fronty.
Pro zapnutí: nastavte
enableVote: true v general.json. Konfigurace v votes.json.
Rychlá navigace
⚙️ Jak to funguje
Podpora protokolů
Vote listener Voidia podporuje oba protokoly současně na jednom portu:
| Protokol | Autentizace | Popis |
|---|---|---|
| V1 (Legacy RSA) | RSA 2048-bit klíčový pár | Klasický Votifier formát. Klíče se generují automaticky. |
| V2 (NuVotifier) | HMAC-SHA256 shared secret | JSON-based token formát. Secret se generuje automaticky (16 znaků). |
Průběh hlasování
- Hlasovací stránka pošle vote paket na
host:port - Voidium detekuje verzi protokolu a validuje payload
- Pokud je hráč online: odměnové příkazy se provedou okamžitě
- Pokud je hráč offline: hlas se uloží do pending fronty
- Když se hráč příště přihlásí, pending hlasy se vyplatí tiše
Oznámení
Když je announceVotes zapnutý, broadcast zpráva se pošle všem hráčům. Cooldown (announcementCooldown, výchozí 300s) zabraňuje spamu z rychlých hlasů.
📝 Konfigurace
Soubor: config/voidium/votes.json
Základní nastavení
| Pole | Typ | Výchozí | Popis |
|---|---|---|---|
enabled |
boolean | true |
Hlavní přepínač |
host |
string | "0.0.0.0" |
Rozhraní pro navázání |
port |
int | 8192 |
Port listeneru |
rsaPrivateKeyPath |
string | "votifier_rsa.pem" |
Cesta k PKCS#8 PEM privátnímu klíči |
rsaPublicKeyPath |
string | "votifier_rsa_public.pem" |
Cesta kam se zapíše veřejný klíč |
sharedSecret |
string | (auto-generovaný) | HMAC secret pro V2. Auto-generovaný pokud prázdný. |
Odměny
| Pole | Typ | Výchozí | Popis |
|---|---|---|---|
commands |
string[] | ["tellraw %PLAYER% ...", "give %PLAYER% diamond 1"] |
Příkazy provedené za hlas. Placeholder: %PLAYER% |
announceVotes |
boolean | true |
Broadcastovat oznámení o hlasech |
announcementMessage |
string | &b%PLAYER% &7voted for the server... |
Text broadcastu. Placeholder: %PLAYER% |
announcementCooldown |
int | 300 |
Sekundy mezi oznámeními |
maxVoteAgeHours |
int | 24 |
Ignorovat hlasy starší než toto (anti-spam) |
Logování
| Pole | Typ | Výchozí | Popis |
|---|---|---|---|
logging.voteLog |
boolean | true |
Zapisovat plaintext vote log |
logging.voteLogFile |
string | "votes.log" |
Název log souboru |
logging.archiveJson |
boolean | true |
Appendovat NDJSON analytiku |
logging.archivePath |
string | "votes-history.ndjson" |
Cesta NDJSON souboru |
logging.notifyOpsOnError |
boolean | true |
Notifikovat OPy při chybách |
logging.pendingQueueFile |
string | "pending-votes.json" |
Soubor fronty offline hlasů |
logging.pendingVoteMessage |
string | &8[&bVoidium&8] &aPaid out &e%COUNT% &apending votes! |
Zpráva při vyplacení. Placeholder: %COUNT% |
⌨️ Příkazy
| Příkaz | Oprávnění | Popis |
|---|---|---|
/voidium votes pending |
OP | Zobrazí celkový počet pending hlasů |
/voidium votes pending <player> |
OP | Zobrazí pending hlasy pro hráče |
/voidium votes clear |
OP | Vyčistí frontu pending hlasů |
📋 Logování
Voidium poskytuje duální logování:
- votes.log — plaintext záznam každého hlasu (hráč, timestamp, služba)
- votes-history.ndjson — line-delimited JSON pro analytiku a zpracování dat
Oba soubory se ukládají do config/voidium/storage/.
RSA klíče: Při prvním spuštění Voidium auto-generuje 2048-bit RSA klíčový pár. Zkopírujte veřejný klíč z
votifier_rsa_public.pem do konfigurace hlasovací stránky.
Nastavení s hlasovacími stránkami
- Spusťte server jednou pro auto-generování klíčů a configu
- Zkopírujte veřejný klíč z
votifier_rsa_public.pem - Na hlasovací stránce nastavte:
- IP serveru: IP vašeho serveru
- Port:
8192(nebo vámi nastavený port) - Veřejný klíč: vložte obsah
votifier_rsa_public.pem
- Pro V2 stránky také zadejte
sharedSecretzvotes.json