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

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

Эта страница поможет вам понять, как правильно редактировать файл .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> завершает участок градиента.

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

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 или просто оставить её, если хотите.

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

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

Для среды мира NORMAL:

Чтобы подготовить ваш мир, сохраните следующие файлы и папки:

  1. Папка region
  2. raids.dat из папки data (убедитесь, что при копировании он помещён внутрь папки data)
  3. Файл level.dat

Все остальные файлы и папки в папке мира можно безопасно удалить. Это правильно настроит ваш мир для среды NORMAL.

Для сред мира NETHER и THE_END:

Чтобы подготовить ваш мир, сохраните следующие файлы и папки:

  1. Папка region внутри папки DIM-1 (убедитесь, что при копировании она помещена внутрь папки DIM-1)
  2. raids.dat из папки data (убедитесь, что при копировании он помещён внутрь папки data)
  3. Файл level.dat

Все остальные файлы и папки в папке мира можно безопасно удалить. Это правильно настроит ваш мир для сред NETHER и THE_END.