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

Руководство по конфигурационным файлам

Эта страница поможет вам понять, как правильно редактировать файл .yml (.yaml). Все мои плагины используют конфигурационные файлы .yml, которые сбросятся или перестанут работать, если вы неправильно их отредактируете.

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

Как редактировать файлы .yml

Файлы хранятся в формате .yml, и Notepad++ является рекомендуемой программой для редактирования конфигурационных файлов. Разумеется, вы можете использовать любой другой текстовый редактор по вашему выбору.

Boolean

Значения Boolean — это true или false. Вот как они выглядят:

value1: true
value2: false

Boolean принимают только значения true или false. Обычно они используются для включения или отключения определённых функций.

String

Значения String обычно представляют собой обычный текст. Настоятельно рекомендуется заключать значения String в кавычки, следуя этому формату:

value: "String"

Хотя это не всегда обязательно, это обязательно для любой строки, содержащей цветовые коды, особенно если первый символ начинается с цветового кода. Цветовые коды следуют игровому формату цветовых кодов, то есть "&aTest" приведёт к зелёному тексту. Доступность цветного текста зависит от конкретной настройки конфигурации. Список цветовых кодов см. на этой странице.

Details

Почему? Строки конфигурации могут принимать специальные символы, такие как &. Если такие специальные символы стоят в самом начале, например в value: "&aString", и String не заключена в кавычки, значение будет стёрто, а параметр конфигурации будет сброшен к значениям по умолчанию. Это ограничение системы конфигурации, которую использует Spigot.

Serialized Location

Serialized Location — это особый тип String, который выглядит так:

location: world,1.0,2.0,3.0,4.0,5.0

Они используются для хранения и настройки местоположений. Формат: worldName,X,Y,Z,PITCH,YAW. Pitch и yaw просто определяют направление, в котором смотрит игрок, и реализованы так же, как локации в Minecraft.

Multiplier

Значения Multiplier умножают значения плагина на это число. Эти значения никогда не должны быть в кавычках. Вот пример:

damageMultiplier: 1.0

В этом случае множитель урона будет умножен на 1, то есть значение по умолчанию не изменится. Если бы Multiplier был 2.0, значение было бы умножено на 2.0. Если бы он был 0.5, оно было бы умножено на 0.5.

Для тех, кто не дружит с дробями: умножение на 0.5 равнозначно делению на 2. Значения Multiplier всегда должны быть больше 0 (0.0001 допустимо) и обычно не имеют верхнего предела.

Integer

Значения Integer — это просто целые числа. Пример:

value: 10

Вы можете рандомизировать эти значения для скриптов, используя ~. Пример:

value: 1~10

Главное правило для значений Integer — они должны быть целыми числами. То есть 10.1 недопустимо.

Double

Double — это десятичные числа, которые могут иметь дробную часть. Пример:

value: 10.01

Вы можете рандомизировать эти значения для скриптов, используя ~. Пример:

value: 1.0~10.01

Double также могут быть целыми числами, как integers, например 10.0 или даже представлены как 10.

Float

Float — это 32-битные десятичные числа с меньшей точностью, чем у Double. Пример:

value: 10.42452

Вы можете рандомизировать эти значения для скриптов, используя ~. Пример:

value: 1.0~10.42452

Float также могут быть целыми числами, например 10.0 или даже представлены как 10.

String List

String List — это списки значений String. Они, как правило, являются самыми сложными для настройки, так как требуют очень специфического формата конфигурации:

valuesList:
- "value,1"
- "value,2"
- "value,3"

Как и в случае со String, рекомендуется заключать значения в кавычки. Каждый String List имеет собственный формат, поэтому вам придётся найти конкретный формат, требуемый для редактируемого вами значения; однако в целом общий формат должен выглядеть именно так.

Map List

Map List — это списки значений Map. Они используются только в скриптинге EliteMobs и требуют такого формата конфигурации:

parentMap:
- Map1:
key: value
- Map2:
key: value
keyForList:
- "value1"
- "value2"

Как видите, Map List могут содержать любой формат внутри себя, но если вы используете их в скриптинге, вам придётся обратиться к документации, чтобы узнать, какие ключи и значения допустимы для разных карт.

Color Codes

Вы также можете назначать цвета или делать текст жирным с помощью следующих модификаторов:

КодЦветПример
&4Тёмно-красный
&4Пример тёмно-красного.
&cКрасный
&cПример красного.
&6Оранжевый
&6Пример оранжевого.
&eЖёлтый
&eПример жёлтого.
&2Тёмно-зелёный
&2Пример тёмно-зелёного.
&aЗелёный
&aПример зелёного.
&bАква
&bПример аква.
&3Тёмно-аква
&3Пример тёмно-аква.
&1Тёмно-синий
&1Пример тёмно-синего.
&9Синий
&9Пример синего.
&dСветло-фиолетовый
&dПример светло-фиолетового.
&5Тёмно-фиолетовый
&5Пример тёмно-фиолетового.
&fБелый
&fПример белого.
&7Серый
&7Пример серого.
&8Тёмно-серый
&8Пример тёмно-серого.
&0Чёрный
&0Пример чёрного.
&rСброс цвета&rПример сброса.
&lЖирный&lПример жирного.
&oКурсив&oПример курсива.
&nПодчёркнутый&nПример подчёркнутого.
&mЗачёркнутый&mПример зачёркнутого.
&kСлучайный&k
&fпример.

