Récompenser les votes de vos joueurs

Trois façons de relier CraftRank à votre serveur. Choisissez celle qui correspond à votre plugin : elles peuvent aussi être combinées.

1. Votifier (NuVotifier)

Installez NuVotifier sur votre serveur (ou sur votre proxy BungeeCord / Velocity), puis votre plugin de récompense préféré. Dans le formulaire de votre serveur, section « Récompenses de vote » :

  • Hôte : l'adresse publique de votre serveur (sans http://).
  • Port : le port de NuVotifier (8192 par défaut), ouvert chez votre hébergeur.
  • Token : plugins/Votifier/config.yml → tokens: default: (protocole v2, recommandé).
  • Ou clé publique : plugins/Votifier/rsa/public.key pour l'ancien Votifier ou un forwarder qui ne gère que le protocole v1.

Le protocole est choisi automatiquement : v2 avec le token si votre serveur le propose, sinon v1 avec la clé publique. Le bouton « Envoyer un vote de test » vérifie tout en un clic. Les joueurs Bedrock (Geyser / Floodgate) sont transmis avec leur pseudo, point compris.

2. API HTTP

Créez une clé API dans le formulaire de votre serveur. Gardez-la secrète : utilisez-la uniquement depuis votre serveur, jamais dans une page web. La clé peut être passée en paramètre key ou dans l'en-tête Authorization: Bearer.

A-t-il voté ?

GET https://craftrank.fr/api/v1/vote/check?key=VOTRE_CLE&username=Steve

{ "voted": true, "claimed": false, "voted_at": 1759480000000, "next_vote_at": 1759566400000 }

Donner la récompense une seule fois

Renvoie claimed: true une seule fois par vote : vous ne pouvez pas récompenser deux fois le même vote.

GET https://craftrank.fr/api/v1/vote/claim?key=VOTRE_CLE&username=Steve

{ "claimed": true }                              ← donnez la récompense
{ "claimed": false, "reason": "already_claimed" } ← déjà récompensé
{ "claimed": false, "reason": "no_vote" }         ← pas de vote depuis 24 h

Derniers votes (pour un plugin qui interroge régulièrement)

GET https://craftrank.fr/api/v1/votes?key=VOTRE_CLE&since=1759480000000

{ "votes": [ { "username": "Steve", "timestamp": 1759480123000, "claimed": false } ], "now": 1759480200000 }

Exemple Skript

command /voterecompense:
  trigger:
    set {_r} to text from "https://craftrank.fr/api/v1/vote/claim?key=VOTRE_CLE&username=%player%"
    if {_r} contains """claimed"":true":
      give player 1 diamond
      send "&aMerci pour ton vote !"
    else if {_r} contains "already_claimed":
      send "&eRécompense déjà récupérée, reviens demain !"
    else:
      send "&cVote sur craftrank.fr puis refais /voterecompense"

Il faut un addon Skript capable de faire des requêtes HTTP : adaptez la ligne « set {_r} » à la syntaxe de votre addon.

Limite : 300 requêtes par minute. Un vote compte pendant 24 h, comme sur le site.

3. Webhook

Indiquez une URL dans le formulaire de votre serveur : à chaque vote, CraftRank l'appelle en POST avec ce contenu JSON :

POST https://monserveur.fr/craftrank-vote
Content-Type: application/json
X-CraftRank-Signature: sha256=…

{ "event": "vote", "server": { "id": 12, "slug": "mon-serveur", "name": "Mon serveur" }, "username": "Steve", "timestamp": 1759480123000 }

Vérifiez la signature pour être sûr que l'appel vient bien de CraftRank : c'est le HMAC-SHA256 du corps brut, avec votre clé API.

// Node.js
const sig = 'sha256=' + crypto.createHmac('sha256', CLE_API).update(rawBody).digest('hex');
if (!crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(req.get('X-CraftRank-Signature') || ''))) return res.sendStatus(401);

// PHP
$sig = 'sha256=' . hash_hmac('sha256', file_get_contents('php://input'), CLE_API);
if (!hash_equals($sig, $_SERVER['HTTP_X_CRAFTRANK_SIGNATURE'] ?? '')) { http_response_code(401); exit; }

Répondez avec un code 2xx en moins de 8 secondes (les redirections sont suivies). Le vote de test du formulaire envoie aussi un appel avec "event": "test". Le résultat du dernier appel est affiché sous le champ du webhook.

Afficher les votes dans un salon Discord

Collez directement l'URL d'un webhook Discord (Paramètres du salon → Intégrations → Webhooks → Nouveau webhook → Copier l'URL) : CraftRank poste un message dans le salon à chaque vote, avec le pseudo du joueur et le nombre de votes du mois. Rien à programmer.

Ajouter mon serveur