Перейти до вмісту

Налаштування NuVotifier на Paper, Velocity і BungeeCord

NuVotifier – це ланка між списком серверів і твоїм плагіном нагород: список підключається до нього з кожним голосом, а він передає голос плагіну, який видає нагороду. У цьому посібнику ми налаштуємо його на окремому сервері Paper і в мережі на Velocity чи BungeeCord, а потім перевіримо все тестовим голосом.

Оновлено:

Як Votifier доставляє голос

  1. Гравець голосує за твій сервер у списку.
  2. Список відкриває TCP-з’єднання з твоїм сервером на порту Votifier і надсилає нік гравця, власну назву сервісу, адресу та час.
  3. NuVotifier перевіряє повідомлення (RSA-ключ для v1, токен для v2) і запускає подію голосу.
  4. Плагін нагород, наприклад VotingPlugin, слухає цю подію й видає нагороду.

Сам NuVotifier нічого не видає. Він постачається без жодного слухача, тож для нагород завжди потрібен другий плагін.

Крок 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 чи виділений сервер: дозволь порт у фаєрволі, наприклад 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 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, або назви каналів різні.
Введено неправильний портЗамість NuVotifier відповідає порт Minecraft. Використай порт 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.

Джерела

Перевірено за офіційною документацією: