So richten Sie Vote-Belohnungen ein (Votifier, VotingPlugin und mehr)

Installieren Sie das Begleit-Plugin, richten Sie Votifier für die sofortige Zustellung ein, oder verknüpfen Sie stattdessen VotingPlugin, SuperVotes oder SuperbVote mit dieser Website - mit genau den Werten, die diese Website tatsächlich erwartet.

Jedes Belohnungs-Plugin braucht von Ihnen zwei Dinge: eine Möglichkeit zu erfahren, dass abgestimmt wurde, und etwas, das dann ausgeführt wird. Dieser Artikel geht auf beides ein - das Begleit-Plugin dieser Website, Votifier für die sofortige Zustellung, und was zu tun ist, wenn Sie bereits VotingPlugin, SuperVotes oder ein anderes Belohnungs-Plugin einsetzen.

Option A: das VoxelRank-Plugin (empfohlen)

Das Begleit-Plugin spricht direkt mit der API dieser Website. Votifier ist nicht erforderlich - es fragt in regelmäßigen Abständen nicht abgeholte Stimmen ab, funktioniert also auch hinter NAT und holt alles nach, was verpasst wurde, während der Server offline war. Votifier steht ebenfalls zur Verfügung, als optionale Ergänzung für die sofortige Zustellung (siehe Option B).

  1. Laden Sie die JAR-Datei über Ihr Übersicht-Dashboard herunter (die Karte Ihres Servers hat einen Download-Button, sobald ein Build existiert), oder direkt über /download/plugin.
  2. Legen Sie sie in plugins/ ab und starten Sie den Server einmal. Dadurch wird plugins/VotingSite/config.yml erzeugt.
  3. Öffnen Sie die Seite Bearbeiten Ihres Servers → Tab Belohnungen und Abstimmung und kopieren Sie den dort angezeigten API-Schlüssel.
  4. Fügen Sie ihn bei site.api-key in config.yml ein (prüfen Sie, dass site.url auf diese Website zeigt), und führen Sie anschließend /votingsite reload aus.
  5. Legen Sie über mode in config.yml fest, wie Stimmen bei Ihnen ankommen sollen:
    • poll (Standard) - das Plugin ruft nicht abgeholte Stimmen selbstständig ab. Es muss nichts weiter installiert werden.
    • votifier - die Website sendet jede Stimme in dem Moment, in dem sie abgegeben wird. Erfordert NuVotifier oder einen anderen Votifier-Listener (Option B unten).
    • both - Votifier-Push mit Abfrage als Absicherung, Duplikate werden anhand der Stimmen-ID herausgefiltert.
  6. Tragen Sie unter rewards.commands (und, falls gewünscht, unter milestones und vote-party) die Konsolenbefehle ein, die bei einer Stimme ausgeführt werden sollen.
  7. Testen Sie es: /votingsite testvote <player> simuliert eine Stimme, ohne auf eine echte zu warten. /votingsite status zeigt den Modus, ob der API-Schlüssel akzeptiert wird, und wie viele Stimmen bisher zugestellt wurden.

Spieler erhalten ihren Abstimmungslink und ihre Stimmenzahl über /voxelrank vote - nicht über /vote, das sich dieses Plugin bewusst niemals aneignet (zwei Plugins, die um denselben Befehl konkurrieren, sind genau der Grund, warum eine Belohnung stillschweigend ausfällt - siehe dazu den entsprechenden Hinweis in config.yml).

Option B: sofortige Zustellung mit NuVotifier

Überspringen Sie diesen Abschnitt, wenn der poll-Modus für Sie gut genug funktioniert - er ist nicht erforderlich. Fügen Sie ihn hinzu, wenn die paar Minuten Verzögerung durch die Abfrage eine Rolle spielen, oder wenn Sie lieber ein eigenständiges Belohnungs-Plugin statt des Plugins dieser Website betreiben möchten.

NuVotifier ist der aktiv gepflegte Fork des ursprünglichen Votifier - das ursprüngliche Projekt wird heute praktisch nicht mehr gepflegt, weshalb „Votifier installieren" in der Praxis NuVotifier (oder einen kompatiblen Fork wie VotifierPlus) bedeutet.

  1. Legen Sie die JAR-Datei von NuVotifier in plugins/ ab und starten Sie den Server neu. Auf einem Bukkit-/Spigot-/Paper-Server behält es aus Gründen der Abwärtskompatibilität den klassischen Ordnernamen plugins/Votifier/ - das ist der eigene Ordner von NuVotifier, kein Überbleibsel des alten Plugins - und erzeugt beim ersten Start darin eine config.yml sowie ein Schlüsselpaar im Ordner rsa/.
  2. Ihre Zugangsdaten finden Sie in plugins/Votifier/config.yml: Das v2-Token (empfohlen) wird automatisch unter dem Schlüssel default im Abschnitt tokens: erzeugt - kopieren Sie es unverändert. Falls Sie stattdessen die ältere Methode bevorzugen: Der v1-öffentliche Schlüssel liegt in plugins/Votifier/rsa/public.key; belassen Sie die zugehörige private.key im selben Ordner auf dem Server und geben Sie sie niemals weiter.
  3. Prüfen Sie den port, auf dem NuVotifier lauscht (standardmäßig 8192), und stellen Sie sicher, dass er in Ihrer Firewall oder im Hosting-Panel freigegeben ist - es handelt sich um einen eigenen Port, getrennt vom normalen Minecraft-Port, und die meisten Hoster geben ihn nicht automatisch frei.
  4. Tragen Sie auf der Seite Bearbeiten Ihres Servers → Tab Belohnungen und Abstimmung den Votifier-Host (die Adresse Ihres Servers) und diesen Port ein, und fügen Sie dann das v2-Token oder den v1-Schlüssel aus Schritt 2 ein. Sind beide ausgefüllt, wird nur eines verwendet - v2 hat Vorrang.
  5. Klicken Sie direkt in diesem Tab auf Testabstimmung senden. Dabei wird ein echtes Votifier-Paket an den Host/Port/Schlüssel/Token gesendet, der gerade im Formular steht - nichts muss vorher gespeichert werden - und es wird direkt angezeigt, ob NuVotifier es akzeptiert hat. Schlägt es fehl, zeigt das eigene Konsolenprotokoll von NuVotifier (standardmäßig debug: true), ob die Verbindung überhaupt beim Plugin angekommen ist - so lässt sich schnell zwischen „falscher Schlüssel" und „blockierter Port" unterscheiden.
  6. Speichern Sie, geben Sie dann eine echte Stimme ab und prüfen Sie, ob die Belohnung sofort ankommt statt erst bei der nächsten Abfrage.

Im Hintergrund sendet diese Website einen standardmäßigen VOTIFIER-2-Handshake mit einer HMAC-signierten JSON-Nutzlast, sofern ein v2-Token gesetzt ist, und fällt andernfalls auf einen klassischen, RSA-verschlüsselten v1-Block zurück - dasselbe Protokoll, das jeder Votifier-kompatible Listener ohnehin schon spricht, nichts Website-Spezifisches.

Nutzen Sie bereits VotingPlugin?

Wenn auf Ihrem Server bereits VotingPlugin läuft, müssen Sie unser Plugin nicht installieren - und Sie müssen diese Website auch nicht von Hand dort eintragen, denn für sie gibt es ein gepflegtes Preset in VotingPlugin.

Führen Sie im Spiel als Operator (oder mit der Berechtigung VotingPlugin.Commands.AdminVote.VotePresets) Folgendes aus:

/av VotePresets

VotingPlugin lädt die aktuelle Preset-Liste aus dem eigenen Repository VotingPlugin-Presets, lässt Sie eines auswählen - VoxelRank ist darunter - und fragt anschließend nach den Werten, die dieses Preset benötigt: Anzeigename, die Abstimmungs-URL Ihres Eintrags, Abstimmungsverzögerung und Ähnliches. Oder springen Sie mit Ihrem eigenen Abstimmungslink direkt hinein:

/av VotePresets https://voxelrank.com/server/your-slug/vote

Geben Sie das https:// mit an; VotingPlugin ordnet den Hostnamen automatisch dem richtigen Preset zu, statt dass Sie es in einer Liste suchen müssen.

So oder so wird der passende Eintrag unter VoteSites: in VoteSites.yml geschrieben oder aktualisiert - ServiceSite, VoteURL, sinnvolle Standardverzögerungen und, falls noch keins vorhanden ist, ein Platzhalter-Anzeigeobjekt oder eine Dankesnachricht - und die Abstimmungsseiten werden anschließend automatisch neu geladen. Alles andere, was bereits in der Datei steht, bleibt unangetastet. Sichern Sie VoteSites.yml vorher, falls Sie eine bestehende Einrichtung ändern statt eine neue hinzuzufügen, und prüfen Sie, was geschrieben wurde - insbesondere die Belohnungen, denn ein Preset ist ein Ausgangspunkt, keine fertige Konfiguration - bevor Sie es Ihren Spielern bewerben.

VotingPlugin benötigt weiterhin eine eigene Votifier-Verbindung, um Stimmen tatsächlich zu empfangen - richten Sie es auf dieselbe NuVotifier-Einrichtung aus Option B oben aus. Außerdem muss der Server GitHub (raw.githubusercontent.com) erreichen können, um überhaupt Presets abzurufen; meldet /av VotePresets, dass keine Presets verfügbar sind, liegt das an einem Netzwerk- oder Firewall-Problem auf dem Server, nicht an einem fehlenden Preset. Als Fallback funktioniert weiterhin /av gui oder das direkte Bearbeiten von VoteSites.yml - ServiceSite muss exakt VoxelRank.com lauten, was Sie nach einer echten oder administrativen Testabstimmung mit /av servicesites überprüfen können.

Andere Belohnungs-Plugins

Setzen Sie etwas Schlankeres als VotingPlugin ein? SuperVotes und SuperbVote sind beide leichtgewichtige Votifier-Listener mit eigenen Systemen für Vote-Party und Belohnungsbefehle. Keines von beiden verwaltet website-spezifische Presets wie VotingPlugin - richten Sie eines der beiden auf denselben Votifier-Host, -Port und das v2-Token (oder den v1-Schlüssel) vom Tab Belohnungen und Abstimmung oben aus und konfigurieren Sie dessen Belohnungen genauso wie bei jeder anderen Abstimmung.

Fehlerbehebung

  • Bei /votingsite testvote passiert nichts. Prüfen Sie zuerst /votingsite status - wird der API-Schlüssel nicht akzeptiert, haben Stimmen (echte wie Test) kein Ziel. Kopieren Sie ihn erneut von der Seite Bearbeiten und achten Sie darauf, dass kein Leerzeichen am Ende steht.
  • Der Votifier-Push kommt nie an, aber die Abfrage funktioniert. Meist ist der Votifier-Port blockiert, nicht die API - die meisten Hoster öffnen standardmäßig ausgehenden HTTP-Verkehr, aber keinen zusätzlichen beliebigen eingehenden Port. mode: both (oder der Betrieb eines separaten Listeners eines anderen Belohnungs-Plugins) ist ein sinnvoller dauerhafter Ausweg, statt sich mit der Firewall herumzuschlagen.
  • Die Belohnung wird ausgelöst, aber im Spiel passiert nichts. Belohnungsbefehle laufen über die Konsole - ein Befehl, der nur funktioniert, wenn ihn ein Spieler eingibt (keine Berechtigung, kein op), schlägt dabei stillschweigend fehl. Testen Sie den exakten Befehl zuerst über die Konsole.
  • VotingPlugin protokolliert „invalid service site" oder ordnet die Stimme nie zu. Der Wert ServiceSite muss zeichengenau übereinstimmen, Groß-/Kleinschreibung ausgenommen. Prüfen Sie ihn mit /av servicesites, statt ihn anhand des Domainnamens dieser Website zu erraten.
  • /av VotePresets meldet, dass keine Presets verfügbar sind, oder eine URL passt zu nichts. Die Preset-Liste wird zur Laufzeit von GitHub heruntergeladen - fast immer blockiert das eigene Netzwerk des Servers (Firewall, Proxy, DNS oder ein GitHub-Ausfall) den Zugriff auf raw.githubusercontent.com, das ist kein Zeichen dafür, dass VoxelRank aus der Liste entfernt wurde. Ein URL-Abgleich benötigt außerdem die vollständige Adresse inklusive https://; reine Hostnamen werden nicht erkannt.
  • Einstellungen im Tab Belohnungen und Abstimmung scheinen nicht gespeichert zu werden. Sie gelten nur für einen beanspruchten Eintrag - siehe den Filter Beansprucht in der Serverliste. Ein importierter, nicht beanspruchter Platzhalter hat noch keinen Besitzer, für den Belohnungen konfiguriert werden könnten; beanspruchen Sie ihn zuerst.

Kurz beantwortet

Brauche ich überhaupt Votifier?

Nein. Der poll-Modus (Standard beim VoxelRank-Plugin) funktioniert ohne weitere Installation - Votifier verkürzt lediglich die Verzögerung zwischen Abstimmung und Belohnung und ist der einzige Weg, wenn Sie stattdessen VotingPlugin, SuperVotes oder SuperbVote betreiben möchten.

Kann ich unser Plugin und VotingPlugin gleichzeitig verwenden?

Nicht für dieselbe Belohnung - wählen Sie eines aus, das die Belohnungsbefehle tatsächlich ausführt, sonst könnte eine Stimme doppelt ausgezahlt werden. Votifier selbst kann durchaus mehr als einen Listener benachrichtigen, es handelt sich also um die Regel „dieselbe Belohnung nicht doppelt konfigurieren", nicht um eine technische Einschränkung.

Mein Hoster erlaubt mir keine zusätzlichen Ports für Votifier.

Nutzen Sie den poll-Modus mit dem VoxelRank-Plugin. Er stellt nur ausgehende Anfragen, es gibt also nichts freizugeben. VotingPlugin und ähnliche Belohnungs-Plugins haben keinen gleichwertigen Poll-Modus - sie benötigen einen eingehenden Votifier-Port.

Brauchen Sie Hilfe?

Hängen Sie bei einem der Schritte oben fest, oder stimmt etwas nicht mit dem überein, was Ihr Server tatsächlich sendet? Kontaktieren Sie uns - die schnellsten Wege für eine Frage zu Stimmen/Belohnungen sind dort aufgeführt.