Configuration : Tableau de bord → Modifier le serveur → Récompenses de vote (et Détails Minecraft pour Votifier).
01
Fonctionnement
1
Le joueur ouvre ton lien de vote, idéalement avec ?p=USERNAME pour préremplir le formulaire.
2
Il envoie son vote. Nous appliquons un délai de 24 h par IP (et par compte connecté). Si des récompenses sont configurées, le nom d'utilisateur / paramètre est obligatoire.
3
Nous notifions tes systèmes de récompense : requête HTTP GET vers ton URL de postback et/ou paquet Votifier vers ton hôte Minecraft — avec le même paramètre et l'IP du votant.
4
Tu accordes la récompense. Les échecs de livraison de ton côté sont journalisés ici mais ne suppriment pas le vote.
Choisir une méthode
Postback HTTP
Idéal pour les sites web, launchers et jeux hors Minecraft. Pour Minecraft, alternative optionnelle à Votifier (ou en complément si tu récompenses aussi sur un site).
Pour Minecraft, privilégie Votifier. Le postback HTTP est optionnel (ou additionnel). Chaque canal activé fonctionne indépendamment après le vote.
Démarrage rapide
1Connecte-toi et ouvre le tableau de bord.
2Modifie ta fiche de serveur approuvée.
3Définis une URL de postback et/ou active Votifier dans Détails Minecraft.
4Copie le lien de vote incitatif depuis le formulaire (se termine par ?p=USERNAME).
5Place ce lien sur ton site ou Discord ; remplace USERNAME pour chaque joueur.
6Effectue un vote test et vérifie que les récompenses arrivent.
02
Postback PHP
Après un vote réussi, nous appelons ton URL avec le paramètre joueur et son IP. Ton script marque le compte comme ayant voté et accorde points ou objets.
Autorise l'IP publique sortante de ce site dans ton firewall et ton script de postback. Rejette toute autre source. Privilégie HTTPS.
1. Définir ton URL de postback
Tableau de bord → Modifier le serveur → Récompenses de vote → URL de postback.
https://YOURDOMAIN/postback.php
Le nom du fichier est libre — utilise le chemin que tu préfères.
Seules les URL http/https publiques sont acceptées. Localhost, IP LAN privées et identifiants dans l'URL sont rejetés (protection SSRF).
Nous suivons un petit nombre de redirections et expirons au bout de quelques secondes pour garder le vote rapide.
2. Construire des liens de vote incitatifs
Ajoute un paramètre pour identifier chaque joueur à l'arrivée sur la page de vote.
/GAME/server/SLUG/vote?p=PARAMETER
Élément
Règles
PARAMETER / p_resp
Lettres, chiffres, _, - uniquement · 32 caractères max · pseudo, ID de compte ou tout identifiant suivi
ip
IPv4 ou IPv6 du votant telle que vue par cette liste (compatible proxy si activé)
Paramètre de préremplissage
?p= ou ?username=
3. Ce que nous appelons après un vote
Uniquement en cas de succès. Si le joueur n'a pas effectué un vote valide, aucune requête n'est envoyée.
Héberge ce script sur ton site de récompenses, pas forcément sur cette liste de votes. Définis VOTE_LIST_IP avec l'IP publique sortante de ce site avant la mise en production.
<?php
/**
* Example vote postback receiver for YOUR game website / CMS.
*
* Configure this URL on your listing under Dashboard → Edit server → Vote Rewards.
* This list will call it ONLY after a successful vote:
*
* https://yoursite.com/postback.php?p_resp=PARAMETER&ip=USERIP
*
* PARAMETER is the username / account id the player entered on the vote form
* (or the value from ?p= on your incentive voting link).
*
* Docs: /voting-check
*/
define('DEBUG', 0); // set to 1 to write _postback.log
define('LOG_FILE', __DIR__ . '/_postback.log');
/**
* Only accept callbacks from the vote list's public IP.
* Leave empty to skip the allowlist (not recommended in production).
*
* Example: define('VOTE_LIST_IP', '203.0.113.10');
*/
define('VOTE_LIST_IP', '');
$ipRequest = $_SERVER['HTTP_CF_CONNECTING_IP']
?? (isset($_SERVER['HTTP_X_FORWARDED_FOR'])
? trim(explode(',', (string) $_SERVER['HTTP_X_FORWARDED_FOR'])[0])
: null)
?? $_SERVER['REMOTE_ADDR']
?? '';
$ipRequest = trim((string) $ipRequest);
if (VOTE_LIST_IP !== '' && $ipRequest !== VOTE_LIST_IP) {
if (DEBUG) {
error_log(date('[Y-m-d H:i] ') . "[Invalid] Request from {$ipRequest}" . PHP_EOL, 3, LOG_FILE);
}
http_response_code(403);
exit('Forbidden');
}
if (DEBUG) {
error_log(date('[Y-m-d H:i] ') . "[OK] Valid callback: {$ipRequest}" . PHP_EOL, 3, LOG_FILE);
}
// Clean parameters from the vote list (letters, numbers, underscore, hyphen).
$p = preg_replace('/[^A-Za-z0-9_\-]+/', '', (string) ($_GET['p_resp'] ?? '')) ?? '';
$userIp = preg_replace('/[^0-9a-fA-F:\.]+/', '', (string) ($_GET['ip'] ?? '')) ?? '';
if ($p === '') {
http_response_code(400);
exit('Missing p_resp');
}
if (DEBUG) {
error_log(date('[Y-m-d H:i] ') . "[GET] Parameters [p_resp]={$p} [ip]={$userIp}" . PHP_EOL, 3, LOG_FILE);
}
// ---------------------------------------------------------------------------
// Connect to your database, verify account $p exists, enforce your own
// cooldown if needed, then grant vote points / items to $p (voted from $userIp).
// We send p_resp + ip ONLY when that player successfully voted on the list.
// ---------------------------------------------------------------------------
http_response_code(200);
echo 'OK';
03
Minecraft Votifier
Nous pouvons transmettre le vote directement à ton serveur Minecraft. Un plugin listener exécute ensuite tes commandes de récompense.
Firewall : autorise le TCP entrant depuis l'IP publique de ce site vers ton port Votifier (8192 par défaut). N'expose pas le port à tout Internet si tu peux l'éviter.
1
Le joueur saisit son pseudo Minecraft sur notre page de vote (ou arrive via ?p=Steve).
2
Le vote est validé sur cette liste.
3
Nous nous connectons à ton hôte/port Votifier et livrons le paquet de vote.
4
Ton listener accorde caisses, clés, monnaie, etc.
Active Votifier dans Détails Minecraft, choisis NuVotifier v2 ou Classic, puis saisis hôte, port et jeton ou clé publique RSA.
Installe NuVotifier (RSA classic et protocole v2) ou Votifier classic, plus un listener pour ta version Minecraft (GAListener, SuperbVote ou listener personnalisé).
Classic / v1 : colle le fichier public.key complet. Hôte et port viennent de config.yml. Garde debug: true pendant la connexion à cette liste, puis désactive-le.
host: YOUR_PUBLIC_IP
port: 8192
debug: true
Les paquets identifient cette liste comme : JoinGameServers
04
NuVotifier v2
Le protocole v2 remplace RSA par un jeton partagé et un challenge unique. Associe un jeton au nom de service de cette liste, ou utilise le jeton par défaut.
Le greeting n'a pas de challenge — utilise Classic, ou mets à jour NuVotifier et active v2.
Signature invalide / service inconnu
Mauvais jeton, ou nom de service non associé. Ajoute le nom de service de la liste ou utilise le jeton par défaut.
Connexion échouée / timeout
Mauvais hôte/port, Votifier hors ligne, ou firewall bloquant l'IP de cette liste.
Aucune réponse
Interférence proxy/plugin ; active le debug NuVotifier et réessaie.
05
Liste de tests
Enregistrer les paramètres de la fiche sans erreur de validation.
Ouvrir un lien incitatif — le champ pseudo doit être prérempli depuis ?p=.
Effectuer un vote. L'état de succès doit s'afficher. Un second vote sous 24 h doit être bloqué.
Vérifier le postback : active DEBUG dans ton récepteur ; confirme l'arrivée de p_resp et ip.
Vérifier Votifier : avec debug activé, la console Minecraft doit afficher un vote entrant pour ton pseudo et le nom de service de cette liste.
Confirmer la récompense en jeu ou sur le site. Sinon, corrige le listener — le vote sur la liste reste comptabilisé.
Les tentatives de livraison sont enregistrées dans vote_reward_logs (ok / fail / skipped). Un callback échoué ne annule jamais le vote sur cette liste.
06
FAQ & dépannage
Non. Les visiteurs peuvent voter. Les comptes connectés partagent les mêmes règles de délai de 24 h pour prévenir les abus.
Si tu as configuré une URL de postback ou Votifier, nous avons besoin d'un paramètre pour savoir qui récompenser. Sans récompenses configurées, le pseudo reste facultatif.
Oui. Les deux s'exécutent après un vote réussi. Les échecs sont indépendants.
Elle doit être une URL http(s) publique. Localhost, .local, IP privées (ex. 10.*, 192.168.*) et URL avec identifiants intégrés sont bloquées.
Confirme que le vote a réussi sur cette liste. Vérifie tes journaux de postback ou la sortie debug NuVotifier. Contrôle la liste blanche firewall et que le pseudo correspond à un compte en jeu. Le délai de la liste est de 24 h ; ton propre délai peut différer.
Uniquement A–Z, a–z, 0–9, _ et -. Tout le reste est supprimé. Garde les paramètres ≤ 32 caractères.
Installer l’appAjoute JoinGameServers à ton écran d’accueil pour un accès rapide.