Перейти к содержимому

Награды за голоса в Minecraft с VotingPlugin

Списки серверов отправляют твоему серверу сообщение о каждом голосе, но ничего не происходит, пока на него не отреагирует плагин наград. VotingPlugin – популярный выбор: он выдаёт предметы, деньги или команды за каждый сайт голосования, показывает ссылки через /vote и добавляет бонусы вроде вотпати и серий. Этот гайд шаг за шагом подключает его к BestMCServerList.

Обновлено:

Как голос превращается в награду

Работают вместе три части. Игрок голосует в списке серверов. Список отправляет сообщение о голосе в Votifier на твоём сервере – вместе с ником игрока и именем сервиса, которое обозначает список. VotingPlugin слушает эти сообщения, ищет сайт голосования, у которого ServiceSite совпадает с именем сервиса, и выдаёт награды этого сайта.

Сам по себе VotingPlugin голосов не получает. Сначала нужен рабочий Votifier, обычно NuVotifier. Если ты его ещё не настроил, пройди гайд по настройке NuVotifier и возвращайся.

  • Votifier принимает голос и проверяет его (токен для v2, RSA-ключ для v1).
  • VotingPlugin сопоставляет имя сервиса и выдаёт награды.
  • BestMCServerList отправляет имя сервиса BestMCServerList.

Шаг 1: установи VotingPlugin

  1. Убедись, что NuVotifier запущен и доступен. Тестовый голос с твоей страницы Votifier должен появиться в консоли.
  2. Положи JAR VotingPlugin в папку plugins своего сервера Spigot или Paper и один раз перезапусти сервер.
  3. VotingPlugin создаст свои файлы, среди них plugins/VotingPlugin/VoteSites.yml для сайтов голосования и Config.yml для общих настроек.

В сети с прокси голоса обычно приходят на прокси, а награды выдаются на бэкенд-серверах. Держи VoteSites.yml одинаковым на каждом бэкенде.

Шаг 2: добавь BestMCServerList в VoteSites.yml

Каждый список, в котором ты есть, получает свою запись в VoteSites. Ключ – внутреннее имя: короткое, без пробелов и точек. Самая важная строка – ServiceSite.

plugins/VotingPlugin/VoteSites.yml
VoteSites:
  BestMCServerList:
    Enabled: true
    Name: 'BestMCServerList'
    Priority: 5
    ServiceSite: 'BestMCServerList'
    VoteURL: 'https://bestmcserverlist.net/server/your-server/vote'
    VoteDelay: 24h
    WaitUntilVoteDelay: false
    VoteDelayDaily: true
    ForceOffline: false
    DisplayItem:
      Material: 'DIAMOND'
      Amount: 1
    Rewards:
      Commands:
      - 'eco give %player% 250'
      - 'give %player% diamond 2'
      Messages:
        Player: '&aThanks for voting on BestMCServerList!'
  • Enabled: true обязателен, по умолчанию стоит false.
  • ServiceSite должен совпадать с именем сервиса, которое отправляет список. VotingPlugin сравнивает без учёта регистра, но в остальном текст должен быть идентичным. У нас это BestMCServerList.
  • VoteURL – ссылка, которую игроки получают через /vote. Скопируй ссылку на голосование со страницы своего сервера; your-server здесь – твой собственный slug.
  • DisplayItem нужен для каждого сайта, потому что он показывается в меню VotingPlugin.
  • Команды выполняются из консоли, а %player% заменяется на ник голосующего. Для eco give нужен плагин экономики; используй те команды, что есть на твоём сервере.

Сохрани файл и выполни /av reload.

Шаг 3: задержка голосования и ежедневный сброс

На BestMCServerList с каждого ника Minecraft можно голосовать за сервер раз в календарный день, а день считается по часовому поясу Europe/Berlin. Новый голос возможен сразу после полуночи по берлинскому времени, а не через 24 часа после предыдущего.

  • VoteDelay: 24h используется для /vote next – обратного отсчёта, который видят игроки. Голоса он не блокирует.
  • VoteDelayDaily: true вместо этого сбрасывает задержку раз в день, что подходит для списков с ежедневным сбросом, как у нас. VoteDelayDailyHour задаёт час по времени сервера (1–24). Если часы твоего сервера идут не по берлинскому времени, учти разницу при настройке.
  • WaitUntilVoteDelay: true отклонял бы голоса, пришедшие до окончания задержки. Оставь false: мы и так ограничиваем один голос на ник в день, а неверная настройка задержки лишила бы игроков наград.

