Как настроить config yml

Python: конфигурация проекта без боли

Расскажу о проделанном пути, чтобы найти идеальный, для моих целей, инструмент конфигурирования проекта и о создании легковесной библиотеки bestconfig, впитавшей в себя преимущества изложенных подходов.

В статье речь пойдет только о локальных способах хранения настроек, здесь не разбираются случаи загрузки из сети.

После создания проекта рано или поздно возникает вопрос: куда записывать номер версии, где хранить токены, пароли, настройки, каким форматом файлов конфигурации воспользоваться: .json , .yaml , .env, .cfg , .ini или просто создать config.py и записывать туда переменные?

Для каждого из перечисленных вариантов есть библиотека на python, приведу примеры самых популярных форматов.

Переменные окружения могут передаваться программе напрямую командным интерпретатором: они записаны в .bashrc , выполнена команда export , или просто указаны в интерфейсе хостинга. Для того, чтобы их явно указать, удобно использовать .env файлы в директории проекта. Если прописать .env в . gitignore можно сложить туда все ключи и не боятся их опубликовать, в то время как остальные настройки будут в другом месте для использования в продакшн окружении

Библиотека dotenv отлично справляется с задачей подгрузки таких файлов. Все переменные сразу попадают в os.environ

В последнее время стал популярен формат .yml , как один из самых приятных для чтения человеком

Открываем файл из кода

Формат чаще используется для коммуникации между сервисам, например между фронтом и беком, как компактный, но в то же время понятный человеку. Но задать в нем некоторые настройки тоже можно

В файле с расширением .py объявляем все необходимые переменные. У данного подхода есть преимощество — можно некоторые значения вычислять на ходу: инкриментировать номер сборки, менять хост в зависимости от режима: DEBUG или RELEASE и тд.

Осталось только импортировать этот файл там, где он нужен

Все просто, разве нет?

Самое интересное начинается, когда в проекте появляется несколько источников конфигов. Например статичные настройки лежат в config.yml , токены и пароли в переменных окружения и .env , некоторые записаны в файле env_file , используемом докером, часть значений нужно переопределить из кода, так как они заранее не известны, часть извлечь из аргументов программы.

Это ведет за собой менее красивый код, который обязан учитывать особенности хранения, приходится задумаваться, откуда мы берем очередное значения настроек, появляется несогласованность, ведь в одних местам мы обращаеся к os.environ , в других к глобальному словарю, в третьих, к сторонней библиотеке.

BestConfig

Блуждая по просторам всемирной паутины, идеального решения я не нашел и создал очень простую и удобную библиотеку, умеющую бороться в вышеперечисленными проблемами.

Поставил целью уменьшить количество кода чтения конфигов почти до нуля, но в тоже время оставить гибкость и возможность подкрутки под более специфичные задачи. Итак, давайе посмотрим, как импортировать например config.yml

И да, это все, что нужно сделать. Глобальный объект config уже будет содержать все необходимое. А теперь по порядку.

Что происходит при создании Config() :

Запускается поиск файлов, похожих на конфиги: любые комбинации имени conf, config, configuration, setting, settings с расширениями yml, yaml, json, ini, cfg, env в текущей директории и в папках выше, вплодь до корня проекта. Также в хранилище добавляются переменные окружения

Исходя из формата файла производится импорт содержимого

Создается класс ConfigProvider , предоставляющий универсальный доступ ко всему содержимому

Для самых дотошных

Посмотрим на примерах, в чем же «универсальность» объекта config

Обращение по ключу

Иногда мы хотим быть уверены, что значение принадлежит определенному типу

Преимущество такого подхода в том, что среда разработки сразу узнает тип и будет указывать на ошибки, также это дополнительная валидация самого конфига.

Иногда хочется где-нибудь в самом начале программы или скрипта убедиться, что необходимые переменные заданы, для этого предусмотренна специальная функция

Класс ConfigProvider наследуется от dict , поэтому его можно спокойно передавать в сторонние библиотеки.

Модификация

Помимо словаря метод insert принимает названия файлов (с абсолютным или относильным путем) любого из поддерживаемых расширений

Выше я приводил пример, в котором конфиг переменные объявляются прямо в .py файле. Если в проекте уже используется такой вариант, необязательно всё менять, на этот случай есть метод update_from_locals

В питоне есть встроенная функци locals() , она возвращает словарь локальных переменных, имеено ее и использует данный метод. Там, конечно, рассматриваются добавляемые объекты и лишние отсеиваются (подробнее в документации).

Кастомизация

По умолчанию Config() делает довольно много всего, с целью быть универсальным, но содежит ряд аргументов, регулирующих это поведение.

Установка

Best practices

Обобщу процесс взаимодействия с конфигами с использованием библиотеки bestconfig.

Статичные настройки, не содержащие ключей лежат в файле config.yml в корне проекта

Переменные окружения и ключи задаются в .env и игнорируются системой контроля версий

Файл config.py содержит создает класс Config и выполняет другие настройки (например логгирование, версия проекта, обработка параметров запуска и тд)

В других местах проекта делаем from config import config и используемый нужные данные удобным образом

Резюме

Библиотека создана чтобы максимально упростить распространенную задачу по обращению к файлам настроки, ее основные фичи и особенности:

Поддержка множества форматов файлов

Интерфейс доступа к данным «на любой вкус» (по ключу, через точку, через get и тд)

Маленький вес (примерно 15 кб)

Чистый, типизированный, расширяемый python код на модульной архитектуре

Открытость к изменениям и дополнениям (pull request-ы приветствуются)

Есть и недостатки:

У проекта появляются лишние зависимости. Например вы не используете yaml, однако библиотека подтягивает pyyaml

