Към съдържанието

Настройка на NuVotifier на Paper, Velocity и BungeeCord

NuVotifier е звеното между списъка със сървъри и плъгина ти за награди: списъкът се свързва с него за всеки глас, а той предава гласа на плъгина, който дава наградата. Това ръководство го настройва на единичен Paper сървър и в мрежа с Velocity или BungeeCord, след което проверява всичко с тестов глас.

Обновено:

Как Votifier доставя глас

  1. Играч гласува за сървъра ти в списък.
  2. Списъкът отваря TCP връзка към сървъра ти на Votifier порта и изпраща името на играча, собственото си име на услугата, адрес и времеви печат.
  3. NuVotifier проверява съобщението (RSA ключ при v1, токен при v2) и задейства събитие за глас.
  4. Плъгин за награди като VotingPlugin слуша за това събитие и дава наградата.

Самият NuVotifier не дава нищо. Той идва без никакъв listener, така че винаги ти трябва втори плъгин за наградите.

Стъпка 1: Инсталирай NuVotifier на Paper или Spigot

Сложи JAR файла на NuVotifier в папката plugins и стартирай сървъра веднъж. Той създава конфигурацията си, двойка RSA ключове и токен. При първото стартиране конзолата отпечатва токена: Your default NuVotifier token is ….

plugins/Votifier/config.yml
host: 0.0.0.0
port: 8192
disable-v1-protocol: false
tokens:
  default: <generated token>
forwarding:
  method: none
  pluginMessaging:
    channel: nuvotifier:votes
  • host е адресът, на който слуша 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)

plugins/nuvotifier/config.toml
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)

plugins/Votifier/config.yml
port: -1
forwarding:
  method: pluginMessaging
  pluginMessaging:
    channel: nuvotifier:votes

port: -1 изключва слушането на бекенда, така че само проксито получава гласове. Увери се, че бекендите ти са достъпни само през проксито, иначе някой може да изпраща фалшиви гласове.

Другата опция, method = "proxy", изпраща гласовете от проксито към NuVotifier порт на всеки бекенд, настроен с адрес, порт и токен за всеки сървър под [forwarding.proxy.<name>]. Тя няма кеш за гласове, затова plugin messaging обикновено пасва по-добре.

Стъпка 5: Въведи данните и изпрати тестов глас

  1. Първо тествай локално: /testvote Steve serviceName=BestMCServerList на Paper или /ptestvote със същите аргументи на проксито. Ако плъгинът ти за награди реагира, вътрешната част работи.
  2. В BestMCServerList отвори сървъра си в таблото и отиди на Votifier. Въведи публичния адрес на сървъра или проксито, порта и токена (v2) или публичния ключ (v1) и запази.
  3. Натисни Изпрати тестов глас. Изпращаме глас за TestVote, който не се брои за класирането, а логът на доставките показва за секунди дали е пристигнал.

Гласовете от BestMCServerList носят името на услугата BestMCServerList. Bedrock играчите, които влизат през Geyser и Floodgate, гласуват с името си с префикс, например .Steve, и името стига до NuVotifier без промяна. Всяко Minecraft име може да гласува веднъж на сървър на календарен ден, броено по време Europe/Berlin.

Още не си обявен? Първо добави сървъра си и после се върни към тази стъпка.

Чести грешки и решения

ПроблемКакво да провериш
Connection refusedNuVotifier не работи или слуша на друг порт. Сравни порта в конфигурацията с въведения.
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 и дневните лимити. За по-голямата картина виж как да намериш играчи за нов сървър.

Често задавани въпроси

Кой порт използва NuVotifier?

По подразбиране порт 8192. Можеш да го смениш в конфигурацията, но трябва да е отделен от порта на Minecraft и достъпен от интернет през TCP.

Къде да намеря токена на NuVotifier?

В plugins/Votifier/config.yml под tokens → default. Конзолата също го отпечатва при първото стартиране.

Трябва ли ми NuVotifier на всеки сървър в мрежата?

С plugin messaging – да: на проксито, за да получава гласове, и на всеки бекенд с forwarding.method: pluginMessaging и port: -1, за да ги предава на плъгина за награди.

Да използвам ли v1 или v2?

Използвай v2 с токен, когато списъкът го поддържа. v1 с публичен RSA ключ съществува за по-стари настройки. BestMCServerList поддържа и двете.

Дава ли NuVotifier награди сам?

Не. Той само получава гласове. Плъгин за награди като VotingPlugin трябва да слуша за тях.

Източници

Проверено спрямо официалната документация: