Skip to content

Формат предмета

Daniil Z edited this page Oct 21, 2022 · 6 revisions

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

Параметры

Ключ Описание
type:<тип>
type:diamond_sword
<тип> - материал предмета.

При отсутствии параметра подбор учитывает все типы предметов.
При указании type:AIR принимает только отсутсвие предмета.
В обоих случаях предмет не создаётся, только проверяется.
amount:<кол-во>
amount:5
<кол-во> - количество предметов.

При отрицательных значениях предмет создается с 1.
durability:<повреждение>
durability:5
<повреждение> - насколько поврежден предмет.

Только для инструментов и брони.
item:<тип>[:<повреждение>][*<кол-во>]
item:diamond_sword:13
item:dirt*64
<тип> - материал предмета.
<повреждение> - насколько поврежден предмет.
<кол-во> - количество предметов.

Упрощенный синтаксис указания предмета.
name:<название>
name:Лезвие
name:{Горячая картошка}
<название> - название предмета.

При наличии параметра regex:true автоматически превращается в параметр name-regex.
name-regex:<выражение>
name-regex:{Изумрудный .*}
<выражение> - регулярное выражение названия предмета.

При выдаче предмета работает как name, но при проверке предмета обрабатывает название того на соответствие.
lore:<описание>
lore:Новогодний
lore:{Древний меч\nКороля Артура}
<описание> - описание предмета.

\n обрабатывается как новая строка.
При наличии параметра regex:true автоматически превращается в параметр lore-regex.
lore-regex:<выражение>
lore-regex:{Предмет игрока \w+}
<выражение> - регулярное выражение описания предмета.

При выдаче предмета работает как lore, но при проверке предмета обрабатывает описание того на соответствие.
Перед проверкой все описание собирается в одну строку и обрабатывается одним разом.
custom-model-data:<номер>
custom-model-data:5
<номер> - номер CustomModelData предмета.
color:<цвет>
color:12,34,56
color:red
color:#123abc
<цвет> - цвет предмета.

Поддерживает обычное RGB, названия цветов Bukkit, и формат HEX цветов.
При проверке, при пустом значении {} сверяется отсутсвие цвета.

На момент написания, только для зелий, брони и карт.
enchantments:<зачарование>:<уровень>
enchantments:unbreaking:1
enchantments:{protection:1;fire_protection:2}
<зачарование> - название зачарования.
<уровень> - уровень соответствующего зачарования.
Можно поворить через ;.

Для type:enchanted_book обрабатывается как список вложенных зачарований.
При пустом значении {} сверяется отсутствие зачарований; иначе проверяется наличие всех указанных.
Принимаются как ванильные имена зачарований, так и Bukkit.
head-owner:<владелец>
head-owner:fromgate
<владелец> - никнейм владельца головы.

Только для type:player_head.
potion-effects:<эффект>:<уровень>:<длительность>
potion-effects:speed:1:10m
potion-effects:{speed:1:10m,fire_resistance:1:1h}
<эффект> - название эффекта.
<уровень> - уровень соответствующего эффекта.
<длительность> - длительность соответствующего эффекта.
Можно повторить через ;.

Только для зелий и type:tipped_arrow.
При пустом значении {} сверяется отсутствие эффектов; иначе проверяется наличие всех указанных.
Принимаются как ванильные имена эффектов, так и Bukkit.
potion-base:{base-type:<база> extended:<удлинено> upgraded:<улучшено>}
potion-base:{base-type:TURTLE_MASTER extended:false upgraded:true}
potion-base:{base-type:AWKWARD}
<база> - основание зелья по Bukkit.
<удлинено> - удлинена ли длительность зелья.
<улучшено> - улучшен ли уровень зелья.

Только для зелий и type:tipped_arrow.
book-author:<автор>
book-author:fromgate
book-author:{Загадочный писатель}
<автор> - автор книги.

Только для type:writable_book и type:written_book.
book-title:<название>
book-title:Туториал
book-title:{Шрек 2}
<название> - название книги.

