Плагин для серверов Майнкрафт, который отслеживает приглашения в Discord и выдаёт игровые награды только после подтверждения приглашённого участника. Discord-бот встроен в плагин: игрок связывает аккаунт кодом, а награды получает при достижении заданного числа подтверждённых приглашений.
Возможности
- Приглашение засчитывается после нажатия кнопки подтверждения в Discord, а не при простом входе на сервер.
- Один Discord-аккаунт может дать только один зачёт; повторный вход по приглашению не создаёт новую награду.
- Можно ограничить минимальный возраст Discord-аккаунта и дневное число зачётов для одного пригласившего.
- Если приглашённый уходит в течение заданного срока или получает бан, зачёт отзывается.
- Нельзя пригласить самого себя; один аккаунт Майнкрафт связывается только с одним аккаунтом Discord.
- Награды задаются для любых порогов приглашений: консольные команды, группа LuckPerms, деньги или предметы. Предметы для игрока не в сети выдаются при его следующем входе.
- При отзыве зачёта группа LuckPerms и деньги снимаются, если игрок оказался ниже порога. Предметы и ранее выполненные команды не отзываются.
- После перезапуска плагин пытается определить пропущенные входы; неоднозначные случаи администратор назначает вручную.
Команды
/link <code>— связывает игровой аккаунт с Discord по коду./invitereward reload— перечитывает награды и сообщения изconfig.yml./invitereward status <player>— показывает связь с Discord, число подтверждённых приглашений и состояние наград./invitereward unlink <player>— удаляет связь игрока с Discord./invitereward attribute <discordId> <inviterId>— вручную назначает пригласившего для неоднозначного случая.
В Discord используется команда /link, которая выдаёт шестизначный код для ввода в игре.
Права
inviterewards.admin— доступ к командам/invitereward; по умолчанию есть у операторов.
Настройка
В config.yml указываются токен бота, ID Discord-сервера, канала подтверждения и роли подтверждённого участника. Там же настраиваются текст и кнопка сообщения, фильтры от злоупотреблений, срок действия кода, восстановление пропущенных входов и награды в разделе rewards.
Изменения наград и сообщений применяются через /invitereward reload. После изменения токена, ID сервера, канала или роли требуется перезапуск сервера.
Требования
Нужен Paper или его форк, а также собственное приложение-бот Discord. Для отслеживания приглашений у бота должны быть включены Server Members Intent, права управления сервером и ролями; роль бота должна стоять выше роли, выдаваемой после подтверждения.
LuckPerms требуется только для наград-групп. Vault и плагин экономики нужны только для денежных наград. Бот работает, пока запущен сервер Майнкрафт, поэтому серверы, которые отключаются без игроков, могут пропускать приглашения.