Захват лишнего. Вы можете написать Config() и даже не обратить внимание, сколько всего попало в config, одни переменные окружения чего стоят — их может быть очень много. И вывод print(config) становится абсолютно не читаемым

Теперь, при создании нового sandbox проекта или усложении текущего еще одним видом конфигурационных файлов, вы можете выбрать из своего арсенала еще один инструмент!

Источник

Настройки конфигурации

Настройки проекта (template_config.yml)

Ниже представлено описание основных параметров конфигурационного файла template_config.yml :

Тестовая среда или окружение. Возможные значения:

Если environment входит в health_check.debug_envs, то в проекте появляется возможность вызвать запросы с информацией об утечках памяти от memstats :

  • get_meminfo (http://0.0.0.0:1234/ meminfo ),
  • show_growth (http://0.0.0.0:1234/ objgrowth ),
  • show_most_common_types (http://0.0.0.0:1234/ objtypes ),
  • get_leaking_objects (http://0.0.0.0:1234/ objleak ).

Также этот параметр можно использовать как условия (Requirements)

Способ хранения статики:

  • ceph (дополнительно необходимо задать ceph_config.yml)
  • os (в локальной файловой системе)

Проверка состояния приложения средствами Open Shift. Рекомендуется оперировать следующими параметрами:

  • debug_envs
  • enabled

Настройка отправки метрик в Prometheus:

  • true — включить отправку метрик
  • false — отключить отправку метрик

Включение проверки на изменение данных пользователя с момента чтения. Проверка запускается при сохранении в базу:

  • true — делать проверку
  • false — не делать проверку

Если по итогам проверки данные изменились, необходимо вычитать свежие данные и прогнать всю обработку

При сохранении данных в db_adapter.type:ignite возможны коллизии, (перезатирание результата предыдущей ноды). Если включена обработка коллизий, то последнее состояние не будет записано — нода вычитает новое состояние и повторит последний запрос с новым состоянием. Чтобы выключить обработку коллизии, необходимо передать 0

  • ignite:
    • в cache_name указывается имя кеша,
    • в url указывается ip БД,
    • в try_count — количество попыток подключения при недоступности БД
  • memory — кеш хранится в локальной памяти и дополнительные поля в конфиге не нужны.
  • redis — набор полей в конфиге определяется документацией класса Redis из redis-py.

Поля из этого конфига маскируются в логах. Принимает значение в виде списка полей из payload

Настройки логирования (logging_config.yml)

Настройки нативного Python модуля logging. Ниже представлено описание основных параметров конфигурационного файла logging_config.yml :

Название параметра Описание
environment
health_check
jaeger_config

Настройка трассировки. Рекомендуется оперировать следующими параметрами:

  • enabled
  • trace_id_header (уникальный трейс id сервиса)
monitoring.enabled
masking_fields

Куда записывается лог — в консоль или файл

Количество файлов до ротации .

Всё хранится в памяти пода, поэтому не рекомендуется передавать большое число

Форматы для корректной работы с файлбитом .

Указанные значения рекомендуется оставить без изменений

Настройки Ceph (ceph_config.yml)

Настройка файла осуществляется, если при настройке проекта в template_config.yml был передан параметр data_adapter: ceph .

Настройки необходимо разбить на 2 файла — configs и secrets. Для загрузки необходимо использовать следующую команду:

ceph_config в secret:

Настройки Kafka (kafka_config.yml)

При использовании подключения по протоколу SSL необходимо прописать блоки с настройками сертификата в publisher (настройки того, кто пишет) и в consumer (настройки того, кто читает).

Ниже представлено описание основных параметров в publisher:

Параметр Описание
level Минимальный уровень логирования
handlers class logging.handlers.RotatingFileHandler — настройка, чтобы файлы с логами перезаписывались
backupCount
maxBytes Размер файла в байтах. При превышении указанного значения создается новый файл
formatters

Отключение клиентом запроса на получение версии брокера. Если не прописать эти параметры, то при нестабильной работе на стороне Kafka, произойдет потеря заголовков (headers)

Время, в течение которого клиент остается в poll при вычитке коммита. Управление возвращается, если:

  • получен результат коммита
  • или истекло указанное время
Параметр Описание
conf Передача параметров конфигурации для confluent_kafka
bootstrap.servers IP сервера Kafka (брокера)
broker.version.fallback
api.version.fallback.ms
poll_timeout
topic Топики, в которые осуществляется запись. Для удобства использования ключ размещен в коде, так как топики могут меняться

Ниже представлено описание основных параметров в consumer:

Время, в течение которого клиент остается в poll при ожидании нового сообщения. Управление возвращается , если:

  • новое сообщение не получено
  • или истекло указанное время

Если значение false, то при подключении нового клиента все непрочитанные сообщения будут прочитаны.

Если сервис был долго недоступен, то при поднятии он будет вычитывать все полученные сообщения, в том числе неактуальные. Но при падении пода это позволяет другому поду подхватить его сообщения

Параметры в таком сочетании свидетельствуют, что offset будет закоммичен раньше, чем будет обработано сообщение. Это позволяет не ждать коммита offset после вычитки сообщения и гарантирует, что сообщение не будет потеряно.

Источник

Как настроить EssentialsX (config.yml)

Как настроить EssentialsX | Подробный туториал

Добро пожаловать на туториал по настройки Essentials . Все ссылка и полезная информация находиться тут . На сервере для этого видео не будут стоять плагины, которые каким либо образом буду влиять на настройку, например плагин на чат, таб и тому подобные. Вы сейчас видите на экране плагины которые установлены на сервере для этого видео. Прежде чем я начну рассказывать, вдруг кто не знает, во время настройки разных параметров, false будет означать нет, а true — да. То есть какой_либо_параметр двоеточие true означает что параметр будет выполняться, а false — не будет. Возможно я не совсем корректно написал, но суть надеюсь вы поняли.

Не буду сильно затягивать со вступлением, переходим к самой настройке. Можете использовать сочетание клавиш CTRL + F для быстрого поиска нужного вам параметра.

Все нужные ссылки вы сможете найти в разделе дополнительные материалы.

Первый параметр, ops-name-color — это цвет ника с OP в чате. Символа цветового кода указывать не нужно, можно сразу вписывать букву или цифру. Ссылка на ID цветов будет в описании. Например сейчас у игрока с OP цвет ника будет красным.

По личному опыту могу сказать, что эта настройка не очень важна, так как в большинстве случаев у вас будет стоять плагин который изменяет форматирование, например Chatty .

Данный параметр отвечает за символ, который будет стоят перед искусственно установленным никнеймом, влияет только на чат. Это относиться к команде / nick с помощью которой вы можете установить себе абсолютно любой ник и чтобы отличать настоящий ник от не настоящего, можно добавлять разные символы перед ним.

Тут и так всё интуитивно понятно, это максимально допустимая длина ника. В подсчёт также включается префикс, так что не ставьте слишком маленькое значение. Советую устанавливать в диапазоне от 18 до 24, так как некоторые плагины не смогут работать при значениях больше, например плагин Party and Friends Extended работает с никами длиной не больше 24 символов.

Это дополнение к max-nick-length . Если стоит false , то при подсчёте длины ника будут учитываться цветовые коды, например ник &4Y&0T будет длиной не в 2, а в 6 символов. Если же будет стоять true , то длина ника &4Y&0T будет 2 символа.

Будет ли отображаться игрок в ванише в табе . Приписав команду / vanish игрок автоматически становиться невидимым для других, а эта настройка позволит скрыть данного игрока еще и в табе .

Ставьте false в случае если какой-либо плагин отвечающий за отображение ника будет конфликтовать с Essentials .

По умолчанию данный параметр закомментирован, если вы хотите чтобы, например ник, установленный вами через команду / nick или же цвет игрока с OP точно также как и в чате работал в табе , можете убрать комментарий и оставить true .

Отвечает за отображение префикса перед ником в чате без дополнительных плагинов. Например можно отобразить префикс с LuckPerm .

Тоже самое что и предыдущий параметр, только в табе . Но всё же я советую использовать сторонние плагины для отображения префиксов и суффиксов в чате или табе .

Если установлено на true , то при попытке телепортировать игрока в лаву или в пустоту, игрок будет телепортирован на ближайший безопасный блок. Если же вы поставите false тогда игрок просто не сможет телепортироваться или тот, кто телепортирует принудительно игрока не сможет это сделать.

Если поставить true на этом параметре и предыдущем, то игрока можно будет телепортировать в небезопасные места. Крайне не рекомендую ставить true , так как тогда игроки смогут телепортировать, других, например в лаву или скидывать с высоты.

Сколько нужно будет ждать в секундах между телепортациями, например / home или / tp . Время указывается в секундах.

Через сколько начнётся телепортация. То есть для телепортации игроку нужно будет стоят неподвижно указанное вами число секунд. Может быть полезно для того, чтобы предотвратить телепортации игроков во время ПВП и других ситуаций, избежать которые можно с помощью телепортации.

Параметр указывает длительность защиты после телепортации. Игрок, которого телепортировали не сможет никого бить и его самого не смогут быть. Время указывается в секундах.

Если стоит значение true , то при телепортации игрок автоматически будет телепортирован на центр блока.

Задержка в секундах перед повторный использованием команды / heal .

Радиус сканирование игроков по близости при вводе команды / near . Указывается в блоках.

Получение каких вещей будет запрещено через команду / item и / give . Указывается ID. Игроки с разрешением essentials.itemspawn.exempt будут игнорировать запрет.

Если включить данный параметр, тогда он будет контролировать вещи, которые игроки смогут получить через команду / item или / give . Выше вы видите какие нужно будет выдавать игроку разрешение для получения определённой вещи через команду / give или / item .

Максимальное число мобов, которое можно заспавнить за одно использование команды / spawnmob .

Данный параметр отвечает за отправку уведомления игроку, если в него ударила молния через команду / lightning ник. Если вы просто наведёте курсор на игрока и призовёте молнию с помощью команды / lightning без указания ника — никакого оповещения игроку не будет, даже если стоит true.

Если установлено значение false и у игрока будет заполнен инвентарь при попытке выдать ему кит или же какой-либо предмет, предмет просто пропадет. Если поставить true , тогда предметы буду выбрасываться на землю возле игрока.

Если стоит true , то игроку будет отправляться сообщение что новых писем нет ( писем отправленных через команду / mail ), если же указать false , то при отсутствии почты при заходе на сервер игрок не получит никакого уведомления.

Через сколько секунд игроку будет выводиться сообщение о том, что у него есть письма отправленные через команду / mail . Время указывается в секундах и работает только когда игрок каким-либо образом взаимодействует с командами. То есть, если игрок будет просто бегать по миру, уведомления приходить не будут.

Essentials по умолчанию дает приоритет плагинам, если они пытаться перезаписать его команды. Но если вам по каким-то странным причинам нужно форсить команду Essnetials , то тут вы можете указывать команды, которые Essentials будет пытаться выполнить вместо другого плагина. Но это не дает вам полной уверенности, что Essentilals возьмет управление на себя, иногда может победить другой плагин.

Этот параметр позволит отключить обработку определённых команд Essentials . Например у вас стоит плагин на чат и вам нужно отключить команду / msg . Вы можете указать ее тут и Essentials перестанет каким-либо образом влиять на данную команду.

Список команд, которые вы будете просматривать в режиме слежке (войти в который можно через команду / socialspy ). Тут вы также можете указать команды из других плагинов или же убрать команду, которые не хотите отслеживать. Вы также можете указать ‘*’ для того, чтоб отслеживать абсолютно все команды на вашем сервере.

Если стоит значение true , то вы также будете отслеживать сообщения, отправленные игроками, на которых наложен мут . То есть они не могут каким либо образом писать в чат, но вы увидите что они пытались написать.

Команды, которые запрещены во время мута . Это полезно когда у вас на сервере стоит какой-либо плагин, где также присутствует обмен сообщениями. Просто указываете команду и во время мута игрок не сможет ее выполнять.

Данный параметр указывает список команд, которые будут доступны игрокам по умолчанию. Правильне будет сказать — список разрешений на команды, просто без приставки “ essentials .”. Работать это будет в случае того, что у вас нет плагина на распределения прав, например LuckPerms и в настройках сервера стоит “ use-bukkit-permissions : false ”.

Если значение установлено на true , то киты которые можно использовать только один раз пропадут из списка китов после использование. Список доступных китов игрок может узнать с помощью команды /kit. Одноразовые киты — это киты, в настройках которых будет указано delay меньше нуля. Об китах я еще напишу, но во второй части.

Отвечает за метод создания новых китов. False означает что прописав команду / createkit вы создадите новый кит непосредственно в конфиге китов, то есть в файле kits.yml . Если установить true , то новый кит будет создаваться на hastebin , то есть после ввода команды / createkit , в чате появиться ссылка на страницу с китом, но в kits.yml изменений не произойдёт.

Чтобы включить какой-либо тип таблички просто уберите комментарий с нужной вам строки, то есть уберите символ решетки. Если включить какую-либо функцию, например balance, функция color автоматически становиться доступной.

Первый параметр, color — это возможность писать цветным текстом на табличках. Работает точно также как и цветной текст в чате, то есть указываете символ цвета и вводите нужную цифру или букву. Для создания цветной таблички нужно разрешение essentials.signs. color , если нужно форматирование по типу нижнего подчёркивания — essentials .signs.format, а для использования форматирования матрица (тест будет постоянно меняться) понадобиться разрешение essentials .signs.magic.

Balance — по нажатию на табличку игроку будет выводить его баланс (для валюты нужен плагин Vault , ссылка будет в описании). Чтобы создать такую табличку напишите слово balance в квадратных скобках . Для использование нужно разрешение essentials.signs.use.balance .

Buy — это покупка/продажа вещей. Для создания таблички с помощью которой игроки смогут покупать предметы нужно написать в первой строке Buy , во второй количество предмета, в третей — ID предмета и в последней — цена, перед цифрой нужно будет поставить знал доллара ( $) . Для использования таблички нужно разрешение essentials.signs.use.buy .

Sell — с помощью этой таблички игроки смогут продавать свои вещи и получать за это деньги. При создании делается всё идентично что и с buy . Только в первой строке вместо слова Buy нужно написать Sell . Для использования таблички понадобиться пермишен essentials.signs.use.sell.

Trade — данный тип табличек позволит игрокам обмениваться предметами. Это почти тоже самое, что таблички buy и sell , только для их создания не нужно было отдавать предмет, зачастую к таким табличкам доступ есть только у администрации. А для создания данного типа табличек нужно чтобы у игрока был товар, который он хочет продать, поэтому trade могут использовать уже игроки. Для использования нужно разрешение essentials.signs.use.trade , а для создания таблички — essentials.signs.create. trade . Чтобы создать такую табличку в первой строке нужно написать слово trade в квадратных скобках, во второй — цену и в третей строке количество предметов на продажу, затем через пробел ID предмета, двоеточие количество которое вы хотите загрузить в табличку, указанное количество должно быть у вас в инвентаре.
Не рекомендую использовать таблички buy, trade, sell так как они уже давно устарели. Советую использовать для действий описанных выше сторонние плагины.

Free — данный тип позволит игрокам использовать табличку как одинарный сундук, только вещи в нём не будут заканчивать. Чтобы создать такую табличку в первой строке укажите в квадратных скобках Free , а ниже ID блока или предмета. Разрешение на использование — essentials.signs.use.free .

Disposal — эта табличка также будет вести себя как одинарный сундук, только вещи, положение в нее будут исчезать. Disposal. Для использования нужно разрешение — essentials.signs.use.disposal.

Warp — вы можете создать эту табличку двумя способами, первый — это написать в первой строке Warp , а во второй уже название самого варпа. Когда игрок будет нажимать на табличку его будут проверять на наличие разрешения essentials.warps . .

Kit — суть почти та же что и в warp , только тут вы указываете название кита, а вместо Warp пишите Kit . Kit . Давайте на всякий случай покажу вам как создать доступную всем игрокам табличку с китом Tools и ценой 100 долларов за использование. Тут нам также придется выдать игроку разрешение — essentials.signs.use.kit . Игрок сможет использовать табличку без разрешения на использование кита. Задержка установленная в ките игнорироваться не будет.

Mail — табличка позволит проверять почту по нажатию на нее, по сути это то же самое что и команда / mail read . Для использования таблички нужно разрешение essentials.signs.use.mail . Если у игрока будет разрешение на использование данной таблички, разрешение на команду / mail read для использования данной таблички не нужно.

Enchant — позволит зачаровать предмет с помощью нажатия по табличке. В первой строке указываете как всегда в квадратных скобках, Enchant , во второй — ID предмета, если указать звёздочку ( *) или any , можно будет зачаровать абсолютно любой предмет, в третей строке нужно указать название зачарования и через двоеточие уровень. В последней строке цену. Обращаю ваше внимание, что при указании звёздочки или any , вы всё равно не сможете, например наложить зачарованные защита на блок. Также нельзя указывать уровень зачаровния выше, чем допустимый в обычной игре. То есть если вы укажите protection:100, то оно автоматически замениться на protection:4.

Gamemode — в первой строке пишите gamemode Gamemode , во второй — режим, например Creative и в третей по желанию можно указать цену, если ничего не указывать, то за использование таблички игрокам не нужно будет платить. Во время использование таблички, игроку не нужно разрешение на какой-либо режим, лишь разрешение на использование самой таблички — essentials.signs.use.gamemode .

Heal — позволит по нажатию на табличку восстановить здоровье и голод игрока. Эффект точно такой же, как и от команды / heal . Для создания в первой строке нужно указать Heal *([ Heal ])*, во второй стоимость, по желанию. Для использование нужно будет разрешение essentials.signs.use.heal . Во время использование нет задержки.

Info — по нажатию на табличку этого типа, вы можете вывести определённую информацию игроку, которая будет находиться в файле info.txt в папке Essentials . В первой строке вам нужно написать Info Info , во второй указать абзац в файле info.txt, на абзацы этот файл разбивается с помощью решетки, например Colors , как видите перед ним указан символ решетка, затем нужно указать слово без пробела. . Давайте покажу на примере этого абзаца Colors. Для того чтобы вывести абзац Colors , нужно во второй строке таблички указать его название. Затем в третей строке указать страницу (если информация длинная и она автоматически разделяется не несколько страниц). В нашем случае ставим цифру 1. Затем по желанию можно указать цену в четвертой строке. Для использования данной таблички нужно разрешение — essentials.signs.use.info.

Spawnmob — используется для призыва мобов. В первой строке нужно написать Spawnmob , во второй — количество и в третей — название моба, можно через двоеточие писать tamed , что позволит призывать сразу прирученного моба, конечно если его возможно приручить, например wolf двоеточие tamed позволит призвать сразу прирученного волка. Ограничение по количеству будет действовать во время призыва, значение под названием spawnmob-limit , о котором я говорил раннее. Для использования этой таблички нужно разрешение essentials.signs.use.spawnmob и разрешение для призыва указанного на табличке моба. Например доя того же волка, нужно будет выдать дополнительно разрешение essentials.spawnmob.wolf . Также по желанию можно указать цену.

Repair — починка вещей по нажатию. Работает почти также как и команда / repair . В первой строке нужно написать repair , во второй hand или all . Hand означает что будет отремонтирован предмет, который вы держите в руке, а all , что будут отремонтированы все предметы в инвентаре. В третей строке можно указать стоимость. Давайте для примера создам табличку, которая починит все вещи в инвентаре за 10 тысяч долларов. Для использования данной табличке нужно разрешение essentials.signs.use.repair .

Time — табличка для изменения времени суток. В первой строке нужно указать Time , во второй — день или ночь, то есть day или night , в третей стоимость по желанию. Чтобы использовать эту табличку понадобиться разрешение essentials.signs.use.time .

Weather — почти то же самое что и time , только тут уже изменяется погода. В первой строке пишем Weather , во второй — sun или strorm , то есть ясная погода или дождь и в третей цену также по желанию. Разрешение на использование — essentials.signs.use.weather .

Сколько раз можно выполнять какие-либо действия с табличками каждому игроку. То есть значение 4 означает что игрок сможет использовать 4 таблички в 1 секунду. Автор плагина рекомендует ставит значения от 1 до 20, где 1 — минимальная нагрузка, а 20 — это почти гарантированные лаги.

Разрешить использовать старые ID в 1.13 и выше на уже установленных табличках. Вы не сможете использовать ID предметов на новых табличках, но данная настройка позволит взаимодействовать игрокам с табличками, которые были установлены на ниже 1.13.

Этот параметр полезен, если у вас установлен какой-либо плагин, который также использует таблички, например табличку kit и вы не хотите чтобы EssentialsX обрабатывал этот тип таблички, просто укажите его ниже.

Тут вы можете запустить batch или bash команды, которые будут выполняться с интервалом указанным ниже. Это может быть как сохранение мира так и абсолютно любая команда.

С каким интервалом в минутах будет выполняться команда указанная в секции command. Если хотите включить данную функцию, уберите комментарий с command.

Если поставить true , то для телепортации на определённый варп игрокам нужно будет выдавать разрешение — essentials.warps .[название-варпа]. То есть для телепортации на warp test игроку нужно будет разрешение essentials .warps. test . Если данная настройка выключена, то есть параметр false , то игроки смогут телепортировать на любой варп без дополнительного разрешения, но для использования команды warp в обеих вариантах игроку понадобиться разрешение essentials.warp .

Распределить игроков, которые будут отображаться при вводе команды / list . По умолчанию, если группа не указана ниже, то будет выводить название группу и игроки, состоящие в ней. Можно спрятать определённую группу написав после ее названия слово hiden . Также можно автоматически отображаться игроков не распределённых выше, введя после названия звёздочку. Если вы захотите указать несколько групп, делать это нужно через пробел, например Admins : admin пробел owner .

Режим отладки, включайте если у вас что-то не работает по непонятной причине или вам нужно проследить выполнение какой-либо команды. В консоль будет выводить расширенная информация где вы сможете найти ошибку или понять что не так сделали. Если всё работает, не нужно трогать данный параметр.

Тут вы можете указать язык, если у вас по умолчанию не стоит русский, тогда уберите комментарий с данной строки и напишите после двоеточия ru . Также не все знают, где можно изменять сообщения EssentilasX , для этого найдите EssentialsX.jar в списке ваших плагинов и откройте его с помощью winRAR , там вы увидите файлы с названием по типу messages_две-буквы.properties , нас интересует messages_ru.properties затем для удобства перетяните куда-то на время файл и затем откройте его с помощью Notepad ++. Там вы увидите много непонятного текста, но не переживайте, вам понадобиться сайт, ссылка на него будет в описании, с помощью которого вы сможете нормально читать и редактировать данный текст. После того как зашли на сайт, нужную строку копируем и вставляем в левую часть, затем ниже выбираем Java entities в UTF-8 и нажимаем Convert . Теперь копируем текст, изменяем его как вам нужно и вновь вставляем в левую часть только теперь выбираем наоборот, то есть UTF-8 в Java entities и нажимаем ту же кнопку Convert, теперь этот текст вставляем в нужную строку, сохраняем, переносим данный файл в архив и заменяем, перегружаем плагин. Поздравляю, всё готово.

Когда игрок выходит с сервера, выключать режим бога или нет. Войти в этот режим можно через команду / god . Но обращаю ваше внимание, что если режим бога игроку был выдан другим игроков или командой, то есть у самого игрока нет разрешения essentials.god , то при пере заходе у него автоматически отключиться режим бога не в зависимости от данного параметра.

Через сколько секунд автоматически отправлять игрока в AFK. Если поставить -1, это будет означать что игроки никогда не войдут в АФК. Для этой функции игроку нужно разрешение essentials.afk.auto .

Через сколько секунд игрока кикать с сервера, если он будет в AFK. -1 означает отключить данную функцию.

Если поставить true , то когда игрок войдёт в AFK у него автоматически включиться режим бога и игрок не будет получать какой-либо урон. Чтобы выйти с этого режима игроку нужно будет использовать команду / afk . Для использования команды / afk понадобиться разрешение essentials.afk . Не советую включать данную настройку, так как игроки будут пользоваться этим.

Поднятие вещей с земли когда игрок AFK. False означает что во время AFK игрок сможет подбирать вещи, а true — не сможет.

Автоматически выходить с AFK во время взаимодействия. Если отключить данную настройку чтобы выйти с AFK игроку нужно будет прописать команду / afk .

Выходить с AFK при движении игрока. Если значение установлено на true , то игроку нужно будет подвигаться чтобы выйти с AFK. Обычное вращение головой не учитывается.

Следует ли игнорировать АФК игроков, когда другие пытаются поспать. Если поставить false , то игроки не смогут пропустить ночь пока кто-то находиться в АФК. Игроки с разрешением essentials.sleepingignored буду игнорироваться вне зависимости от данной настройки .

По умолчанию Essentials никак не взаимодействует с ником AFK игрока, но вы можете, например установить префикс AFK в табе или вовсе вместо ника игрока отображать AFK. Но я считаю что лучше не строгать данную настройку, ведь если у вас стоит плагин, который также влияет на таб , например плагин под названием TAB, в нём уже есть подобная функция.

Здесь вы можете отключить сообщения о смерти. True — значит что сообщения включены, если поставить false , то EssentilasX будет скрывать все сообщения об смерти.

Разрешить игроку с разрешением essentials.silentjoin заходить на сервер без сообщения о входе, а с разрешением essentials.silentquit незаметно выходить. Если стоит false , то сообщения всегда будут отображаться. Данная настройка не всегда актуальна, так как в большинства есть другие плагины, которые обрабатывают сообщения о заходе и выходе игроков.

Можно указать свое собственное сообщение о входе игрока. будет заменяться на ник игрока, а на отформатированный ник игрока. Если стоит none , то будет отображаться стандартное сообщение.

То же самое, только уже для сообщения о выходе игрока с сервера.

В каких мирах нельзя будет включать режим Бога. Через ту же команду / god .

Ставьте true если вам нужно распределять разрешения на телепортации в разных мирах. Будет применяться к командам / world , / back , / tp , но на команды / warp и / home действовать не будет. Для того, чтобы разрешить игроку телепортироваться в определённом мире, нужно будет выдать разрешение essentials.worlds . .

Сколько блоков будет выдаваться игроку при вводе команды / give или / item без указания количества. Если число указанное в этом параметре меньше единицы тогда будет выдаваться количество, указанное в параметре oversized-stacksize , если же вы укажите число больше единицы, тогда игроку будет выдаваться указанное вами число.

Максимальное количество предметов в одном стаке . Влияет на стаки полученные командой / give или / item .

Можно ли чинить с помощью команды / repair зачарованные вещи. Если изменить на false , вы всё равно можете разрешить починку зачарованных вещей выдав игроку разрешение essentials.repair.enchanted .

Небезопасные зачарования . True будет означать что игроки смогут командой зачаровывать предметы, на которые в обычном Майнкрафте нельзя наложить зачарования , а также можно будет зачаровывать предметы на любой уровень.

Если установить true , посторонние плагины смогут регистрировать предыдущее положение игрока.

Через сколько секунд после входа на сервер игрок сможет наносить урон.

Максимальная скорость полёта. Указывать в диапазоне от 0.1 до 1.0.

Максимальная скорость ходьбы. Диапазон тот же.

Сколько писем сможет отправлять игрок в минуту с помощью команды / mail .

Максимальное время в секундах на сколько можно временно забанить игрока. -1 значит отключено, то есть игрока можно будет временно банить на неограниченное время. Для игнорирования этой настройки определённой группой или игроком есть разрешение essentials.tempban.unlimited .

Меняет функционал быстрых ответов на сообщения, если значение стоит true , то команда /r или же / reply отправит сообщение игроку, с которым вы переписывались последними, в противном случае к первому, кто отправил вам сообщение. Если же поставить false , тогда /r отправит сообщение последнему человеку, который вам написал.

Сколько секунд игрок, отправивший личное сообщение будет считаться последним отправителем, работает если значение last-message-reply-recipient установлено true .

Если стоит true , то кликнув ведром с молоком ЛКМ по любому мобу, игрок сможет превратить этого моба в маленького.

Отвечает за сообщение, которое при заходе на сервер сообщает игроку что у него включен режим полёта. Если поставить false , то при заходе сообщение не будет выводиться.

Если включить, то для установки времени в мире, игроку понадобиться дополнительное разрешение essentials.time .world . , Влияет на команды / time , / day , / eday , / night , / enight , / etime . Не забывайте что у игрока уже должно быть разрешение на использование команд для установки времени в мире — essentials.time .

Задержка на использование команд. Начнём по порядку, чтобы поставить задержку на команду, нужно написать саму команду без слеша (/), а затем через двоеточие время в секундах. Если вы хотите поставить задержку на любую команду содержащую i, нужно с двух сторон выделить ее звёздочками (*i*). Также поддерживается regex. Задержка будет срабатывать даже если у игрока нет разрешения на команду, что конечно не всегда хорошо.

Будет ли сбрасываться задержка на команды после перезагрузки сервера. True — значит что даже если перезагрузить сервер задержка на следующие использование всё равно останется.

Будет ли учитываться баланс NPC в командах по типу / balancetop . Полезно если у вас стоит какой-либо дополнительный плагин на фракции.

Позволит игроку во время нажатия на SHIFT покупать или продавать сразу несколько предметов.

Через сколько миллисекунд после захода показывать игроку приветствие, которое находиться в motd .txt. Если функция отображения motd выключена, то настройка не имеет смысла. Для того, чтобы игрок увидел приветствие нужно выдать ему разрешение essentials.motd .

Тут вы можете указать команды, которые нужно будет подтверждать повторным написанием. Например если я добавлю сюда команду / clear , то для очистки инвентаря игроку понадобиться ввести команду повторно. Работает только с командами EssentialsX .

True означает что когда игрока выходит с тюрьмы, его будет телепортировать на предыдущую локацию, как будто игрок прописал команду / back .

Через сколько запрос на телепортацию автоматически отменяется. Если указать 0, то запрос не будет истекать.

Позволяет одевать на голову абсолютно любые блоки игрокам с разрешением essentials. hat . Если поставить false , тогда предмет можно будет одеть только через команду / hat .

Позволяет игрокам в игре указывать мир, при вводе команды / broadcastworld . Если поставить false , то сообщение автоматически отправиться в мир, в котором на данный момент находиться игрок.

Считается ли вода безопасным блоком. False означает что игроки не смогут телепортировать на воду командами по типу / home или / spawn .

Данную настройку нужно трогать только если ваш сервер для китайских игроков. Я не думаю что стоит на ней ос танавливаться .

Будут ли выводиться в консоль команды с командных блоков. True означает что любая команда выполнена командным блоком будет выводиться в консоль с координатами командного блока и самой командой.

True означает что когда игрока выходит с тюрьмы, его будет телепортировать на предыдущую локацию, как будто игрок прописал команду / back .

Тепер ь приступаем к ра зделам, рассматривать будем не все, так как видео тогда очень затеняться. Для работы некоторых разделов понадобиться устанавливать дополнительные плагины или плагины из скаченного в самом начале архива. Начнем с EssentialsHome , он присутствует в самом EssentialsX по умолчанию, так что скачивать ничего не нужно.

Будет ли обновляться кровать во время дня. То есть, если стоит true , то игроку не нужно будет спать чтобы установить спавн возле кровати.

Разрешение на телепортацию на home в другие миры. Если включить, то игроку понадобиться разрешение essentials.worlds . чтобы телепортировать в точку дома, установленную с помощью / sethome в этом мире. Для установки точки дома игроку нужно будет разрешение essentials.sethome , а для телепортации на нее — essentials.home .

Можно каждой группе распределить максимальное количество установленный хомов . По умолчанию игрок может установить не больше, чем 1 точку дома. Хочу обратить ваше внимание, что название групп ниже — визуальны, то есть они никак не связаны с названием групп в LuckPerms . Если вы хотите выдать какой либо группе определённое количество точек домов, нужно выдать этой группе разрешение essentials.sethome.multiple . . То есть ниже вы можете указывать абсолютно любое название, а затем выдавать разрешение с этим названием. Например чтобы игрок мог установить три точки дома нужно выдать ему разрешение essentials.sethome.multiple.default . Чтобы разрешить игроку использовать больше чем одну точку нужно будет дополнительно выдать разрешение essentials.sethome. multiple . Вы спокойно можете добавить свои группы, а также изменять количество. Для того, чтобы снять с игрока ограничение на сетхомы , нужно выдать ему разрешение essentials.sethome.multiple.unlimited .

Нужно ли игроку разрешение essentials.home.compass чтобы компас показывал на его первый дом. Если оставить false , то компас будет вести себя как в обычном ванильном мире.

Не знаю как это относиться к данному разделу, но всё же. Тут вы можете задать максимальную скорость снаряда заслоненного через команду / fireball .

Теперь переходим к разделу EssentialsEco . Для работы данного раздела вам понадобиться установить плагин Vault , ссылка на него будет в описании.

Начальный баланс, то есть сколько у игрока будет денег при первом заходе на сервер. Указывать цифру без каких-либо символов.

Стоимость выполнения команды. Указываете команду без слеiа и через двоеточие ее стоимость. При выполнении будет проверяться есть ли у игрока разрешение на эту команду или нет, если разрешения нет, деньги не будут списываться с баланса игрока. Но будьте с этим осторожны, так как игрок платит за выполнение команды, не в зависимости от контекста, то есть если поставить стоимость команды / god 100 долларов, то как при включении так и при выключении с игрока будут списывать деньги.

Символ, которым будет обозначаться валюта. Можно менять на спец символы, только кодировка документа должна быть в UTF-8. Текущую кодировку в Notepad ++ можно посмотреть в нижнем правом углу. Если у вас другая кодировка тогда подымаемся в верхний левый угол, ищем кодировка, затем преобразовать в UTF-8 без BOM и сохраняем.

Максимально допустимый баланс . По умолчанию он составляет 10 триллионов, больше поставить нельзя в связи с ограничениями в java . Но я не представляю для чего вам может понадобиться больше.

Минимальный баланс игрока. Если указать число меньше нуля, то игроки смогут заходить в минус, но для этого нужно будет разрешение — essentials.eco.loan . Если вы хотите полностью отключить эту функцию, установите значение 0.

Если включить этот параметр, все транзакции с серверной валютой будут записываться.

Минимальная сума, которую игроки смогут переводить другим игрокам с помощью команды / pay .

Ниже в закомментированных строках автор пишет что в зависимости от языка валюта будет отображаться по разному. Не думаю что стоит на этом останавливаться.

Теперь переходим в секцию EssentialsHelp . Тут также не нужно ничего доставлять, функция по умолчанию есть в самом EssentialsX .

Отвечает за отображение информации при вводе команды / help . Если стоит true , то при вводе игроком / help , он увидит список плагинов вашего сервера. Советую установить на false , тогда игрокам будет выводиться помощь только по командам плагина Essentials .

True означает что ели у игрока нет разрешения essentials.help . , то при вводе команды / help ему не будет отображаться помощь по данному плагину. Если выше вы поставили false , то данная настройка не актуальна.

Но я не советую вам использовать эти функции, если вам нужно скрыть плагины, установите NoPlugin , а оформить вывод текста с команды / help будет куда лучше через меню или дополнительный плагин.
Так как я хочу успеть рассказать об основных настройках EssentilasX и не сильно затягивать видео, EssentialsChat я пропускаю так как почти все устанавливают отдельный плагин на чат и вам советую делать также. EssentialsProtect и EssentialsAntiBuild также пропускаю, хоть это защита мира, но в большинстве случаев у вас будет стоять плагин WorldGuard , в котором также есть эти настройки. Возможно напишу об разхделах, которые сейчас пропуска, во второй части.

А вот Essentials Spawn пропускать не буду. Для работы данного раздела вам понадобиться установить essentialsspawn. jar из архива, скаченного вами ранее.

Это небольшой раздел и включает он в себя пару настроек. Сразу обращаю ваше внимание на то, что все настройки из этого раздела, то есть из раздела newbies применяться к игрокам, которые впервые заходят на ваше сервер, для удобства я буду называть их новичками или просто игроками.

Сообщение, которое будет выводиться игроку при заходе на сервер впервые. заменяется на ник игрока. Можно использовать цветовые коды. Если нужно отключить данную функцию, оставьте поле пустым.

Где будут спавниться игроки, зашедшие на сервер первый раз. Если вы хотите чтобы они спавнились в точке спавна мира, напишите none .

Какой кит будет выдаваться новичку. Если хотите отключить, также оставьте поле пустым.

Приоритет управления точкой респавна игрока. Если поставить none , игрок будет спавниться как в обычном Майнкрафте , lowest означает что контроль переходит к плагину Multiverse , если он у вас установлен, high — респавном игрока будет управлять EssentialsSpawn , а highest означает что EssentialsSpawn будет принудительно контролировать респавн игрока, актуально если какой-либо плагин пытается брать спавн на себя.

Обработка спавна игрока при подключении к серверу. Значения можно указывать те же, что я описывал выше. Обращаю внимание на то, что изменение этой настройки может сломать работу spawn-on-join .

Когда игрок умирает, респавнить его возле кровати или на его точке дома. False означает что игрок после смерти будет спавниться на спавне , установленным вами с помощью команды / setspawn .

Телепортировать игроков на спавн при вводе команды / home , если точка дома еще не установлена.

Телепортировать всех игроков, которые заходят на сервер на точку спавна. Для полноценной работы нужно настроить параметр ниже.

Тут вы можете указать группы, которые будут принудительно телепортированы на spawn во время захода на сервер. Группы указываться с LuckPerms или другого плагина на распределение прав. Указывать можно сразу несколько групп. Для обхода принудительного спавна можно выдать игроку разрешение essentials.spawn-on-join.exempt .

ДОПОЛНИТЕЛЬНЫЕ МАТЕРИАЛЫ

➤ Скачать архив (EssentialsX) — ссылка
➤ Vault — ссылка
➤ Сайт для работы с Юникодом (для перевода EssentialsX) — ссылка
➤ ID цветов — ссылка
➤ Страница c правами (пермишенами) для EssentialsX — ссылка

☛ BisectHosting (Майнкрафт хостинг) — ссылка (скидка 25% при вводе промо кода mr_dsa1)
✔ Поддержать канал и открыть доступ к эксклюзивному контенту (Boosty) — ссылка

Мое видео на YouTube

КОНЕЦ

Вот мы и закончили с настройкой конфига EssentilasX . Во второй части я обязательно разберу создание китов и остальное, что не успел в этой. Не забывайте что меня можно поддержать на Boosty ссылка на страницу, а также все полезные ссылки из этой статьи вы найдёте в разделе дополнительные материалы.

Источник

Читайте также:  Skype как настроить демонстрацию экрана
Оцените статью
Параметр Описание
poll_timeout
assign_offset_end
topics Топики, из которых читаются записи
conf Настройки файла конфигурации
bootstrap.servers IP сервера Kafka (брокера)
group.id Экземпляры с одинаковой группой распределяют между собой сообщения, т.е. если сообщение вычитал один клиент, то второй его уже не вычитает. Чтобы поды читали сообщения параллельно, необходимо указать для них разные группы
enable.auto.commit: true