Только для type:writable_book и type:written_book.
book-pages:<содержание>
book-pages:{Привет мир}
book-pages:{Раз&zДва&zТри\nЁлочка гори}
<содержание> - содержание страниц книги.

Только для type:writable_book и type:written_book.
&z отвечает за новую строку, \n за новую страницу книги.

В мерах оптимизации, обработка страниц у реальных предметов отключена.
firework-effect:{type:<тип> flicker:<мерцание> trail:<путь> colors:{<цвета>} fade-colors:{<цвета>}}
firework-effect:{type:BALL flicker:true trail:true colors:{#123abc 12,34,56} fade-colors:{BLUE}}
firework-effect:{type:CREEPER colors:{RED}; type:LARGE_BALL colors:{WHITE}}
<тип> - тип фейерверка по Bukkit.
<мерцание> - будет ли вспышка мерцающей.
<путь> - будет ли виден путь фейерверка.
<цвета> - RGB, HEX или название цвета, можно повторить через .
Эффект можно повторить через ;.

Только для type:firework.
firework-power:<мощность>
firework-power:2
<мощность> - мощность фейерверка.

Только для type:firework.
banner-pattern:<узор>:<цвет>
banner-pattern:CIRCLE_MIDDLE:RED
banner-pattern:{HALF_VERTICAL_MIRROR:YELLOW;STRIPE_BOTTOM:BLACK}
<узор> - тип узора по Bukkit.
<цвет> - цвет узора по Bukkit.
Можно повторить через ;.

Только для баннеров и type:shield.
map-scale:<масштабирование>
map-scale:true
<масштабирование> - включено ли масштабирование карты.

Только для карт.

Сравнение предметов

Сравнение предметов происходит во флагах сравнивающих предметы (подсчитывающих необходимое количество), а также в действиях связанных с изъятием предметов. Эти флаги и действия позволяют использовать регулярные выражения при сравнении предметов. При этом, при сравнении участвует лишь несколько полей: type, data, amount, name и lore. Если пропустить какое-то из этих полей, то тогда будет допускаться любое значение этого поля. Можно отключить использование регулярных выражений, указав параметр regex:false при описании предмета для сравнения.

Пример

Допустим, у игрока в руках предмет — стальной меч названный "Меч силача" с описанием "Это меч величайшего силача Васи Пупкина".

Вот пример флага ITEM, который будет успешно находить этот предмет:

  • ITEM "type:IRON_SWORD name:{Меч силача} lore:{Это меч величайшего силача Васи Пупкина}
  • ITEM "type:IRON_SWORD name:{.* силача}
  • ITEM "type:IRON_SWORD
  • ITEM "type:IRON_SWORD lore:{.*меч.*Васи Пупкина}

Если описание предмета состоит из нескольких строк, то все строки будут сравниваться отдельно:

Пример

Допустим Вам нужно извлечь "специальные ботинки" из инвентаря игрока. Ботинки - железные, при этом их описание состоит из трёх строк: 1: "Ботинки скорости", 2: "Это чудесные ботинки", "3: созданные при помощи нанотехнологий"

Вот пример, как можно писать такое действие:

ITEM_REMOVE_INVENTORY type:IRON_BOOTS lore:{.*ботинки\n.*\n.*нанотех.*}

Наборы предметов

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

set1:{item1:<Предмет> item2:<Предмет> item3:<Предмет> chance:<Вероятность>} set1:{item2:<Предмет> item2:<Предмет> item3:<Предмет> chance:<Вероятность>}...

  • <Предмет> — описание предмета (см. выше)
  • <Вероятность> — Вероятность выбора именно этого набора предметов (в процентах). Если сумма процентов всех шансов не равна 100, то конечный результат рассчитывается пропорционально.

Пример:

set1:{item1:IRON_SWORD item2:DIAMOND_SWORD chance:5} set2:{item1:{type:DIRT amount:200} chance:95}

Действия поддерживающие наборы предметов:

Clone this wiki locally