Zum Inhalt springen

NuVotifier einrichten auf Paper, Velocity und BungeeCord

NuVotifier sitzt zwischen Serverliste und Belohnungs-Plugin: Die Liste verbindet sich bei jedem Vote damit, und NuVotifier reicht den Vote an das Plugin weiter, das die Belohnung verteilt. Diese Anleitung richtet es auf einem einzelnen Paper-Server und in einem Netzwerk mit Velocity oder BungeeCord ein und prüft am Ende alles mit einem Testvote.

Aktualisiert:

So kommt ein Vote bei deinem Server an

  1. Ein Spieler votet auf einer Liste für deinen Server.
  2. Die Liste baut eine TCP-Verbindung zu deinem Votifier-Port auf und schickt Spielername, ihren eigenen Dienstnamen, eine Adresse und einen Zeitstempel.
  3. NuVotifier prüft die Nachricht (RSA-Schlüssel bei v1, Token bei v2) und löst ein Vote-Ereignis aus.
  4. Ein Belohnungs-Plugin wie VotingPlugin hört auf dieses Ereignis und verteilt die Belohnung.

NuVotifier selbst verteilt nichts. Es bringt keinen eigenen Listener mit, du brauchst also immer ein zweites Plugin für die Belohnungen.

Schritt 1: NuVotifier auf Paper oder Spigot installieren

Leg die NuVotifier-JAR in den Ordner plugins und starte den Server einmal. Dabei entstehen die Config, ein RSA-Schlüsselpaar und ein Token. Beim ersten Start steht der Token in der Konsole: Your default NuVotifier token is ….

plugins/Votifier/config.yml
host: 0.0.0.0
port: 8192
disable-v1-protocol: false
tokens:
  default: <erzeugter Token>
forwarding:
  method: none
  pluginMessaging:
    channel: nuvotifier:votes
  • host ist die Adresse, auf der NuVotifier lauscht. Standardmäßig nimmt es die IP, für die dein Server konfiguriert ist, sonst 0.0.0.0 für alle Schnittstellen.
  • port ist der Votifier-Port, standardmäßig 8192. Er darf nicht der Minecraft-Port sein.
  • tokens.default gilt für jede Liste, solange du keinen eigenen Token unter dem Dienstnamen einer Liste einträgst.
  • Die Schlüssel für v1 liegen in plugins/Votifier/rsa/ als public.key und private.key.

Schritt 2: Den Port erreichbar machen

Listen verbinden sich aus dem Internet, also muss der Votifier-Port für eingehende TCP-Verbindungen offen sein. Genau hier scheitern die meisten Einrichtungen.

  • Gameserver-Hoster: Viele Panels geben nur den Spielport frei. Leg im Panel einen zusätzlichen Port an und trag genau diese Nummer bei port ein. Manche Hoster vergeben die Nummer selbst.
  • Eigener VPS oder Root-Server: Gib den Port in der Firewall frei, zum Beispiel mit ufw allow 8192/tcp.
  • Zu Hause: Leite den Port im Router an den Rechner weiter, auf dem der Server läuft.

Starte den Server nach Änderungen an der Config neu. NuVotifier hat außerdem /nvreload, das du in der Konsole ausführst.

Schritt 3: v1 (Public Key) oder v2 (Token) wählen

Protokoll v1Protokoll v2
GeheimnisRSA-SchlüsselpaarGemeinsamer Token
Was die Liste brauchtInhalt von rsa/public.keyDen Token aus tokens.default
UnterstützungKlassisches Votifier, die meisten ListenNuVotifier und Listen, die es unterstützen

Gib private.key nie weiter. Unterstützt eine Liste v2, ist der Token die einfachere Wahl: eine Zeile, keine Schlüsseldatei. BestMCServerList kann beides, du entscheidest auf deiner Votifier-Seite.

Lass disable-v1-protocol: false auf einem einzelnen Server stehen. NuVotifier weist selbst darauf hin, dass viele Listen nur v1 sprechen.

Schritt 4: Votifier mit Velocity oder BungeeCord

Im Netzwerk verbindet sich die Liste mit dem Proxy. NuVotifier läuft auf dem Proxy und leitet die Votes an die Backend-Server weiter, auf denen das Belohnungs-Plugin läuft. Das NuVotifier-Wiki empfiehlt für die meisten Netzwerke Plugin Messaging.

Proxy (Velocity)

plugins/nuvotifier/config.toml
host = "0.0.0.0"
port = 8192
disable-v1-protocol = false

[tokens]
default = "<erzeugter Token>"

[forwarding]
method = "pluginMessaging"

[forwarding.pluginMessaging]
channel = "nuvotifier:votes"
cache = "file"

Bei BungeeCord stehen dieselben Schlüssel in YAML-Form in plugins/NuVotifier/config.yml. Mit cache = "file" merkt sich NuVotifier Votes von Spielern, die gerade offline sind, und liefert sie später nach.

Jeder Backend-Server (Paper)

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

Mit port: -1 lauscht das Backend nicht selbst, Votes kommen nur über den Proxy. Sorg dafür, dass deine Backends nur über den Proxy erreichbar sind, sonst könnte jemand gefälschte Votes schicken.

Die Alternative method = "proxy" schickt Votes vom Proxy an einen eigenen NuVotifier-Port auf jedem Backend, eingetragen mit Adresse, Port und Token pro Server unter [forwarding.proxy.<name>]. Einen Vote-Cache gibt es dabei nicht, deshalb passt Plugin Messaging meist besser.

Schritt 5: Daten eintragen und Testvote senden

  1. Teste zuerst lokal: /testvote Steve serviceName=BestMCServerList auf Paper oder /ptestvote mit denselben Angaben auf dem Proxy. Reagiert dein Belohnungs-Plugin, funktioniert die Innenseite.
  2. Öffne bei BestMCServerList im Dashboard deinen Server und dort Votifier. Trag die öffentliche Adresse von Server oder Proxy, den Port und den Token (v2) oder Public Key (v1) ein und speichere.
  3. Drück Testvote senden. Wir schicken einen Vote für TestVote, der nicht fürs Ranking zählt, und das Zustell-Protokoll zeigt nach wenigen Sekunden, ob er angekommen ist.

Votes von BestMCServerList tragen den Dienstnamen BestMCServerList. Bedrock-Spieler, die über Geyser und Floodgate spielen, voten mit ihrem Namen samt Präfix, zum Beispiel .Steve, und der Name kommt unverändert bei NuVotifier an. Jeder Minecraft-Name kann pro Server einmal pro Kalendertag voten, gezählt nach deutscher Zeit (Europe/Berlin).

Noch nicht eingetragen? Trag deinen Server zuerst ein und mach danach mit diesem Schritt weiter.

Häufige Fehler und Lösungen

ProblemWas du prüfen solltest
Verbindung abgelehntNuVotifier läuft nicht oder lauscht auf einem anderen Port. Vergleich den Port in der Config mit deinem Eintrag.
ZeitüberschreitungEine Firewall oder der Hoster verwirft den Verkehr. Gib den Port für TCP frei oder frag nach einem zusätzlichen Port.
Testvote kommt an, Spieler bekommen nichtsKein Belohnungs-Plugin. Die Konsole meldet A vote was received, but you don't have any listeners available to listen for it.
Vote mit v2 abgelehntDer Token passt nicht. Kopier tokens.default erneut, ohne Leerzeichen oder Anführungszeichen.
Klappt auf dem Proxy, nicht auf dem BackendDas Backend steht nicht auf pluginMessaging, oder die Kanalnamen unterscheiden sich.
Falscher Port eingetragenStatt NuVotifier antwortet der Minecraft-Port. Trag den Votifier-Port ein.

Sobald Votes ankommen, richtest du die Belohnungen ein: Die Anleitung zu Vote-Belohnungen mit VotingPlugin erklärt den Dienstnamen, die VoteSites.yml und tägliche Limits. Das große Ganze steht in Spieler für einen neuen Server finden.

Häufige Fragen

Welchen Port nutzt NuVotifier?

Standardmäßig 8192. Du kannst ihn in der Config ändern, aber er muss ein eigener Port neben dem Minecraft-Port sein und aus dem Internet per TCP erreichbar.

Wo finde ich den NuVotifier-Token?

In plugins/Votifier/config.yml unter tokens → default. Beim ersten Start steht er außerdem in der Konsole.

Brauche ich NuVotifier auf jedem Server im Netzwerk?

Mit Plugin Messaging ja: auf dem Proxy, der die Votes empfängt, und auf jedem Backend mit forwarding.method: pluginMessaging und port: -1, damit das Belohnungs-Plugin sie bekommt.

Soll ich v1 oder v2 nehmen?

Nimm v2 mit Token, wenn die Liste es unterstützt. v1 mit dem RSA-Public-Key gibt es für ältere Setups. BestMCServerList unterstützt beides.

Verteilt NuVotifier selbst Belohnungen?

Nein. Es empfängt nur Votes. Ein Belohnungs-Plugin wie VotingPlugin muss darauf hören.

Quellen

Geprüft mit der offiziellen Dokumentation: