Przejdź do treści

NuVotifier: konfiguracja na Paper, Velocity i BungeeCord

NuVotifier to element między listą serwerów a twoim pluginem nagród: lista łączy się z nim przy każdym głosie, a on przekazuje głos pluginowi, który daje nagrodę. Ten poradnik konfiguruje go na pojedynczym serwerze Paper oraz w sieci Velocity lub BungeeCord, a na końcu sprawdza wszystko testowym głosem.

Aktualizacja:

Jak Votifier dostarcza głos

  1. Gracz głosuje na twój serwer na liście.
  2. Lista otwiera połączenie TCP z twoim serwerem na porcie Votifier i wysyła nick gracza, własną nazwę usługi, adres i znacznik czasu.
  3. NuVotifier sprawdza wiadomość (klucz RSA dla v1, token dla v2) i wywołuje zdarzenie głosu.
  4. Plugin nagród, np. VotingPlugin, nasłuchuje tego zdarzenia i daje nagrodę.

Sam NuVotifier nic nie daje. Nie zawiera żadnego listenera, więc do nagród zawsze potrzebujesz drugiego pluginu.

Krok 1: zainstaluj NuVotifier na Paper lub Spigot

Wrzuć plik JAR NuVotifier do folderu plugins i uruchom serwer raz. Plugin utworzy swoją konfigurację, parę kluczy RSA i token. Przy pierwszym starcie konsola wypisuje token: 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 to adres, na którym nasłuchuje NuVotifier. Domyślnie bierze IP ustawione dla serwera albo 0.0.0.0 dla wszystkich interfejsów.
  • port to port Votifier, domyślnie 8192. Nie może to być port Minecrafta.
  • tokens.default jest używany dla każdej listy, chyba że dodasz token pod nazwą usługi danej listy.
  • Klucze dla v1 powstają w plugins/Votifier/rsa/ jako public.key i private.key.

Krok 2: udostępnij port

Listy łączą się z internetu, więc port Votifier musi być otwarty dla przychodzących połączeń TCP. Właśnie tu najczęściej coś nie działa.

  • Hosting współdzielony: wiele paneli otwiera tylko port gry. Dodaj w panelu dodatkowy port i wpisz dokładnie ten numer w port. Niektóre hostingi same przydzielają numer.
  • Własny VPS lub serwer dedykowany: zezwól na port w firewallu, np. ufw allow 8192/tcp.
  • W domu: przekieruj port w routerze na komputer, na którym działa serwer.

Po zmianie konfiguracji zrestartuj serwer. NuVotifier ma też /nvreload, które uruchamiasz z konsoli.

Krok 3: wybierz v1 (klucz publiczny) albo v2 (token)

Protokół v1Protokół v2
SekretPara kluczy RSAWspólny token
Czego potrzebuje listaZawartość rsa/public.keyToken z tokens.default
ObsługaKlasyczny Votifier; obsługuje go większość listNuVotifier i listy, które go obsługują

Nigdy nikomu nie dawaj private.key. Jeśli lista obsługuje v2, token jest prostszy: jedna linia, bez pliku z kluczem. BestMCServerList obsługuje oba, więc wybierz, co wolisz, na swojej stronie Votifier.

Na pojedynczym serwerze zostaw disable-v1-protocol: false. Sam NuVotifier ostrzega, że wiele list obsługuje tylko v1.

Krok 4: Votifier w sieci Velocity lub BungeeCord

W sieci lista łączy się z proxy. NuVotifier działa na proxy i przekazuje głosy do serwerów backendowych, na których jest plugin nagród. Wiki NuVotifier poleca dla większości sieci 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 BungeeCordzie te same klucze są w plugins/NuVotifier/config.yml w formie YAML. cache = "file" przechowuje głosy graczy, którzy są offline, i dostarcza je później.

Każdy serwer backendowy (Paper)

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

port: -1 wyłącza nasłuchiwanie na backendzie, więc głosy odbiera tylko proxy. Upewnij się, że twoje backendy są dostępne wyłącznie przez proxy, inaczej ktoś mógłby wysyłać fałszywe głosy.

Druga opcja, method = "proxy", wysyła głosy z proxy na port NuVotifier każdego backendu, skonfigurowany adresem, portem i tokenem dla każdego serwera w [forwarding.proxy.<name>]. Nie ma cache głosów, więc plugin messaging zwykle pasuje lepiej.

Krok 5: wpisz dane i wyślij testowy głos

  1. Najpierw przetestuj lokalnie: /testvote Steve serviceName=BestMCServerList na Paper albo /ptestvote z tymi samymi argumentami na proxy. Jeśli plugin nagród zareaguje, wnętrze działa.
  2. Na BestMCServerList otwórz swój serwer w panelu i przejdź do Votifier. Wpisz publiczny adres serwera lub proxy, port oraz token (v2) albo klucz publiczny (v1), a potem zapisz.
  3. Naciśnij Wyślij testowy głos. Wysyłamy głos dla TestVote, który nie liczy się do rankingu, a dziennik dostarczeń w ciągu kilku sekund pokazuje, czy dotarł.

Głosy z BestMCServerList mają nazwę usługi BestMCServerList. Gracze Bedrock, którzy wchodzą przez Geyser i Floodgate, głosują nickiem z prefiksem, np. .Steve, i ten nick trafia do NuVotifier bez zmian. Każdy nick Minecrafta może zagłosować raz na serwer w ciągu dnia kalendarzowego, liczonego według czasu Europe/Berlin.

Twojego serwera jeszcze nie ma na liście? Najpierw dodaj serwer, potem wróć do tego kroku.

Częste błędy i rozwiązania

ProblemCo sprawdzić
Połączenie odrzuconeNuVotifier nie działa albo nasłuchuje na innym porcie. Porównaj port w konfiguracji z tym, co wpisałeś.
Przekroczony czasFirewall albo hosting blokuje ruch. Otwórz port dla TCP albo poproś hosting o dodatkowy port.
Test dociera, gracze nic nie dostająBrak pluginu nagród. Konsola zapisuje A vote was received, but you don't have any listeners available to listen for it.
Głos odrzucony przy v2Token się nie zgadza. Skopiuj tokens.default jeszcze raz, bez spacji i cudzysłowów.
Działa na proxy, nie na backendzieBackend nie ma ustawionego pluginMessaging albo nazwy kanałów się różnią.
Wpisany zły portZamiast NuVotifier odpowiada port Minecrafta. Użyj portu Votifier.

Gdy głosy już docierają, ustaw nagrody: nasz poradnik o nagrodach za głosowanie z VotingPlugin omawia nazwę usługi, VoteSites.yml i dzienne limity. Szerszy obraz znajdziesz w poradniku, jak zdobyć graczy na nowy serwer.

Najczęstsze pytania

Jakiego portu używa NuVotifier?

Domyślnie portu 8192. Możesz go zmienić w konfiguracji, ale musi to być port inny niż port Minecrafta i dostępny z internetu przez TCP.

Gdzie znajdę token NuVotifier?

W plugins/Votifier/config.yml pod tokens → default. Konsola wypisuje go też przy pierwszym starcie.

Czy potrzebuję NuVotifier na każdym serwerze w sieci?

Przy plugin messaging tak: na proxy, żeby odbierać głosy, i na każdym backendzie z forwarding.method: pluginMessaging oraz port: -1, żeby przekazać je pluginowi nagród.

Wybrać v1 czy v2?

Użyj v2 z tokenem, gdy lista to obsługuje. v1 z kluczem publicznym RSA istnieje dla starszych konfiguracji. BestMCServerList obsługuje oba.

Czy NuVotifier sam daje nagrody?

Nie. Tylko odbiera głosy. Musi ich nasłuchiwać plugin nagród, np. VotingPlugin.

Źródła

Sprawdzone w oficjalnej dokumentacji: