Instelpad: Dashboard → Server bewerken → Stemrewards (en Minecraft-details voor Votifier).
01
Hoe het werkt
1
Speler opent je stemlink, idealiter met ?p=USERNAME zodat het formulier vooraf ingevuld is.
2
Ze dienen de stem in. We hanteren een 24-uurs cooldown per IP (en per ingelogd account). Als rewards zijn ingesteld, is de gebruikersnaam / parameter verplicht.
3
We melden je reward-systemen: HTTP GET naar je postback-URL en/of een Votifier-pakket naar je Minecraft-host — met dezelfde parameter en het IP van de stemmer.
4
Jij geeft de reward. Leveringsfouten aan jouw kant worden hier gelogd maar verwijderen de stem niet.
Kies een methode
HTTP Postback
Het best voor websites, launchers en non-Minecraft games. Voor Minecraft is dit een optioneel alternatief voor Votifier (of een aanvulling als je ook op een website beloont).
Wanneer we je postback met p_resp=Razor aanroepen, heeft speler Razor gestemd. De ip-waarde is het adres dat ze op deze lijst gebruikten.
Wat je script moet doen
Verifieer dat de request van het openbare IP van deze lijst komt.
Sanitize p_resp en ip (vertrouw nooit ruwe input).
Bevestig dat het account / character in je database bestaat.
Pas je eigen reward-cooldown toe als je iets strenger nodig hebt dan 24 uur.
Geef punten, coins of items; log het event; return HTTP 200.
postback.php-voorbeeld
Host dit op je reward-site, niet per se op deze stemlijst. Zet VOTE_LIST_IP op het uitgaande openbare IP van deze website voor je live gaat.
<?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
We kunnen de stem rechtstreeks naar je Minecraft-server pushen. Een listener-plugin voert dan je reward-commando's uit.
Firewall: sta inbound TCP van het openbare IP van deze website naar je Votifier-port (standaard 8192). Exposeer de port niet aan het hele internet als je dat kunt vermijden.
1
Speler vult zijn Minecraft-gebruikersnaam in op onze stempagina (of komt via ?p=Steve).
2
Stem slaagt op deze lijst.
3
We verbinden met je Votifier-host/port en leveren het stem-pakket.
4
Je listener geeft crates, keys, geld, enz.
Schakel Votifier in onder Minecraft-details, kies NuVotifier v2 of Classic en vul host, port en token of RSA-publieke sleutel in.
Installeer NuVotifier (classic RSA en protocol v2) of classic Votifier, plus een listener voor je Minecraft-versie (GAListener, SuperbVote of een custom listener).
Classic / v1: plak het volledige public.key-bestand. Host en port komen uit config.yml. Houd debug: true aan tijdens het koppelen van deze lijst, daarna uitzetten.
host: YOUR_PUBLIC_IP
port: 8192
debug: true
Pakketten identificeren deze lijst als: JoinGameServers
04
NuVotifier v2
Protocol v2 vervangt RSA met een gedeeld token en een eenmalige challenge. Map een token naar de servicenaam van deze lijst of gebruik het standaardtoken.
Greeting heeft geen challenge — gebruik Classic of upgrade NuVotifier en schakel v2 in.
Ongeldige signature / onbekende service
Verkeerd token of servicenaam niet gemapt. Voeg de lijst-servicenaam toe of gebruik standaard.
Connect mislukt / timeout
Verkeerde host/port, Votifier offline of firewall blokkeert het IP van deze lijst.
Geen response
Proxy/plugin-interferentie; schakel NuVotifier debug in en probeer opnieuw.
05
Testchecklist
Sla listinginstellingen op zonder validatiefouten.
Open een incentive-link — het gebruikersnaamveld moet vooraf ingevuld zijn via ?p=.
Stem één keer. Je moet de successtatus zien. Een tweede stem binnen 24 uur moet geblokkeerd worden.
Verifieer postback: schakel DEBUG in je receiver in; bevestig dat p_resp en ip aankomen.
Verifieer Votifier: met debug true moet de Minecraft-console een inkomende stem voor je gebruikersnaam en de servicenaam van deze lijst tonen.
Bevestig de in-game of site-reward. Zo niet, fix de listener — de lijststem telt nog steeds.
Leveringspogingen worden vastgelegd in vote_reward_logs (ok / fail / skipped). Een mislukte callback draait de stem nooit terug op deze lijst.
06
FAQ & troubleshooting
Nee. Gasten kunnen stemmen. Ingelogde accounts delen dezelfde 24-uurs cooldown-regels tegen misbruik.
Als je een postback-URL of Votifier hebt ingesteld, hebben we een parameter nodig om te weten wie te belonen. Zonder rewards ingesteld blijft gebruikersnaam optioneel.
Ja. Beide draaien na een geslaagde stem. Fouten zijn onafhankelijk.
Het moet een openbare http(s)-URL zijn. Localhost, .local, private IP's (bv. 10.*, 192.168.*) en URL's met embedded credentials worden geblokkeerd.
Bevestig dat de stem op deze lijst slaagde. Check je postback-logs of NuVotifier debug-output. Verifieer firewall allowlists en dat de gebruikersnaam overeenkomt met een in-game account. Lijst-cooldown is 24 uur; je eigen reward-cooldown kan verschillen.
Enkel A–Z, a–z, 0–9, _ en -. Alles anders wordt gestript. Houd parameters ≤ 32 tekens.
App installerenVoeg JoinGameServers toe aan je startscherm voor snelle toegang.