Как Votifier доставя глас
- Играч гласува за сървъра ти в списък.
- Списъкът отваря TCP връзка към сървъра ти на Votifier порта и изпраща името на играча, собственото си име на услугата, адрес и времеви печат.
- NuVotifier проверява съобщението (RSA ключ при v1, токен при v2) и задейства събитие за глас.
- Плъгин за награди като VotingPlugin слуша за това събитие и дава наградата.
Самият NuVotifier не дава нищо. Той идва без никакъв listener, така че винаги ти трябва втори плъгин за наградите.
Стъпка 1: Инсталирай NuVotifier на Paper или Spigot
Сложи JAR файла на NuVotifier в папката plugins и стартирай сървъра веднъж. Той създава конфигурацията си, двойка RSA ключове и токен. При първото стартиране конзолата отпечатва токена: Your default NuVotifier token is ….
host: 0.0.0.0
port: 8192
disable-v1-protocol: false
tokens:
default: <generated token>
forwarding:
method: none
pluginMessaging:
channel: nuvotifier:voteshostе адресът, на който слуша NuVotifier. По подразбиране взема IP-то, за което е настроен сървърът ти, или0.0.0.0за всички интерфейси.portе Votifier портът, по подразбиране8192. Той не трябва да е портът на Minecraft.tokens.defaultсе използва за всеки списък, освен ако не добавиш токен под името на услугата на даден списък.- Ключовете за v1 се създават в
plugins/Votifier/rsa/катоpublic.keyиprivate.key.
Стъпка 2: Направи порта достъпен
Списъците се свързват от интернет, затова Votifier портът трябва да е отворен за входящи TCP връзки. Тук се провалят повечето настройки.
- Споделен хостинг: много панели отварят само порта на играта. Добави допълнителен порт в панела и сложи точно това число в
port. Някои хостове задават числото вместо теб. - Собствен VPS или root сървър: разреши порта в защитната стена, например
ufw allow 8192/tcp. - У дома: пренасочи порта в рутера към машината, на която работи сървърът.
Рестартирай сървъра след промяна на конфигурацията. NuVotifier има и /nvreload, която се изпълнява от конзолата.
Стъпка 3: Избери v1 (публичен ключ) или v2 (токен)
| Протокол v1 | Протокол v2 | |
|---|---|---|
| Тайна | Двойка RSA ключове | Споделен токен |
| Какво трябва на списъка | Съдържанието на rsa/public.key | Токенът от tokens.default |
| Поддръжка | Класически Votifier; повечето списъци го говорят | NuVotifier и списъци, които го поддържат |
Никога не давай на никого private.key. Ако списъкът поддържа v2, токенът е по-простият избор: един ред, без файл с ключ. BestMCServerList поддържа и двете, така че избери каквото ти харесва на страницата си за Votifier.
Дръж disable-v1-protocol: false на единичен сървър. Самият NuVotifier предупреждава, че много списъци говорят само v1.
Стъпка 4: Мрежи с Velocity или BungeeCord
В мрежа списъкът се свързва с проксито. NuVotifier работи на проксито и препраща гласовете към бекенд сървърите, където е плъгинът за награди. Уикито на NuVotifier препоръчва plugin messaging за повечето мрежи.
Прокси (Velocity)
host = "0.0.0.0"
port = 8192
disable-v1-protocol = false
[tokens]
default = "<generated token>"
[forwarding]
method = "pluginMessaging"
[forwarding.pluginMessaging]
channel = "nuvotifier:votes"
cache = "file"При BungeeCord същите ключове са в plugins/NuVotifier/config.yml във формат YAML. cache = "file" пази гласовете на играчи, които са офлайн, и ги доставя по-късно.
Всеки бекенд сървър (Paper)
port: -1
forwarding:
method: pluginMessaging
pluginMessaging:
channel: nuvotifier:votesport: -1 изключва слушането на бекенда, така че само проксито получава гласове. Увери се, че бекендите ти са достъпни само през проксито, иначе някой може да изпраща фалшиви гласове.
Другата опция, method = "proxy", изпраща гласовете от проксито към NuVotifier порт на всеки бекенд, настроен с адрес, порт и токен за всеки сървър под [forwarding.proxy.<name>]. Тя няма кеш за гласове, затова plugin messaging обикновено пасва по-добре.
Стъпка 5: Въведи данните и изпрати тестов глас
- Първо тествай локално:
/testvote Steve serviceName=BestMCServerListна Paper или/ptestvoteсъс същите аргументи на проксито. Ако плъгинът ти за награди реагира, вътрешната част работи. - В BestMCServerList отвори сървъра си в таблото и отиди на Votifier. Въведи публичния адрес на сървъра или проксито, порта и токена (v2) или публичния ключ (v1) и запази.
- Натисни Изпрати тестов глас. Изпращаме глас за
TestVote, който не се брои за класирането, а логът на доставките показва за секунди дали е пристигнал.
Гласовете от BestMCServerList носят името на услугата BestMCServerList. Bedrock играчите, които влизат през Geyser и Floodgate, гласуват с името си с префикс, например .Steve, и името стига до NuVotifier без промяна. Всяко Minecraft име може да гласува веднъж на сървър на календарен ден, броено по време Europe/Berlin.
Още не си обявен? Първо добави сървъра си и после се върни към тази стъпка.
Чести грешки и решения
| Проблем | Какво да провериш |
|---|---|
| Connection refused | NuVotifier не работи или слуша на друг порт. Сравни порта в конфигурацията с въведения. |
| Timed out | Защитна стена или хостът спира трафика. Отвори порта за TCP или поискай допълнителен порт от хоста. |
| Тестът пристига, играчите не получават нищо | Няма плъгин за награди. Конзолата пише A vote was received, but you don't have any listeners available to listen for it. |
| Гласът е отхвърлен при v2 | Токенът не съвпада. Копирай tokens.default отново, без интервали и кавички. |
| Работи на проксито, но не и на бекенда | Бекендът не е настроен на pluginMessaging или имената на каналите се различават. |
| Въведен е грешен порт | Отговаря портът на Minecraft вместо NuVotifier. Използвай Votifier порта. |
Щом гласовете пристигат, настрой наградите: нашето ръководство за награди за гласуване с VotingPlugin обхваща името на услугата, VoteSites.yml и дневните лимити. За по-голямата картина виж как да намериш играчи за нов сървър.