Oppsett: Dashboard → Rediger server → Vote Rewards (og Minecraft-detaljer for Votifier).
01
Slik fungerer det
1
Spilleren åpner stemmelenken din, ideelt med ?p=USERNAME så skjemaet er forhåndsutfylt.
2
De sender inn stemmen. Vi håndhever 24 timers cooldown per IP (og per innlogget konto). Hvis rewards er konfigurert, kreves brukernavn / parameter.
3
Vi varsler reward-systemene dine: HTTP GET til postback-URL-en og/eller en Votifier-pakke til Minecraft-hosten din — med samme parameter og stemmerens IP.
4
Du gir rewarden. Leveringsfeil på din side logges her, men fjerner ikke stemmen.
Velg en metode
HTTP Postback
Best for nettsteder, launchere og spill som ikke er Minecraft. For Minecraft er dette et valgfritt alternativ til Votifier (eller et tillegg hvis du også belønner på et nettsted).
For Minecraft: bruk Votifier først. HTTP postback er valgfritt (eller ekstra). Hver aktiverte kanal kjører uavhengig etter stemmen.
Kom raskt i gang
1Logg inn og åpne Dashboard.
2Rediger den godkjente serverlistingen din.
3Sett en Postback-URL og/eller aktiver Votifier under Minecraft-detaljer.
4Kopier incentive-stemmelenken fra redigeringsskjemaet (ender med ?p=USERNAME).
5Plasser den lenken på nettstedet eller Discord; erstatt USERNAME per spiller.
6Gi en teststemme og bekreft at rewards kommer frem.
02
Postback PHP
Etter en vellykket stemme ber vi om URL-en din med spillerparameteren og IP-en deres. Scriptet ditt markerer den kontoen som har stemt og gir poeng eller items.
Whitelist denne nettsidens offentlige utgående IP i firewall og postback-script. Avvis alle andre kilder. Foretrekk HTTPS.
1. Sett Postback-URL
Dashboard → Rediger server → Vote Rewards → Postback-URL.
https://YOURDOMAIN/postback.php
Filnavnet er valgfritt — bruk hvilken som helst sti stacken din foretrekker.
Bare offentlige http/https-URL-er godtas. Localhost, private LAN-IP-er og URL-credentials avvises (SSRF-beskyttelse).
Vi følger et lite antall redirects og timer ut etter noen sekunder, så stemming holder seg rask.
2. Bygg incentive-stemmelenker
Legg til en parameter så hver spiller identifiseres når de lander på stemmesiden.
/GAME/server/SLUG/vote?p=PARAMETER
Del
Regler
PARAMETER / p_resp
Bare bokstaver, tall, _, - · maks 32 tegn · brukernavn, konto-id eller hvilken som helst id du sporer
ip
IPv4 eller IPv6 for stemmeren slik den ses av denne listen (proxy-aware når aktivert)
Forhåndsutfyll-query
?p= eller ?username=
3. Hva vi kaller etter en stemme
Bare ved suksess. Hvis spilleren ikke fullførte en gyldig stemme, sender vi ingen forespørsel.
Når vi treffer postbacken din med p_resp=Razor, har spilleren Razor stemt. ip-verdien er adressen de brukte på denne listen.
Hva scriptet ditt bør gjøre
Verifiser at forespørselen kommer fra denne listens offentlige IP.
Saniter p_resp og ip (stol aldri på rå input).
Bekreft at kontoen / karakteren finnes i databasen din.
Bruk din egen reward-cooldown hvis du trenger noe strengere enn 24 timer.
Gi poeng, coins eller items; logg hendelsen; returner HTTP 200.
postback.php-eksempel
Host dette på reward-nettstedet ditt, ikke nødvendigvis på denne stemmelisten. Sett VOTE_LIST_IP til denne nettsidens utgående offentlige IP før du går live.
<?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
Vi kan pushe stemmen rett inn i Minecraft-serveren din. Et listener-plugin kjører deretter reward-kommandoene dine.
Firewall: tillat innkommende TCP fra denne nettsidens offentlige IP til Votifier-porten din (standard 8192). Ikke eksponer porten for hele internett hvis du kan unngå det.
1
Spilleren skriver Minecraft-brukernavnet sitt på stemmesiden vår (eller kommer via ?p=Steve).
2
Stemmen lykkes på denne listen.
3
Vi kobler til Votifier-host/port og leverer vote-pakken.
4
Listeneren din gir crates, keys, penger osv.
Aktiver Votifier under Minecraft-detaljer, velg NuVotifier v2 eller Classic, og skriv inn host, port og token eller RSA public key.
Installer NuVotifier (classic RSA og protokoll v2) eller classic Votifier, pluss en listener for Minecraft-versjonen din (GAListener, SuperbVote eller en egen listener).
Classic / v1: lim inn hele public.key-filen. Host og port kommer fra config.yml. Hold debug: true mens du kobler til denne listen, og skru det av etterpå.
host: YOUR_PUBLIC_IP
port: 8192
debug: true
Pakker identifiserer denne listen som: JoinGameServers
04
NuVotifier v2
Protokoll v2 erstatter RSA med et delt token og en engangs-challenge. Map et token til denne listens service-navn, eller bruk standard-tokenet.
Greeting har ingen challenge — bruk Classic, eller oppgrader NuVotifier og aktiver v2.
Ugyldig signatur / ukjent service
Feil token, eller service-navn ikke mappet. Legg til listens service-navn eller bruk default.
Tilkobling feilet / timeout
Feil host/port, Votifier offline, eller firewall blokkerer denne listens IP.
Ingen respons
Proxy/plugin-interferens; aktiver NuVotifier-debug og prøv igjen.
05
Test-sjekkliste
Lagre listing-innstillinger uten valideringsfeil.
Åpne en incentive-lenke — brukernavnfeltet skal forhåndsutfylles fra ?p=.
Gi én stemme. Du skal se suksess-tilstanden. En ny stemme innen 24 timer må blokkeres.
Verifiser postback: aktiver DEBUG i mottakeren; bekreft at p_resp og ip kommer frem.
Verifiser Votifier: med debug true skal Minecraft-konsollen vise en innkommende stemme for brukernavnet ditt og denne listens service-navn.
Bekreft in-game- eller site-reward. Hvis ikke, fiks listeneren — listestemmen teller fortsatt.
Leveringsforsøk lagres i vote_reward_logs (ok / fail / skipped). En mislykket callback ruller aldri tilbake stemmen på denne listen.
06
FAQ & feilsøking
Nei. Gjester kan stemme. Innloggede kontoer deler de samme 24-timers cooldown-reglene mot misbruk.
Hvis du har konfigurert en postback-URL eller Votifier, trenger vi en parameter for å fortelle deg hvem som skal belønnes. Uten rewards konfigurert forblir brukernavn valgfritt.
Ja. Begge kjører etter en vellykket stemme. Feil er uavhengige.
Den må være en offentlig http(s)-URL. Localhost, .local, private IP-er (f.eks. 10.*, 192.168.*) og URL-er med innebygde credentials blokkeres.
Bekreft at stemmen lyktes på denne listen. Sjekk postback-loggene eller NuVotifier-debug. Verifiser firewall-allowlists og at brukernavnet matcher en in-game-konto. Listens cooldown er 24 timer; din egen reward-cooldown kan være annerledes.
Bare A–Z, a–z, 0–9, _ og -. Alt annet strippes. Hold parametere ≤ 32 tegn.
Installer appenLegg til JoinGameServers på startskjermen for rask tilgang.