Beállítás: Vezérlőpult → Szerver szerkesztése → Szavazati jutalmak (és Minecraft részletek a Votifierhez).
01
Hogyan működik
1
A játékos megnyitja a szavazólinkedet, lehetőleg ?p=USERNAME paraméterrel, hogy az űrlap előre ki legyen töltve.
2
Beküldi a szavazatot. 24 órás cooldown van IP-nként (és bejelentkezett fiókonként). Ha vannak jutalmak, a felhasználónév / paraméter kötelező.
3
Értesítjük a jutalmazó rendszereidet: HTTP GET a postback URL-re és/vagy Votifier csomag a Minecraft hostodra — ugyanazzal a paraméterrel és a szavazó IP-jével.
4
Te adod a jutalmat. A te oldaladon történt kézbesítési hibák itt naplózódnak, de a szavazatot nem törlik.
Válassz módszert
HTTP Postback
Weboldalakhoz, launcherekhez és nem Minecraft játékokhoz a legjobb. Minecraftnál opcionális alternatíva a Votifier mellett (vagy kiegészítés, ha weboldalon is jutalmazol).
Minecraftnál először a Votifiert használd. Az HTTP postback opcionális (vagy kiegészítő). Minden bekapcsolt csatorna a szavazat után egymástól függetlenül fut.
Gyors kezdés
1Jelentkezz be, és nyisd meg a vezérlőpultot.
2Szerkeszd a jóváhagyott szerverbejegyzésedet.
3Állíts be Postback URL-t és/vagy kapcsold be a Votifiert a Minecraft részleteknél.
4Másold ki az incentive szavazólinket a szerkesztő űrlapról (a végén ?p=USERNAME van).
5Tedd ki a linket a weboldaladra vagy Discordra; játékosonként cseréld a USERNAME részt.
6Adj le egy tesztszavazatot, és ellenőrizd, hogy megérkezik-e a jutalom.
02
Postback PHP
Sikeres szavazat után meghívjuk az URL-edet a játékos paraméterével és az IP-jével. A szkripted megjelöli, hogy az a fiók szavazott, és pontot vagy tárgyat ad.
Whitelisteld ennek a weboldalnak a nyilvános kimenő IP-jét a tűzfaladon és a postback szkriptedben. Minden más forrást utasíts el. HTTPS-t részesíts előnyben.
Ha a postbackedet p_resp=Razor értékkel hívjuk, a Razor játékos szavazott. Az ip érték az a cím, amellyel ezen a listán szavazott.
Mit tegyen a szkripted
Ellenőrizd, hogy a kérés ennek a listának a nyilvános IP-jéről jön.
Tisztítsd a p_resp és ip értékeket (soha ne bízz a nyers bemenetben).
Erősítsd meg, hogy a fiók / karakter létezik az adatbázisodban.
Alkalmazz saját jutalom-cooldownot, ha a 24 óránál szigorúbb szabály kell.
Adj pontot, érmét vagy tárgyat; naplózd az eseményt; válaszolj HTTP 200-zal.
postback.php példa
Ezt a jutalomweboldaladon hosztold, nem feltétlenül ezen a szavazólistán. Élesítés előtt állítsd a VOTE_LIST_IP-t ennek a weboldalnak a kimenő nyilvános IP-jére.
<?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
A szavazatot közvetlenül a Minecraft szerveredre tudjuk küldeni. Egy listener plugin futtatja a jutalomparancsaidat.
Tűzfal: engedd be a bejövő TCP-t ennek a weboldalnak a nyilvános IP-jéről a Votifier portodra (alapértelmezés 8192). Ha lehet, ne tedd ki a portot az egész internetnek.
1
A játékos megadja a Minecraft nickjét a szavazóoldalunkon (vagy ?p=Steve linkkel érkezik).
2
A szavazat sikeres ezen a listán.
3
Csatlakozunk a Votifier hostodhoz/portodhoz, és kézbesítjük a szavazatcsomagot.
4
A listenered crate-eket, kulcsokat, pénzt stb. ad.
Kapcsold be a Votifiert a Minecraft részleteknél, válassz NuVotifier v2-t vagy Classicot, majd add meg a hostot, a portot és a tokent vagy az RSA nyilvános kulcsot.
Telepíts NuVotifiert (classic RSA és v2 protokoll) vagy classic Votifiert, plusz egy listenert a Minecraft verziódhoz (GAListener, SuperbVote vagy saját listener).
Classic / v1: illeszd be a teljes public.key fájlt. A host és a port a config.yml-ből jön. Amíg összekötöd ezt a listát, tartsd a debug: true értéket, aztán kapcsold ki.
host: YOUR_PUBLIC_IP
port: 8192
debug: true
A csomagok így azonosítják ezt a listát: JoinGameServers
04
NuVotifier v2
A v2 protokoll az RSA helyett megosztott tokent és egyszeri challenge-et használ. Rendelj tokent ehhez a lista szolgáltatásnevéhez, vagy használd az alapértelmezett tokent.
A greetingben nincs challenge — használd a Classicot, vagy frissítsd a NuVotifiert és kapcsold be a v2-t.
Érvénytelen aláírás / ismeretlen szolgáltatás
Rossz token, vagy a szolgáltatásnév nincs leképezve. Add hozzá a lista szolgáltatásnevét, vagy használd az alapértelmezettet.
Kapcsolódás sikertelen / időtúllépés
Rossz host/port, a Votifier offline, vagy a tűzfal blokkolja a lista IP-jét.
Nincs válasz
Proxy/plugin zavar; kapcsold be a NuVotifier debugot, és próbáld újra.
05
Teszt checklist
Mentsd el a bejegyzés beállításait validációs hiba nélkül.
Nyiss meg egy incentive linket — a felhasználónév mezőnek előre ki kell töltődnie a ?p= paraméterből.
Adj le egy szavazatot. A siker állapotot kell látnod. A 24 órán belüli második szavazatot blokkolni kell.
Ellenőrizd a postbacket: kapcsold be a DEBUG-ot a fogadóban; erősítsd meg, hogy a p_resp és az ip megérkezik.
Ellenőrizd a Votifiert: debug true mellett a Minecraft konzolon meg kell jelennie a bejövő szavazatnak a nickeddel és a lista szolgáltatásnevével.
Erősítsd meg a játékon belüli vagy weboldalas jutalmat. Ha nincs, javítsd a listenert — a listán a szavazat ettől még megmarad.
A kézbesítési kísérletek a vote_reward_logs-ban vannak (ok / fail / skipped). A sikertelen callback soha nem vonja vissza a szavazatot erről a listáról.
06
GYIK és hibaelhárítás
Nem. Vendégként is lehet szavazni. A bejelentkezett fiókok ugyanazokat a 24 órás cooldown szabályokat kapják a visszaélések megelőzésére.
Ha beállítottál postback URL-t vagy Votifiert, kell egy paraméter, hogy tudjuk, kit jutalmazz. Jutalmak nélkül a felhasználónév opcionális marad.
Igen. Mindkettő sikeres szavazat után fut. A hibák egymástól függetlenek.
Nyilvános http(s) URL-nek kell lennie. Localhost, .local, privát IP-k (pl. 10.*, 192.168.*) és beágyazott bejelentkezési adatokat tartalmazó URL-ek blokkolva vannak.
Ellenőrizd, hogy a szavazat sikeres volt-e ezen a listán. Nézd a postback naplókat vagy a NuVotifier debug kimenetét. Ellenőrizd a tűzfal allowlistet, és hogy a nick egyezik-e a játékbeli fiókkal. A lista cooldownja 24 óra; a saját jutalom-cooldownod ettől eltérhet.
Csak A–Z, a–z, 0–9, _ és -. Minden más kiszűrve. A paraméterek legyenek ≤ 32 karakteresek.
App telepítéseAdd a JoinGameServers-t a kezdőképernyőhöz a gyors eléréshez.