Как видно в примерах, модификаторы следуют обычному синтаксису Minecraft, за исключением того, что § заменяется на & при использовании с EliteMobs. Вы можете использовать это для изменения большей части текста EliteMobs, например, имён мобов, текста квестов, названий подземелий и т.д.

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

Также можно комбинировать цвета и другие модификаторы текста. Например, можно сделать:

&a&oЧтобы получить зелёный текст курсивом.

Если бы мы хотели, чтобы наш кастомный моб имел красивое цветное имя, мы бы сделали следующее:

name: $normalBossLevel &aScary &dDragon

Начиная с EliteMobs 10, для любого текста EliteMobs также можно использовать цветовые градиенты, как показано в этом примере:

name: "&cNormal Red Text <gradient:#FF6B00:#FFD700:#FFFF00> Cool Gradient Text </gradient>"

В этом примере:

  • &c применяет стандартное красное форматирование к тексту перед градиентом.
  • <gradient:...> начинает определение градиента.
  • #FF6B00, #FFD700 и #FFFF00 — цвета, используемые в градиенте.
  • Cool Gradient Text — текст, к которому применяется градиент.
  • </gradient> завершает участок градиента.

Затрагивается только текст внутри тегов градиента; форматирование за пределами тегов остаётся без изменений.

Градиенты больше не являются функцией одного лишь EliteMobs. Парсер текста находится в MagmaCore, поэтому тот же синтаксис работает в конфигурационных файлах каждого плагина, который его поставляет, наряду с остальным набором тегов MiniMessage (<rainbow>, <#RRGGBB>, именованные цвета вроде <red>, оформление вроде <bold> и так далее). Полный список см. в Цветовых кодах.

Material

Значения Material — это просто Material, которые можно найти в Minecraft, например IRON_CHESTPLATE. Список допустимых Material см. на этой странице.

helmet: IRON_HELMET

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

Filename

Значения Filename — это просто конфигурационные файлы .yml, отформатированные для использования с плагинами MagmaGuy. Это может быть что угодно — от предметов до квестов.

uniqueLootList:
- filename: magmaguys_toothpick.yml

Обрезка миров

Иногда вам может потребоваться уменьшить размер вашего мира Minecraft, чтобы сделать его легче и, следовательно, проще распространять. Этого можно достичь с помощью плагина WorldBorder. Несмотря на то, что на странице плагина указана поддержка только старых версий, WorldBorder обычно работает и на актуальных версиях Minecraft. Проверьте совместимость в вашей среде.

Details

Совет Если вы делаете это впервые, возможно, будет хорошей идеей создать резервную копию вашего мира на случай, если что-то пойдёт не так.

После установки плагина перейдите к центру мира или к конкретной области, которую вы хотите обрезать. Затем выполните команду /wb set x, где x — это приблизительный радиус нужной вам области.

Details

Совет Если /wb не работает, попробуйте /worldborder:wb.

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

trim_pic_1.jpg

На изображении выше мы хотим обрезать мир вокруг фиолетовых блоков, оставив вокруг них всего несколько чанков. Чтобы добиться этого, мы стоим посередине фиолетовой области на красных квадратах и выполняем /wb set 50, устанавливая границу мира чуть за пределами фиолетовой области.

Далее мы используем команду /wb trim [freq] [pad] с частотой 200 и pad 20. Pad определяет, сколько чанков должно быть оставлено вокруг границы мира (фиолетовая область), а частота определяет, сколько чанков обрабатывается в секунду. После выполнения /wb trim 200 20 нам будет предложено подтвердить действие командой /wb trim confirm. Мы подтверждаем действие, и через некоторое время наш мир будет обрезан, что уменьшит его размер и сделает более удобным для распространения.

Теперь вы можете удалить границу мира командой /wb clear all или просто оставить её, если хотите.

Обрезка папки мира

Остановите сервер и работайте с резервной копией. Не удаляйте всё, кроме region, raids.dat и level.dat: данные ландшафта, сущностей, точек интереса и измерений могут быть необходимы. Сохраните фактическую структуру каталогов вашего сервера и плагина.

В старых мирах Vanilla Нижний мир использует DIM-1, а Край использует DIM1. В Vanilla 26.1 стандартные измерения перенесены в dimensions/minecraft/overworld, dimensions/minecraft/the_nether и dimensions/minecraft/the_end вместе с каталогами region, entities и poi. Требуемая структура зависит от ПО и версии сервера. Импортируйте копию на отдельном сервере и проверьте мир перед распространением.

Minecraft 26.1 · Paper