- Для версий
- 1.12.+
- 1.13.+
- 1.16.+
- 1.17.+
- 1.18+
- 1.19.+
- BungeeCord
- Velocity
- 1.20.+
- 1.21.+
Друзья на вашем сервере
mcFriends добавляет понятную систему друзей: игроки могут отправлять и принимать заявки, хранить список друзей, писать друг другу личные сообщения и при желании явно переключаться в личный диалог. Плагин подходит как для отдельного сервера, так и для сети через BungeeCord или Velocity.
Для владельца сервера
Настройте общую систему друзей для одного сервера или сети. Выберите, кто обрабатывает личные команды, и включите нужные дополнительные модули. Игроки управляют своим общением через меню, а комментарии в конфигурации помогают разобраться с настройками.
Для игроков
- Список друзей и запросы на добавление.
- Личные сообщения только между принятыми друзьями.
- Явно выбранный личный диалог с одним другом.
- Меню друзей и личных настроек.
- Управление приватностью, запросами, сообщениями, блокировкой и видимостью.
- Русскую локализацию и возможность переключения языка.
- Сохранение социального состояния после переподключения.
Как начать общаться
Основные действия не требуют запоминать сложные команды. Чтобы отправить заявку, достаточно:
/friend add Ник
Получатель увидит уведомление с подсказкой и кликабельными действиями для принятия или отклонения заявки. После подтверждения дружбы игроки могут писать друг другу:
/msg Ник Текст
Сообщение постороннему игроку не отправляется: mcFriends объясняет, что сначала нужно стать друзьями.
Что умеет mcFriends
Личный диалог
Кроме отдельных команд сообщений, игрок может явно выбрать личный диалог с другом. После этого обычный текст, введённый в чат, направляется выбранному собеседнику. Плагин показывает участников разговора, их префиксы и само сообщение, поэтому служебное уведомление не заменяет содержимое переписки.
Входящее личное сообщение само по себе не меняет выбранного адресата. Это защищает от ситуации, когда ответ случайно уходит не тому человеку. При выходе из выбранного диалога игрок снова пишет в обычный чат. Для выбора собеседника и выхода используются предусмотренные плагином действия и подсказки интерфейса.
Личный диалог рассчитан на двух игроков. mcFriends не является групповым чатом или голосовой связью.
Совместная работа с личными сообщениями других плагинов
По умолчанию mcFriends перехватывает настроенные команды личных сообщений. Владельцу доступен параметр:
commands:
intercept-private-messages: false
При значении false такие команды остаются другим плагинам, а собственные функции дружбы mcFriends продолжают работать. Отдельно настраиваются списки псевдонимов команд и перехват команд с пространством имён.
Совместная работа проверялась с CMI и Essentials на BungeeCord и Velocity как с включённым, так и с выключенным перехватом, обычными игроками без OP. В проверенных интеграциях учитываются блокировки, права, мут и игнорирование. Это не означает автоматическую совместимость с любым неизвестным плагином, который самостоятельно изменяет чат или личные сообщения.
Меню и настройки
У mcFriends есть меню друзей и персональных настроек. При переходах между экранами анимация меню сохраняется. Игрок может управлять доступностью запросов, личных сообщений, видимостью и блокировками в предусмотренных настройках. Текст и названия элементов меню используют контрастные цвета; чёрный текст в меню не применяется, чтобы подписи оставались видимыми.
Комментарии в конфигурации объясняют назначение параметров. Полная конфигурация приведена в конце страницы.
Один сервер и сеть
Для отдельного сервера можно использовать H2. Для общей системы друзей в сети поддерживаются MariaDB и PostgreSQL. В сетевой схеме необходимо правильно назначить роли серверов и настроить подключение к общей базе данных. Секреты базы передаются отдельно от открытой конфигурации.
Для настроенной прокси-сети владелец также может включить переход на сервер друга. Перед переходом действует задержка, после которой повторно проверяются права, дружба, видимость и разрешение самого друга. Если игрок успел переподключиться, ожидающий переход отменяется.
Это именно переход между серверами сети, а не телепортация к координатам друга внутри игрового мира.
Дополнительная защита между друзьями
Модуль защиты от урона между друзьями по умолчанию выключен. Если владелец сервера его включает, друзья защищены друг от друга, пока оба игрока не разрешат бой в своих настройках.
Модуль относится к предусмотренному взаимодействию между друзьями и не заявляется как глобальная защита от любого возможного источника урона.
Где пригодится
Друзья могут продолжать переписку на разных серверах одной настроенной сети. Для долгого разговора удобно явно выбрать собеседника, а для короткого сообщения — указать друга в команде. Нежелательное общение ограничивается настройками приватности и блокировкой.
В игре
Ниже показаны настоящие игровые меню, заявки и переписка текущей версии.
Команды и права
Для основных действий используются отдельные команды
/friend
/friends
/msg
/reply
/friend help
Если команда введена без обязательного ника или текста, плагин сообщает, какого аргумента не хватает. Там, где это поддерживает клиент, Tab помогает с именами: при добавлении друга предлагаются видимые игроки онлайн, а для личного сообщения — подходящие друзья. Скрытые игроки через такие подсказки не раскрываются.
Сообщения поддерживают кириллицу и обычный Unicode.
Обычные игроки получают права mcfriends.use и mcfriends.message по умолчанию. Административное право mcfriends.admin по умолчанию относится к OP. При настройке группы проверьте, что нужные игроку права не запрещены. Справка показывает доступные действия и их аргументы.
Совместимость и зависимости
Поставляется один JAR для Bukkit, Spigot, Paper, Purpur, BungeeCord и Velocity. Нужная версия Java определяется требованиями используемого ядра. Поддержка Folia не заявляется.
Запуск и корректная остановка проверялись на выбранных сборках старых версий вплоть до 26.2, а также на BungeeCord и Velocity 3.4 и 4.0. Игровые меню отдельно проверялись на 1.12.2, 1.13.2, 1.16.5 и 1.21.11.
Настоящим клиентом Minecraft 26.2 проверялись команды, подсказки, дружба и точная доставка сообщений на Paper 26.2, а также через BungeeCord и Velocity 4.0. Это не является обещанием проверки каждого меню или каждой существующей сборки 26.2.
Обязательных дополнительных плагинов для основного mcFriends нет. Для общей сети нужна MariaDB или PostgreSQL. Дополнение для mcProfile устанавливается только вместе с mcProfile.
Установка и обновление
Распакуйте архив перед установкой: серверу нужен файл mcFriends-1.0.12.jar. В комплекте также находится необязательное дополнение mcFriends-mcProfile-addon-1.0.1.jar для меню mcProfile; без mcProfile его устанавливать не нужно.
Порядок установки:
- Сделать резервную копию.
- Полностью остановить игровой сервер или прокси.
- Поместить JAR в папку
на нужных ролях выбранной схемы.Код:
plugins - Настроить параметры mcFriends и, при необходимости, общую базу данных.
- Запустить сервер и проверить журнал запуска.
- Проверить основные команды обычным игроком без административных прав.
Использовать
/reload
Поддержка: создать обращение.
Настройки
# Назначение: Версия структуры файла. Схема 1 загружается с нормализацией команд в собственные имена схемы 2.
# @config Тип: целое число | Допустимо: 2; старая схема 1 принимается с нормализацией команд | Единица: нет | По умолчанию: 2 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
config-version: 2
# Назначение: Роль этой копии плагина в сети серверов.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
node:
# Назначение: AUTO сам выбирает роль; также доступны STANDALONE, PROXY и BACKEND.
# @config Тип: строка | Допустимо: AUTO, STANDALONE, PROXY или BACKEND | Единица: нет | По умолчанию: AUTO | Зависимость: AUTO использует адаптер текущей платформы; PROXY недопустим на Bukkit, BACKEND недопустим на прокси; STANDALONE требует оба multi-флага false
mode: AUTO
# Назначение: Общее имя сети. Оно должно совпадать на всех её прокси и игровых серверах.
# @config Тип: строка | Допустимо: [A-Za-z0-9][A-Za-z0-9_.-]{0,63} | Единица: нет | По умолчанию: default | Зависимость: совпадает во всей одной сети; разные сети не должны видеть данные друг друга
network-id: default
# Назначение: Уникальное имя именно этой копии плагина. Замените change-me перед запуском сети.
# @config Тип: строка | Допустимо: [A-Za-z0-9][A-Za-z0-9_.-]{0,63}; change-me запрещено при multi-proxy или multi-server | Единица: нет | По умолчанию: change-me | Зависимость: уникален среди одновременно работающих копий одной сети
node-id: change-me
# Назначение: Имя прокси для режима PROXY; пустое значение использует node-id.
# @config Тип: строка | Допустимо: пустая строка либо [A-Za-z0-9][A-Za-z0-9_.-]{0,63} | Единица: нет | По умолчанию: '' | Зависимость: идентификатор прокси в присутствии и доставке; пустое значение использует node-id
proxy-id: ''
# Назначение: Имя игрового сервера для режима BACKEND; пустое значение использует node-id.
# @config Тип: строка | Допустимо: пустая строка либо [A-Za-z0-9][A-Za-z0-9_.-]{0,63} | Единица: нет | По умолчанию: '' | Зависимость: идентификатор игрового сервера в присутствии и доставке; пустое значение использует node-id
server-id: ''
# Назначение: Хранилище друзей, заявок, настроек и личных сообщений.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
database:
# Назначение: Тип базы: H2 для одного сервера, MARIADB или POSTGRESQL для сети.
# @config Тип: строка | Допустимо: H2, MARIADB или POSTGRESQL | Единица: нет | По умолчанию: H2 | Зависимость: H2 допускается только при multi-proxy=false и multi-server=false; сеть требует общей MariaDB или PostgreSQL
type: H2
# Назначение: JDBC-адрес базы. Для сетевого режима укажите отдельную общую базу mcFriends.
# @config Тип: строка | Допустимо: непустой JDBC-адрес выбранного типа без user/password/token в параметрах; для удалённой SQL-базы sslMode=verify-full | Единица: нет | По умолчанию: jdbc:h2:./plugins/mcFriends/data/friends;AUTO_SERVER=FALSE | Зависимость: схема адреса совпадает с database.type; пароль берётся отдельно; loopback разрешён без удалённого TLS
jdbc-url: jdbc:h2:./plugins/mcFriends/data/friends;AUTO_SERVER=FALSE
# Назначение: Пользователь базы данных.
# @config Тип: строка | Допустимо: строка, в том числе пустая; не пароль | Единица: нет | По умолчанию: sa | Зависимость: учётная запись должна иметь доступ только к выбранной базе и таблицам mcFriends
username: sa
# Назначение: Имя переменной окружения с паролем. Сам пароль в config.yml писать нельзя.
# @config Тип: строка | Допустимо: имя переменной окружения или пустая строка; не значение пароля | Единица: нет | По умолчанию: MCFRIENDS_DB_PASSWORD | Зависимость: заданная переменная имеет приоритет над password-file; для SQL-сети пароль обязателен
password-env: MCFRIENDS_DB_PASSWORD
# Назначение: Альтернатива переменной: путь к закрытому файлу, содержащему только пароль.
# @config Тип: строка | Допустимо: путь к файлу пароля или пустая строка; не значение пароля | Единица: нет | По умолчанию: '' | Зависимость: используется при отсутствии значения password-env; доступ к файлу оставляйте только владельцу процесса
password-file: ''
# Назначение: Префикс таблиц mcFriends в выбранной базе.
# @config Тип: строка | Допустимо: [A-Za-z][A-Za-z0-9_]{0,31} | Единица: нет | По умолчанию: mcfriends_ | Зависимость: одинаков во всех копиях одной сети; изменение выбирает другой набор таблиц, а не переименовывает старые
table-prefix: mcfriends_
# Назначение: Максимальное число одновременных соединений с базой.
# @config Тип: целое число | Допустимо: 1..64 | Единица: соединения | По умолчанию: 4 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
pool-size: 4
# Назначение: Сколько миллисекунд ждать соединения с базой перед безопасным отказом запуска.
# @config Тип: целое число | Допустимо: 1..60000 | Единица: миллисекунды | По умолчанию: 10000 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
connection-timeout-ms: 10000
# Назначение: Обмен присутствием и сообщениями между узлами одной сети.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
network:
# Назначение: Включите, если игроков принимает больше одного прокси.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: false | Зависимость: true требует общей MariaDB/PostgreSQL и уникального node-id; несовместимо со STANDALONE
multi-proxy: false
# Назначение: Включите, если mcFriends установлен более чем на одном игровом сервере.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: false | Зависимость: true требует общей MariaDB/PostgreSQL и уникального node-id; несовместимо со STANDALONE
multi-server: false
# Назначение: Настройки отметок «игрок в сети».
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
presence:
# Назначение: Как часто активный узел обновляет присутствие игрока, в миллисекундах.
# @config Тип: целое число | Допустимо: 1000..300000 | Единица: миллисекунды | По умолчанию: 10000 | Зависимость: ttl-ms должен быть не меньше удвоенного интервала; слишком редкое обновление задерживает статус
heartbeat-ms: 10000
# Назначение: Через сколько миллисекунд без обновления игрок считается вышедшим.
# @config Тип: целое число | Допустимо: 3000..1800000; не менее двух heartbeat-ms | Единица: миллисекунды | По умолчанию: 35000 | Зависимость: учитывает только свежие отметки; respect-vanish дополнительно скрывает неизвестное/скрытое присутствие
ttl-ms: 35000
# Назначение: Доставка личных сообщений и уведомлений между узлами.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
messages:
# Назначение: Частота проверки очереди сообщений, в миллисекундах.
# @config Тип: целое число | Допустимо: 50..30000 | Единица: миллисекунды | По умолчанию: 250 | Зависимость: меньше интервал — меньше задержка и больше обращений к базе
poll-ms: 250
# Назначение: Максимум сообщений, забираемых за один проход.
# @config Тип: целое число | Допустимо: 1..1000 | Единица: сообщения | По умолчанию: 100 | Зависимость: работает совместно с poll-ms; не является лимитом друзей или длины текста
batch-size: 100
# Назначение: Время владения сообщением одним обработчиком, в миллисекундах.
# @config Тип: целое число | Допустимо: 1000..300000 | Единица: миллисекунды | По умолчанию: 10000 | Зависимость: ограничивает владение записью очереди одним обработчиком; повторная доставка проходит проверку актуального состояния
claim-ttl-ms: 10000
# Назначение: Команды друзей и настраиваемый перехват личных сообщений.
# @config Тип: раздел | Допустимо: перечисленные ключи | Единица: нет | По умолчанию: ниже | Зависимость: после изменения нужен перезапуск; настройка должна совпадать на прокси и backend-узлах сети
commands:
# Назначение: true направляет перечисленные команды ЛС и ответа в mcFriends; false сохраняет обработку Essentials/CMI/vanilla. Собственные /mcfriends:msg и /mcfriends:reply остаются доступны.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: при false mcFriends не заменяет регистрацию, выполнение и Tab чужих команд; отсутствие ключа в старом файле означает true
intercept-private-messages: true
# Назначение: Команды открытия меню и управления друзьями.
# @config Тип: список строк | Допустимо: [friend, friends] | Единица: нет | По умолчанию: [friend, friends] | Зависимость: работают независимо от перехвата ЛС
friend-aliases: [friend, friends]
# Назначение: Алиасы личного сообщения из EssentialsX и CMI; при необходимости можно убрать необязательные алиасы.
# @config Тип: список строк | Допустимо: подмножество списка ниже, msg обязателен | Единица: нет | По умолчанию: список ниже | Зависимость: перехватываются только при intercept-private-messages=true
message-aliases: [msg, w, m, t, pm, emsg, epm, tell, etell, whisper, ewhisper]
# Назначение: Алиасы ответа последнему собеседнику.
# @config Тип: список строк | Допустимо: подмножество [reply, r, er, ereply], reply обязателен | Единица: нет | По умолчанию: [reply, r, er, ereply] | Зависимость: тот же переключатель перехвата
reply-aliases: [reply, r, er, ereply]
# Назначение: Также перехватывать /essentials:msg, /cmi:msg, /minecraft:msg и /cmi msg. Другие команды этих плагинов не меняются.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: действует только вместе с intercept-private-messages=true
intercept-namespaced: true
# Назначение: Пространства имён и команды-обёртки для перечисленных алиасов ЛС.
# @config Тип: список строк | Допустимо: подмножество [essentials, cmi, minecraft] | Единица: нет | По умолчанию: [essentials, cmi, minecraft] | Зависимость: intercept-namespaced=true; нестандартные пользовательские CMI alias требуют отдельной проверки маршрута
provider-prefixes: [essentials, cmi, minecraft]
# Назначение: Если перехват включён, временная ошибка mcFriends не должна отправить приватный текст другому обработчику.
# @config Тип: boolean | Допустимо: только true | Единица: нет | По умолчанию: true | Зависимость: настройка не включает перехват при intercept-private-messages=false
cancel-on-service-error: true
# Назначение: Игровые ограничения и защита от спама.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
limits:
# Назначение: Максимальное число друзей у одного игрока.
# @config Тип: целое число | Допустимо: 1..10000 | Единица: друзья | По умолчанию: 100 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
friends: 100
# Назначение: Максимальное число входящих заявок.
# @config Тип: целое число | Допустимо: 1..1000 | Единица: заявки | По умолчанию: 20 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
incoming-requests: 20
# Назначение: Максимальное число отправленных заявок.
# @config Тип: целое число | Допустимо: 1..1000 | Единица: заявки | По умолчанию: 20 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
outgoing-requests: 20
# Назначение: Срок жизни заявки в секундах; 604800 — семь дней.
# @config Тип: целое число | Допустимо: 1..315360000 (не более 3650 дней) | Единица: секунды | По умолчанию: 604800 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
request-ttl-seconds: 604800
# Назначение: Максимальная длина личного сообщения в символах Unicode.
# @config Тип: целое число | Допустимо: 1..2000 | Единица: кодовые точки Unicode | По умолчанию: 256 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
message-code-points: 256
# Назначение: Сколько личных сообщений разрешено за одно окно ограничения.
# @config Тип: целое число | Допустимо: 1..100 | Единица: сообщения за окно | По умолчанию: 5 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
message-rate-permits: 5
# Назначение: Размер окна ограничения сообщений в секундах.
# @config Тип: целое число | Допустимо: 1..600 | Единица: секунды | По умолчанию: 10 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
message-rate-window-seconds: 10
# Назначение: Максимум друзей, которым можно отправить одно групповое уведомление.
# @config Тип: целое число | Допустимо: 1..10000 | Единица: получатели | По умолчанию: 250 | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
broadcast-recipients: 250
# Назначение: Правила хранения и показа личных сообщений.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
messages:
# Назначение: Разрешать личное сообщение только когда получатель сейчас в сети.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: false разрешает ограниченную очередь офлайн-сообщений; дружба и приватность всё равно проверяются
require-online: true
# Назначение: Сколько секунд недоставленное сообщение остаётся в очереди.
# @config Тип: целое число | Допустимо: 5..86400 | Единица: секунды | По умолчанию: 60 | Зависимость: после истечения недоставленное сообщение не принимается к доставке; это не история чата
retention-seconds: 60
# Назначение: Разрешать цветовые коды и форматирование в тексте игроков.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: false | Зависимость: меняет только оформление пользовательского текста; не отменяет дружбу, приватность и ограничения
allow-formatting: false
# Назначение: Всегда оставляйте false: содержимое личных сообщений не записывается в журнал.
# @config Тип: boolean | Допустимо: только false | Единица: нет | По умолчанию: false | Зависимость: false обязательно для защиты личной переписки
log-content: false
# Назначение: Инвентарное меню друзей и настроек.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
gui:
# Назначение: Включить меню; при false команда покажет краткий текстовый список.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: на прокси для инвентарного меню нужна копия на игровом сервере с общей SQL-базой; false включает текстовый список
enabled: true
# Назначение: Число рядов в меню друзей, от 2 до 6.
# @config Тип: целое число | Допустимо: 2..6 | Единица: ряды по 9 слотов | По умолчанию: 6 | Зависимость: применяется к основному меню друзей; экран настроек использует свою фиксированную раскладку
rows: 6
# Назначение: Живая цветная рамка должна работать во всех экранах и переходах меню.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
animation:
# Назначение: Включить анимацию рамки.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: анимация действует только при gui.enabled=true и сохраняется при переходе в настройки и обратно
enabled: true
# Назначение: Интервал между кадрами в миллисекундах; слишком малое значение создаёт лишние обновления.
# @config Тип: целое число | Допустимо: 100..30000 | Единица: миллисекунды | По умолчанию: 1000 | Зависимость: используется при gui.enabled=true и animation.enabled=true; меньше интервал — больше обновлений слотов
period-ms: 1000
# Назначение: Защита от двойных кликов по меню, в миллисекундах.
# @config Тип: целое число | Допустимо: 0..5000 | Единица: миллисекунды | По умолчанию: 250 | Зависимость: применяется к действиям в открытом меню; 0 отключает только задержку кликов, не проверки инвентаря
click-cooldown-ms: 250
# Назначение: Дополнительные функции для игроков.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
features:
# Назначение: Сообщать друзьям, когда игрок появился в сети.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: используется соответствующей включённой функцией и не отменяет настройки приватности
online-info-on-join:
# Назначение: Включить уведомление о входе.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: используется соответствующей включённой функцией и не отменяет настройки приватности
enabled: true
# Назначение: Задержка уведомления после входа, в миллисекундах.
# @config Тип: целое число | Допустимо: 0..300000 | Единица: миллисекунды | По умолчанию: 1500 | Зависимость: используется при enabled=true; даёт игровому серверу время сообщить актуальную видимость
delay-ms: 1500
# Назначение: Разрешить игроку отправлять объявление всем друзьям.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: используется соответствующей включённой функцией и не отменяет настройки приватности
friend-broadcast:
# Назначение: Включить объявления друзьям.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: используется соответствующей включённой функцией и не отменяет настройки приватности
enabled: true
# Назначение: Перерыв между объявлениями одного игрока, в секундах.
# @config Тип: целое число | Допустимо: 0..3600 | Единица: секунды | По умолчанию: 30 | Зависимость: используется при enabled=true; дополнительно действуют приватность и broadcast-recipients
cooldown-seconds: 30
# Назначение: Отключение урона между друзьями на игровых серверах.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: используется соответствующей включённой функцией и не отменяет настройки приватности
friendly-fire:
# Назначение: Включить защиту друзей от взаимного урона.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: false | Зависимость: работает на игровом сервере и учитывает настройки друзей; существующий запрет урона не снимается
enabled: false
# Назначение: Миры с защитой; пустой список означает все миры.
# @config Тип: список строк | Допустимо: список непустых имён миров; [] означает все миры | Единица: нет | По умолчанию: [] | Зависимость: используется при friendly-fire.enabled=true; имена должны совпадать с мирами сервера
protected-worlds: []
# Назначение: Переход на сервер, где играет друг.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: используется соответствующей включённой функцией и не отменяет настройки приватности
friend-jump:
# Назначение: Включить запрос перехода к другу.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: false | Зависимость: переход требует работающего прокси, дружбы, разрешения получателя и доступного сервера
enabled: false
# Назначение: Задержка перед переходом, в секундах.
# @config Тип: целое число | Допустимо: 0..300 | Единица: секунды | По умолчанию: 3 | Зависимость: используется при friend-jump.enabled=true; перед действием снова проверяется актуальное состояние
delay-seconds: 3
# Назначение: Серверы, на которые переход через друзей запрещён.
# @config Тип: список строк | Допустимо: список непустых имён серверов; [] ничего дополнительно не запрещает | Единица: нет | По умолчанию: [login] | Зависимость: используется при friend-jump.enabled=true; указывайте имена из маршрутизации прокси
disabled-servers: [login]
# Назначение: Связь с необязательными плагинами оформления и приватности.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
integrations:
# Назначение: Наследование настроек приватности из mcProfile, если он установлен.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: необязательная интеграция; отсутствие плагина не должно мешать основным командам
mcprofile:
# Назначение: MOST_PRIVATE выбирает более закрытое правило при расхождении настроек.
# @config Тип: строка | Допустимо: LOCAL_ONLY, MCPROFILE_FALLBACK, MCPROFILE_PRIMARY или MOST_PRIVATE | Единица: нет | По умолчанию: MOST_PRIVATE | Зависимость: LOCAL_ONLY и MCPROFILE_FALLBACK не принимают внешнюю запись; MCPROFILE_PRIMARY принимает профиль; MOST_PRIVATE сохраняет более закрытые значения
inheritance: MOST_PRIVATE
# Назначение: Использовать префиксы и имена из LuckPerms при показе друзей.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: необязательная интеграция; отсутствие плагина не должно мешать основным командам
luckperms-display-names: true
# Назначение: Регистрировать плейсхолдеры PlaceholderAPI, если он установлен.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: необязательная интеграция; отсутствие плагина не должно мешать основным командам
placeholderapi: true
# Назначение: Не раскрывать скрытого игрока в статусе и подсказках онлайн-игроков; личные сообщения между друзьями сохраняются.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: при true статус раскрывается только после свежего VISIBLE от игрового сервера; личные сообщения этим не блокируются
respect-vanish: true
# Назначение: Язык сообщений и меню.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
localization:
# Назначение: Основной язык общего режима сообщений, когда per-player выключен.
# @config Тип: строка | Допустимо: языковая метка вида ru_RU; должна входить в supported | Единица: нет | По умолчанию: ru_RU | Зависимость: используется как общий язык при per-player=false; перевод должен быть доступен
default: ru_RU
# Назначение: Запасной язык, если перевод отдельной строки отсутствует.
# @config Тип: строка | Допустимо: языковая метка вида ru_RU; должна входить в supported | Единица: нет | По умолчанию: ru_RU | Зависимость: используется, если отдельная строка выбранного перевода отсутствует
fallback: ru_RU
# Назначение: Разрешённые языки, между которыми игрок может переключаться в меню.
# @config Тип: список строк | Допустимо: непустой список языковых меток с доступными переводами; включает default и fallback | Единица: нет | По умолчанию: [ru_RU, en_US, de_DE, es_ES, fr_FR, pt_BR, pl_PL, tr_TR, uk_UA, zh_CN] | Зависимость: файлы переводов лежат в locales; недоступный обязательный перевод не должен маскироваться успешным запуском
supported: [ru_RU, en_US, de_DE, es_ES, fr_FR, pt_BR, pl_PL, tr_TR, uk_UA, zh_CN]
# Назначение: Учитывать выбранный язык каждого игрока вместо одного языка на весь сервер.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
per-player: true
# Назначение: Одноразовый перенос данных из прежней системы друзей.
# @config Тип: раздел | Допустимо: перечисленные вложенные ключи; неизвестные ключи отклоняются | Единица: нет | По умолчанию: значения вложенных ключей ниже | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
import:
# Назначение: Режим API импорта по умолчанию: true только строит план; false разрешает применение при вызове API.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: действует без явного переопределения dry-run; CLI отдельно требует --apply, обычный запуск сервера импорт не выполняет
dry-run-by-default: true
# Назначение: Префикс исходных таблиц прежней системы друзей.
# @config Тип: строка | Допустимо: [A-Za-z][A-Za-z0-9_]{0,31} | Единица: нет | По умолчанию: fr_ | Зависимость: применяется только к чтению источника импорта; целевые таблицы задаются database.table-prefix
source-table-prefix: fr_
# Назначение: Масштаб предельного размера источника: допускается min(10000000, batch-size * 10000) записей.
# @config Тип: целое число | Допустимо: 1..10000 | Единица: множитель 10000 записей | По умолчанию: 500 | Зависимость: историческое имя; ограничивает план чтения, а не размер SQL-пакета; используется только при импорте
batch-size: 500
# Назначение: Переносить ещё не принятые заявки в друзья.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
include-pending-requests: true
# Назначение: Переносить пользовательские настройки приватности.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: true | Зависимость: загружается при запуске; после изменения нужен контролируемый перезапуск этой копии
include-settings: true
# Назначение: Не переносить старые офлайн-сообщения без отдельного решения владельца.
# @config Тип: boolean | Допустимо: true или false | Единица: нет | По умолчанию: false | Зависимость: включайте только при разрешённом переносе; принимаются сообщения между уже подтверждёнными друзьями
include-offline-messages: false