Шаг 4: проверь награды

  1. Выполни /av vote <player> BestMCServerList. Команда выдаёт игроку награды этого сайта и показывает, что конфиг наград работает. Votifier она не проверяет.
  2. Открой свою страницу Votifier на BestMCServerList и нажми Отправить тестовый голос. Мы отправим голос от ника TestVote, который не учитывается в рейтинге. Лог доставки покажет, принял ли его твой сервер.
  3. Поищи в консоли строку вроде [VotingPlugin] Received a vote from service site 'BestMCServerList' by player 'TestVote'!.
  4. Выполни /av servicesites, чтобы увидеть имена сервисов, которые VotingPlugin уже получал.

Если тестовый голос приходит, но VotingPlugin сообщает о неизвестном service site, проблема в строке ServiceSite. С AutoCreateVoteSites: true в Config.yml (по умолчанию) VotingPlugin может и сам создать новую запись; ей всё равно нужны Enabled: true и твои награды.

Игроки Bedrock и офлайн-голоса

У игроков Bedrock, которые заходят через Geyser и Floodgate, есть префикс ника, по умолчанию точка: .Steve. Они голосуют с этим полным ником, и мы передаём его в Votifier без изменений. В VotingPlugin укажи тот же префикс в Config.yml. В сети серверов используй одно и то же значение на прокси и на каждом бэкенде:

plugins/VotingPlugin/Config.yml
BedrockPlayerPrefix: '.'

.Steve и Steve – разные игроки. Никогда не убирай префикс, чтобы ник «подошёл».

Игрокам не обязательно быть онлайн, когда они голосуют. У наград есть RewardType: ONLINE, OFFLINE или BOTH (по умолчанию). Проверяй и офлайн-голоса, потому что команды, которым нужен игрок онлайн, ведут себя иначе.

Вотпати, рубежи и серии

Когда базовые награды работают, SpecialRewards.yml добавляет цели, ради которых игроки продолжают голосовать: VoteParty, которая срабатывает, когда весь сервер набирает определённое число голосов, VoteMilestones для личных итогов и VoteStreaks за голосование несколько дней подряд. Делай награды полезными, но честными; награды, ломающие экономику, превращают голосование в обязаловку.

Хочешь значок ранга для топ-голосующих? Гайд по префиксам LuckPerms показывает, как выдать игроку префикс-картинку командой, которую можно запускать как награду.

Типичные ошибки

ПроблемаРешение
Тестовый голос приходит, но никто ничего не получаетСайт голосования не включён или ServiceSite не BestMCServerList. Проверь /av servicesites.
В консоли вообще ничегоVotifier не получает голос. Проверь порт, токен и файрвол по логу доставки на своей странице Votifier.
NuVotifier пишет в лог, что нет доступных слушателейVotingPlugin не установлен или не загрузился. Проверь лог запуска.
/av vote работает, а настоящие голоса нетАдминская команда обходит Votifier. Проверяй кнопкой Отправить тестовый голос.
Игроки Bedrock ничего не получаютBedrockPlayerPrefix не совпадает с твоим префиксом Floodgate.

Частые вопросы

Какое имя сервиса у BestMCServerList для VotingPlugin?

BestMCServerList. Впиши ровно это в строку ServiceSite сайта голосования в VoteSites.yml.

Нужен ли NuVotifier для VotingPlugin?

Да. VotingPlugin выдаёт награды, но голоса доходят до сервера через Votifier. NuVotifier – поддерживаемая версия, она работает с протоколами v1 и v2.

Когда игроки могут снова голосовать на BestMCServerList?

Раз в календарный день для каждого ника Minecraft и сервера. День меняется в полночь по часовому поясу Europe/Berlin.

Получают ли игроки Bedrock награды за голоса?

Да, если они голосуют с полным ником Floodgate, например .Steve, а BedrockPlayerPrefix в VotingPlugin совпадает с твоим префиксом Floodgate.

Источники

Сверено с официальной документацией: