Comment Votifier livre un vote
- Un joueur vote pour ton serveur sur une liste.
- La liste ouvre une connexion TCP vers ton serveur sur le port Votifier et envoie le pseudo du joueur, son propre nom de service, une adresse et un horodatage.
- NuVotifier vérifie le message (clé RSA pour la v1, token pour la v2) et déclenche un événement de vote.
- Un plugin de récompenses comme VotingPlugin écoute cet événement et donne la récompense.
NuVotifier lui-même ne donne rien. Il est livré sans listener, il te faut donc toujours un deuxième plugin pour les récompenses.
Étape 1 : installer NuVotifier sur Paper ou Spigot
Mets le JAR de NuVotifier dans le dossier plugins et démarre le serveur une fois. Il crée sa config, une paire de clés RSA et un token. La console affiche le token au premier démarrage : 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:voteshostest l’adresse sur laquelle NuVotifier écoute. Par défaut, il prend l’IP configurée pour ton serveur, ou0.0.0.0pour toutes les interfaces.portest le port Votifier,8192par défaut. Ce ne doit pas être le port Minecraft.tokens.defaultest utilisé pour toutes les listes, sauf si tu ajoutes un token sous le nom de service d’une liste.- Les clés pour la v1 sont créées dans
plugins/Votifier/rsa/sous les nomspublic.keyetprivate.key.
Étape 2 : rendre le port joignable
Les listes se connectent depuis internet, le port Votifier doit donc être ouvert aux connexions TCP entrantes. C’est là que la plupart des installations échouent.
- Hébergement mutualisé : beaucoup de panels n’ouvrent que le port du jeu. Ajoute un port supplémentaire dans le panel et mets exactement ce numéro dans
port. Certains hébergeurs attribuent le numéro pour toi. - VPS ou serveur dédié : autorise le port dans le pare-feu, par exemple
ufw allow 8192/tcp. - À la maison : redirige le port dans ta box vers la machine qui fait tourner le serveur.
Redémarre le serveur après avoir modifié la config. NuVotifier a aussi /nvreload, qui se lance depuis la console.
Étape 3 : choisir la v1 (clé publique) ou la v2 (token)
| Protocole v1 | Protocole v2 | |
|---|---|---|
| Secret | Paire de clés RSA | Token partagé |
| Ce dont la liste a besoin | Le contenu de rsa/public.key | Le token de tokens.default |
| Compatibilité | Votifier classique ; la plupart des listes le parlent | NuVotifier et les listes qui le gèrent |
Ne donne jamais private.key à personne. Si une liste gère la v2, le token est le choix le plus simple : une ligne, pas de fichier de clé. BestMCServerList gère les deux, choisis donc ce que tu préfères sur ta page Votifier.
Garde disable-v1-protocol: false sur un serveur seul. NuVotifier prévient lui-même que beaucoup de listes ne parlent que la v1.
Étape 4 : réseaux Velocity ou BungeeCord
Sur un réseau, la liste se connecte au proxy. NuVotifier tourne sur le proxy et transmet les votes aux serveurs backend où se trouve le plugin de récompenses. Le wiki de NuVotifier recommande le plugin messaging pour la plupart des réseaux.
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"Sur BungeeCord, les mêmes clés se trouvent dans plugins/NuVotifier/config.yml au format YAML. cache = "file" garde les votes des joueurs hors ligne et les livre plus tard.
Chaque serveur backend (Paper)
port: -1
forwarding:
method: pluginMessaging
pluginMessaging:
channel: nuvotifier:votesport: -1 désactive le listener sur le backend, pour que seul le proxy reçoive les votes. Assure-toi que tes backends ne sont joignables que via le proxy, sinon quelqu’un pourrait envoyer de faux votes.
L’autre option, method = "proxy", envoie les votes du proxy vers un port NuVotifier sur chaque backend, configuré avec adresse, port et token par serveur sous [forwarding.proxy.<name>]. Elle n’a pas de cache de votes, le plugin messaging convient donc mieux en général.
Étape 5 : saisir les infos et envoyer un vote de test
- Teste d’abord en local :
/testvote Steve serviceName=BestMCServerListsur Paper, ou/ptestvoteavec les mêmes arguments sur le proxy. Si ton plugin de récompenses réagit, la partie interne fonctionne. - Sur BestMCServerList, ouvre ton serveur dans le tableau de bord et va dans Votifier. Saisis l’adresse publique du serveur ou du proxy, le port et le token (v2) ou la clé publique (v1), puis enregistre.
- Clique sur Envoyer un vote de test. Nous envoyons un vote pour
TestVotequi ne compte pas pour le classement, et le journal de livraison montre en quelques secondes s’il est arrivé.
Les votes de BestMCServerList portent le nom de service BestMCServerList. Les joueurs Bedrock qui rejoignent via Geyser et Floodgate votent avec leur pseudo préfixé, par exemple .Steve, et le pseudo arrive tel quel à NuVotifier. Chaque pseudo Minecraft peut voter une fois par serveur et par jour calendaire, à l’heure de Europe/Berlin.
Pas encore inscrit ? Ajoute ton serveur d’abord, puis reviens à cette étape.
Erreurs fréquentes et solutions
| Problème | Ce qu’il faut vérifier |
|---|---|
| Connexion refusée | NuVotifier ne tourne pas ou écoute sur un autre port. Compare le port de la config avec ce que tu as saisi. |
| Délai dépassé | Un pare-feu ou l’hébergeur bloque le trafic. Ouvre le port en TCP ou demande un port supplémentaire à l’hébergeur. |
| Le test arrive, les joueurs ne reçoivent rien | Pas de plugin de récompenses. La console affiche A vote was received, but you don't have any listeners available to listen for it. |
| Vote refusé en v2 | Le token ne correspond pas. Recopie tokens.default, sans espaces ni guillemets. |
| Marche sur le proxy, pas sur le backend | Le backend n’est pas réglé sur pluginMessaging, ou les noms de canal sont différents. |
| Mauvais port saisi | C’est le port Minecraft qui répond à la place de NuVotifier. Utilise le port Votifier. |
Une fois que les votes arrivent, configure les récompenses : notre guide sur les récompenses de vote avec VotingPlugin couvre le nom de service, VoteSites.yml et les limites quotidiennes. Pour une vue d’ensemble, lis comment trouver des joueurs pour un nouveau serveur.