Jak Votifier doručí hlas
- Hráč hlasuje pro tvůj server na seznamu.
- Seznam otevře TCP spojení na Votifier port tvého serveru a pošle jméno hráče, vlastní název služby, adresu a časové razítko.
- NuVotifier zprávu ověří (RSA klíč u v1, token u v2) a vyvolá událost hlasu.
- Plugin na odměny, třeba VotingPlugin, na tuto událost čeká a dá odměnu.
Samotný NuVotifier nedává nic. Dodává se bez jakéhokoli listeneru, takže na odměny vždycky potřebuješ druhý plugin.
Krok 1: Nainstaluj NuVotifier na Paper nebo Spigot
Dej JAR NuVotifieru do složky plugins a jednou spusť server. Vytvoří si config, pár RSA klíčů a token. Konzole token při prvním startu vypíše: Your default NuVotifier token is ….
host: 0.0.0.0
port: 8192
disable-v1-protocol: false
tokens:
default: <generated token>
forwarding:
method: none
pluginMessaging:
channel: nuvotifier:voteshostje adresa, na které NuVotifier naslouchá. Ve výchozím stavu bere IP, pro kterou je nastavený tvůj server, nebo0.0.0.0pro všechna rozhraní.portje Votifier port, ve výchozím stavu8192. Nesmí to být port Minecraftu.tokens.defaultse použije pro každý seznam, pokud nepřidáš token pod názvem služby daného seznamu.- Klíče pro v1 se vytvoří v
plugins/Votifier/rsa/jakopublic.keyaprivate.key.
Krok 2: Zpřístupni port
Seznamy se připojují z internetu, takže Votifier port musí být otevřený pro příchozí TCP spojení. Právě tady většina nastavení selhává.
- Sdílený hosting: hodně panelů otevírá jen herní port. Přidej v panelu port navíc a do
portdej přesně toto číslo. Některé hostingy číslo přidělí samy. - Vlastní VPS nebo root server: povol port ve firewallu, například
ufw allow 8192/tcp. - Doma: přesměruj port v routeru na počítač, na kterém server běží.
Po změně configu server restartuj. NuVotifier má také /nvreload, který jde spustit z konzole.
Krok 3: Vyber v1 (veřejný klíč) nebo v2 (token)
| Protokol v1 | Protokol v2 | |
|---|---|---|
| Tajemství | Pár RSA klíčů | Sdílený token |
| Co potřebuje seznam | Obsah rsa/public.key | Token z tokens.default |
| Podpora | Klasický Votifier; umí ho většina seznamů | NuVotifier a seznamy, které ho podporují |
private.key nikdy nikomu nedávej. Pokud seznam podporuje v2, token je jednodušší volba: jeden řádek, žádný soubor s klíčem. BestMCServerList podporuje obojí, takže na své stránce Votifieru vyber, co se ti líbí.
Na jednom serveru nech disable-v1-protocol: false. Sám NuVotifier upozorňuje, že hodně seznamů umí jen v1.
Krok 4: Sítě s Velocity nebo BungeeCordem
Na síti se seznam připojuje k proxy. NuVotifier běží na proxy a přeposílá hlasy na backend servery, kde žije plugin na odměny. Wiki NuVotifieru pro většinu sítí doporučuje plugin messaging.
Proxy (Velocity)
host = "0.0.0.0"
port = 8192
disable-v1-protocol = false
[tokens]
default = "<generated token>"
[forwarding]
method = "pluginMessaging"
[forwarding.pluginMessaging]
channel = "nuvotifier:votes"
cache = "file"Na BungeeCordu jsou stejné klíče v plugins/NuVotifier/config.yml ve formě YAML. cache = "file" uchová hlasy hráčů, kteří jsou offline, a doručí je později.
Každý backend server (Paper)
port: -1
forwarding:
method: pluginMessaging
pluginMessaging:
channel: nuvotifier:votesport: -1 vypne listener na backendu, takže hlasy přijímá jen proxy. Ujisti se, že tvoje backendy jsou dostupné jen přes proxy, jinak by někdo mohl posílat falešné hlasy.
Druhá možnost, method = "proxy", posílá hlasy z proxy na NuVotifier port každého backendu, nastavený adresou, portem a tokenem pro každý server pod [forwarding.proxy.<name>]. Nemá cache hlasů, takže plugin messaging obvykle sedí líp.
Krok 5: Zadej údaje a pošli testovací hlas
- Nejdřív testuj lokálně:
/testvote Steve serviceName=BestMCServerListna Paperu, nebo/ptestvotese stejnými argumenty na proxy. Pokud tvůj plugin na odměny zareaguje, vnitřek funguje. - Na BestMCServerList otevři svůj server na nástěnce a jdi na Votifier. Zadej veřejnou adresu serveru nebo proxy, port a token (v2) nebo veřejný klíč (v1) a ulož.
- Stiskni Poslat testovací hlas. Pošleme hlas pro
TestVote, který se do žebříčku nepočítá, a protokol doručení během pár sekund ukáže, jestli dorazil.
Hlasy z BestMCServerList nesou název služby BestMCServerList. Bedrock hráči, kteří se připojují přes Geyser a Floodgate, hlasují pod jménem s prefixem, například .Steve, a jméno do NuVotifieru dorazí beze změny. Každé Minecraft jméno může hlasovat jednou za kalendářní den pro každý server, počítáno v čase Europe/Berlin.
Ještě nemáš server v seznamu? Nejdřív přidej svůj server a pak se k tomuto kroku vrať.
Časté chyby a jejich řešení
| Problém | Co zkontrolovat |
|---|---|
| Connection refused | NuVotifier neběží nebo naslouchá na jiném portu. Porovnej port v configu s tím, co jsi zadal. |
| Timed out | Provoz zahazuje firewall nebo hosting. Otevři port pro TCP nebo požádej hosting o port navíc. |
| Test dorazí, hráči nedostanou nic | Chybí plugin na odměny. Konzole vypíše A vote was received, but you don't have any listeners available to listen for it. |
| Hlas s v2 odmítnut | Token nesedí. Zkopíruj tokens.default znovu, bez mezer a uvozovek. |
| Funguje na proxy, ne na backendu | Backend není nastavený na pluginMessaging, nebo se liší názvy kanálů. |
| Zadaný špatný port | Místo NuVotifieru odpovídá port Minecraftu. Použij Votifier port. |
Jakmile hlasy dorazí, nastav odměny: náš návod na odměny za hlasování s VotingPluginem pokrývá název služby, VoteSites.yml a denní limity. Pro širší pohled si přečti, jak získat hráče pro nový server.