Jak Votifier dostarcza głos
- Gracz głosuje na twój serwer na liście.
- 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.
- NuVotifier sprawdza wiadomość (klucz RSA dla v1, token dla v2) i wywołuje zdarzenie głosu.
- 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 ….
host: 0.0.0.0
port: 8192
disable-v1-protocol: false
tokens:
default: <generated token>
forwarding:
method: none
pluginMessaging:
channel: nuvotifier:voteshostto adres, na którym nasłuchuje NuVotifier. Domyślnie bierze IP ustawione dla serwera albo0.0.0.0dla wszystkich interfejsów.portto port Votifier, domyślnie8192. Nie może to być port Minecrafta.tokens.defaultjest używany dla każdej listy, chyba że dodasz token pod nazwą usługi danej listy.- Klucze dla v1 powstają w
plugins/Votifier/rsa/jakopublic.keyiprivate.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ół v1 | Protokół v2 | |
|---|---|---|
| Sekret | Para kluczy RSA | Wspólny token |
| Czego potrzebuje lista | Zawartość rsa/public.key | Token z tokens.default |
| Obsługa | Klasyczny Votifier; obsługuje go większość list | NuVotifier 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)
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)
port: -1
forwarding:
method: pluginMessaging
pluginMessaging:
channel: nuvotifier:votesport: -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
- Najpierw przetestuj lokalnie:
/testvote Steve serviceName=BestMCServerListna Paper albo/ptestvotez tymi samymi argumentami na proxy. Jeśli plugin nagród zareaguje, wnętrze działa. - 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.
- 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
| Problem | Co sprawdzić |
|---|---|
| Połączenie odrzucone | NuVotifier nie działa albo nasłuchuje na innym porcie. Porównaj port w konfiguracji z tym, co wpisałeś. |
| Przekroczony czas | Firewall 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 v2 | Token się nie zgadza. Skopiuj tokens.default jeszcze raz, bez spacji i cudzysłowów. |
| Działa na proxy, nie na backendzie | Backend nie ma ustawionego pluginMessaging albo nazwy kanałów się różnią. |
| Wpisany zły port | Zamiast 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.