Път за настройка: Табло → Редактирай сървър → Награди за гласове (и Minecraft детайли за Votifier).
01
Как работи
1
Играчът отваря връзката ти за глас, най-добре с ?p=USERNAME, за да се попълни предварително формата.
2
Изпраща гласа. Налагаме 24-часов cooldown на IP (и на влязъл акаунт). Ако са настроени награди, потребителското име / параметърът са задължителни.
3
Уведомяваме системите ти за награди: HTTP GET към postback URL и/или Votifier пакет към Minecraft хоста — със същия параметър и IP на гласувалия.
4
Ти даваш наградата. Неуспехите при доставка от твоя страна се логват тук, но не премахват гласа.
Избери метод
HTTP Postback
Най-добър за уебсайтове, лаунчъри и игри извън Minecraft. За Minecraft е опционална алтернатива на Votifier (или допълнение, ако награждаваш и в уебсайт).
Когато ударим postback-а ти с p_resp=Razor, играчът Razor е гласувал. Стойността ip е адресът, който е използвал в този списък.
Какво трябва да прави скриптът ти
Провери, че заявката идва от публичния IP на този списък.
Санитизирай p_resp и ip (никога не се доверявай на суровия вход).
Потвърди, че акаунтът / персонажът съществува в базата ти.
Приложи собствен cooldown за награди, ако ти трябва нещо по-строго от 24 часа.
Дай точки, монети или предмети; логни събитието; върни HTTP 200.
Пример postback.php
Хоствай това на сайта за награди, не задължително на този vote списък. Задай VOTE_LIST_IP на публичния изходящ IP на този сайт, преди да пуснеш на живо.
<?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
Можем да изпратим гласа директно в Minecraft сървъра ти. Listener плъгин после изпълнява командите за награда.
Firewall: разреши входящ TCP от публичния IP на този сайт към Votifier порта (по подразбиране 8192). Не излагай порта към целия интернет, ако можеш да го избегнеш.
1
Играчът въвежда Minecraft потребителското си име на нашата страница за глас (или идва чрез ?p=Steve).
2
Гласът е успешен в този списък.
3
Свързваме се към Votifier хост/порт и доставяме пакета за глас.
4
Listener-ът ти дава crates, ключове, пари и т.н.
Включи Votifier в Minecraft детайли, избери NuVotifier v2 или Classic, после въведи хост, порт и токен или RSA публичен ключ.
Инсталирай NuVotifier (classic RSA и protocol v2) или classic Votifier, плюс listener за твоята Minecraft версия (GAListener, SuperbVote или собствен listener).
Classic / v1: постави целия public.key файл. Хостът и портът идват от config.yml. Дръж debug: true, докато свързваш този списък, после го изключи.
host: YOUR_PUBLIC_IP
port: 8192
debug: true
Пакетите идентифицират този списък като: JoinGameServers
04
NuVotifier v2
Protocol v2 заменя RSA със споделен токен и еднократен challenge. Свържи токен с service името на този списък или използвай токена по подразбиране.
Greeting-ът няма challenge — използвай Classic или надгради NuVotifier и включи v2.
Невалиден подпис / непознат service
Грешен токен или service името не е мапнато. Добави service името на списъка или използвай default.
Неуспешна връзка / timeout
Грешен хост/порт, Votifier е офлайн или firewall блокира IP-то на този списък.
Няма отговор
Смущения от proxy/плъгин; включи NuVotifier debug и опитай отново.
05
Контролен списък за тест
Запази настройките на обявата без грешки при валидация.
Отвори връзка за стимул — полето за потребителско име трябва да се попълни от ?p=.
Дай един глас. Трябва да видиш състоянието за успех. Втори глас в рамките на 24 часа трябва да е блокиран.
Провери postback: включи DEBUG в получателя; потвърди, че p_resp и ip пристигат.
Провери Votifier: с debug true Minecraft конзолата трябва да покаже входящ глас за твоето потребителско име и service името на този списък.
Потвърди наградата в играта или на сайта. Ако няма, оправи listener-а — гласът в списъка все пак се брои.
Опитите за доставка се записват в vote_reward_logs (ok / fail / skipped). Неуспешен callback никога не връща гласа назад в този списък.
06
ЧЗВ и отстраняване на проблеми
Не. Гостите могат да гласуват. Влезлите акаунти споделят същите 24-часови cooldown правила срещу злоупотреби.
Ако си настроил postback URL или Votifier, ни трябва параметър, за да знаем кого да наградим. Без настроени награди потребителското име остава по избор.
Да. И двете се изпълняват след успешен глас. Неуспехите са независими.
Трябва да е публичен http(s) URL. Localhost, .local, частни IP (напр. 10.*, 192.168.*) и URL с вградени credentials се блокират.
Потвърди, че гласът е успешен в този списък. Провери postback логовете или NuVotifier debug изхода. Провери firewall allowlist и дали потребителското име съвпада с акаунт в играта. Cooldown в списъка е 24 часа; твоят собствен cooldown за награда може да е различен.
Само A–Z, a–z, 0–9, _ и -. Всичко друго се премахва. Дръж параметрите ≤ 32 символа.
Инсталирай приложениетоДобавете JoinGameServers към началния екран за бърз достъп.