Data Trades
Активный0.0
Установок
Последнее обновление
Версии
Data Trades
Этот мод предоставляет игрокам, владельцам серверов и создателям модпаков возможность изменять торговые предложения жителей с помощью датапаков. Вы можете настраивать количество сделок для каждого уровня профессии и сами предметы обмена через JSON-файлы.
Для удобства разработки доступна команда /villagers refresh, которая принудительно обновляет торговые предложения у всех загруженных жителей.
Структура папок
Чтобы переопределить сделки для конкретной профессии жителя, создайте JSON-файл по следующему пути:
data/[namespace]/villager/professions/[path].json
Замените [namespace] и [path] на идентификатор нужной профессии. Например, для профессии minecraft:fletcher файл должен находиться по адресу data/minecraft/villager/professions/fletcher.json и соответствовать схеме Profession.
Аналогично можно изменить торговые предложения странствующего торговца, создав файл по пути:
data/minecraft/villager/traders/wandering.json
который должен следовать схеме Trader.
JSON-схемы
Profession
Файл должен содержать объект со следующими свойствами:
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
| levels | map<int,TradeLevel> | {} |
см. ниже |
Объект levels представляет собой карту с числовыми ключами и объектными значениями. Ключи соответствуют уровням жителя: от 1 (Новичок) до 5 (Мастер).
Trader
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
| generic | TradeLevel | null |
обычные сделки |
| rare | TradeLevel | null |
редкие сделки |
В ванильной версии Minecraft каждый странствующий торговец выбирает 5 обычных и 1 редкую сделку при появлении. Оба типа сделок и их количество можно изменить, используя тот же формат, что и для уровней жителей.
TradeLevel
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
| take | NumberProvider | null |
количество сделок, добавляемых этим уровнем |
| trades | (Trade | string)[] | [] |
список сделок, из которых случайным образом выбираются активные |
Trade
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
| disabled | boolean | false |
отключенные сделки игнорируются |
| sells | TradeIngredient | [] |
предмет, продаваемый игроку |
| wants | TradeIngredient[] | [] |
до двух предметов, которые должен заплатить игрок |
| uses | int | 0 |
|
| maxUses | int | 10 |
|
| xp | int | 1 |
|
| priceMultiplier | float | 2.0 |
|
| demand | int | 0 |
TradeIngredient
Расширение ванильного Ingredient с дополнительными свойствами. Может принимать форму предмета или тега и определять все свойства JSON ванильного ингредиента. Поскольку сделки жителей основаны на ItemStack, это не означает, что игрок может заплатить #minecraft:stone_tool_materials любым типом камня, а только тем, который случайным образом выбирается из тега каждый раз при использовании сделки.
| Свойство | Тип | По умолчанию |
|---|---|---|
| functions | LootFunction[] | [] |
| count | int | null |
Продвинутое использование
Вместо объекта Trade свойство trades в TradeLevel может содержать строковые идентификаторы, ссылающиеся на внешние сделки. Эти сделки можно сохранить по пути ниже для организации и повторного использования:
data/[namespace]/villager/trades/[path].json