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

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

Списки серверів надсилають твоєму серверу повідомлення про кожен голос, але нічого не відбувається, доки на нього не відреагує плагін нагород. VotingPlugin – популярний вибір: він видає предмети, гроші чи команди за кожен сайт голосування, показує посилання для голосування через /vote і додає бонуси на зразок vote party та серій. У цьому посібнику ми крок за кроком підключимо його до 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 (типово). Перевір і голоси офлайн, бо команди, яким потрібен гравець онлайн, поводяться інакше.

Vote party, рубежі та серії

Коли базові нагороди працюють, 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.

Джерела

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