Preskočiť na obsah

Nastavenie NuVotifiera na Paperi, Velocity a BungeeCorde

NuVotifier je článok medzi zoznamom serverov a tvojím pluginom na odmeny: zoznam sa naň pripojí pri každom hlase a on hlas odovzdá pluginu, ktorý dáva odmenu. Tento návod ho nastaví na samostatnom Paper serveri aj v sieti s Velocity alebo BungeeCord a potom všetko overí testovacím hlasom.

Aktualizované:

Ako Votifier doručí hlas

  1. Hráč zahlasuje za tvoj server na zozname.
  2. Zoznam otvorí TCP spojenie na tvoj server na porte Votifiera a pošle meno hráča, svoj názov služby, adresu a časovú značku.
  3. NuVotifier správu overí (RSA kľúč pri v1, token pri v2) a vyvolá udalosť hlasovania.
  4. Plugin na odmeny, napríklad VotingPlugin, na túto udalosť čaká a dá odmenu.

NuVotifier sám nedáva nič. Dodáva sa bez akéhokoľvek listenera, takže na odmeny vždy potrebuješ druhý plugin.

Krok 1: Nainštaluj NuVotifier na Paper alebo Spigot

Daj JAR súbor NuVotifiera do priečinka plugins a raz spusti server. Vytvorí svoju konfiguráciu, pár RSA kľúčov a token. Pri prvom štarte konzola token vypíše: Your default NuVotifier token is ….

plugins/Votifier/config.yml
host: 0.0.0.0
port: 8192
disable-v1-protocol: false
tokens:
  default: <generated token>
forwarding:
  method: none
  pluginMessaging:
    channel: nuvotifier:votes
  • host je adresa, na ktorej NuVotifier počúva. Predvolene berie IP, pre ktorú je server nakonfigurovaný, alebo 0.0.0.0 pre všetky rozhrania.
  • port je port Votifiera, predvolene 8192. Nesmie to byť port Minecraftu.
  • tokens.default sa používa pre každý zoznam, pokiaľ nepridáš token pod názvom služby konkrétneho zoznamu.
  • Kľúče pre v1 sa vytvoria v plugins/Votifier/rsa/ ako public.key a private.key.

Krok 2: Sprístupni port

Zoznamy sa pripájajú z internetu, takže port Votifiera musí byť otvorený pre prichádzajúce TCP spojenia. Tu zlyháva väčšina nastavení.

  • Zdieľaný hosting: veľa panelov otvára len herný port. Pridaj v paneli ďalší port a presne toto číslo zadaj do port. Niektoré hostingy ti číslo pridelia samy.
  • Vlastný VPS alebo root server: povoľ port vo firewalle, napríklad ufw allow 8192/tcp.
  • Doma: presmeruj port v routeri na stroj, na ktorom beží server.

Po zmene konfigurácie server reštartuj. NuVotifier má aj /nvreload, ktorý funguje z konzoly.

Krok 3: Vyber v1 (verejný kľúč) alebo v2 (token)

Protokol v1Protokol v2
TajomstvoPár RSA kľúčovZdieľaný token
Čo potrebuje zoznamObsah rsa/public.keyToken z tokens.default
PodporaKlasický Votifier; hovorí ním väčšina zoznamovNuVotifier a zoznamy, ktoré ho podporujú

Nikdy nikomu nedávaj private.key. Ak zoznam podporuje v2, token je jednoduchšia voľba: jeden riadok, žiadny súbor s kľúčom. BestMCServerList podporuje oboje, takže si na svojej stránke Votifiera vyber, čo chceš.

Na samostatnom serveri nechaj disable-v1-protocol: false. Sám NuVotifier upozorňuje, že veľa zoznamov hovorí len protokolom v1.

Krok 4: Siete s Velocity alebo BungeeCord

V sieti sa zoznam pripája na proxy. NuVotifier beží na proxy a preposiela hlasy na backend servery, kde je plugin na odmeny. Wiki NuVotifiera pre väčšinu sietí odporúča plugin messaging.

Proxy (Velocity)

plugins/nuvotifier/config.toml
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 BungeeCorde sú tie isté kľúče v plugins/NuVotifier/config.yml vo formáte YAML. cache = "file" uchová hlasy hráčov, ktorí sú offline, a doručí ich neskôr.

Každý backend server (Paper)

plugins/Votifier/config.yml
port: -1
forwarding:
  method: pluginMessaging
  pluginMessaging:
    channel: nuvotifier:votes

port: -1 vypne listener na backende, takže hlasy prijíma len proxy. Uisti sa, že tvoje backendy sú dostupné len cez proxy, inak by niekto mohol posielať falošné hlasy.

Druhá možnosť, method = "proxy", posiela hlasy z proxy na port NuVotifiera na každom backende, nakonfigurovaný adresou, portom a tokenom pre každý server pod [forwarding.proxy.<name>]. Nemá cache hlasov, takže plugin messaging sa zvyčajne hodí lepšie.

Krok 5: Zadaj údaje a pošli testovací hlas

  1. Najprv otestuj lokálne: /testvote Steve serviceName=BestMCServerList na Paperi alebo /ptestvote s rovnakými argumentmi na proxy. Ak tvoj plugin na odmeny zareaguje, vnútro funguje.
  2. Na BestMCServerList otvor svoj server v dashboarde a choď do Votifier. Zadaj verejnú adresu servera alebo proxy, port a token (v2) alebo verejný kľúč (v1) a ulož.
  3. Stlač Poslať testovací hlas. Pošleme hlas za TestVote, ktorý sa do rebríčka nepočíta, a log doručenia do pár sekúnd ukáže, či prišiel.

Hlasy z BestMCServerList nesú názov služby BestMCServerList. Bedrock hráči, ktorí sa pripájajú cez Geyser a Floodgate, hlasujú s menom s prefixom, napríklad .Steve, a meno príde do NuVotifiera nezmenené. Každé meno v Minecrafte môže hlasovať raz za server a kalendárny deň, počítaný v čase Europe/Berlin.

Ešte nie si na zozname? Najprv pridaj svoj server a potom sa vráť k tomuto kroku.

Bežné chyby a ich riešenia

ProblémČo skontrolovať
Connection refusedNuVotifier nebeží alebo počúva na inom porte. Porovnaj port v konfigurácii s tým, čo si zadal.
Timed outFirewall alebo hosting zahadzuje prevádzku. Otvor port pre TCP alebo požiadaj hosting o ďalší port.
Test príde, hráči nič nedostanúChýba plugin na odmeny. Konzola zapíše A vote was received, but you don't have any listeners available to listen for it.
Hlas pri v2 odmietnutýToken nesedí. Skopíruj tokens.default znova, bez medzier a úvodzoviek.
Na proxy to funguje, na backende nieBackend nie je nastavený na pluginMessaging alebo sa názvy kanálov líšia.
Zadaný zlý portNamiesto NuVotifiera odpovedá port Minecraftu. Použi port Votifiera.

Keď hlasy prichádzajú, nastav odmeny: náš návod odmeny za hlasovanie s VotingPlugin rieši názov služby, VoteSites.yml a denné limity. Širší obraz nájdeš v návode ako získať hráčov na nový server.

Často kladené otázky

Aký port NuVotifier používa?

Predvolene port 8192. Môžeš ho zmeniť v konfigurácii, ale musí to byť iný port ako port Minecraftu a musí byť dostupný z internetu cez TCP.

Kde nájdem token NuVotifiera?

V plugins/Votifier/config.yml pod tokens → default. Konzola ho vypíše aj pri prvom štarte.

Potrebujem NuVotifier na každom serveri svojej siete?

S plugin messagingom áno: na proxy na prijímanie hlasov a na každom backende s forwarding.method: pluginMessaging a port: -1, aby ich odovzdal pluginu na odmeny.

Mám použiť v1 alebo v2?

Použi v2 s tokenom, keď ho zoznam podporuje. v1 s verejným RSA kľúčom existuje pre staršie nastavenia. BestMCServerList podporuje oboje.

Dáva NuVotifier odmeny sám?

Nie. Len prijíma hlasy. Musí na ne čakať plugin na odmeny, napríklad VotingPlugin.

Zdroje

Overené podľa oficiálnej dokumentácie: