# Цель: Проверить торги и заменить алмазные ботинки на железные, сохраняя зачарования.
# Получаем всех жителей в радиусе (настройте радиус по необходимости)
execute as @e[type=minecraft:villager,distance=..5] run {
# Цикл по всем предложениям (допустим, у жителя максимум 10 предложений)
execute as @s run forvalues 0 9 i run {
# Получаем текущий номер предложения
data modify storage my_datapack:temp current_recipe set value 0
data modify storage my_datapack:temp current_recipe set value $[i]
# Проверяем, что текущий торг - это алмазные ботинки (предположим, что мы знаем структуру NBT)
execute if data entity @s Offers.Recipes[0].sell.id == "minecraft:diamond_boots" run {
# Копируем старое предложение (пока просто предположим, что это первое предложение)
data modify storage my_datapack:temp old_recipe set from entity @s Offers.Recipes[0]
# Удаляем старое предложение (заменить в оригинальном датапаке будет невозможно)
data remove entity @s Offers.Recipes[0]
# Создаем новое предложение: Железные ботинки, берем зачарования со старых алмазных ботинок
summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:iron_boots", Count:1b, tag:{Enchantments:[]}}, CustomName:'{"text":"Железные ботинки (изменены)"}'}
execute store result entity @s Offers.Recipes[0].buy.id byte 1 run data get entity @e[type=minecraft:item,limit=1,sort=nearest] Item.id
execute store result entity @s Offers.Recipes[0].buy.Count byte 1 run data get entity @e[type=minecraft:item,limit=1,sort=nearest] Item.Count
execute store result entity @s Offers.Recipes[0].buy.tag.display.Name string 1 run data get entity @e[type=minecraft:item,limit=1,sort=nearest] Item.tag.display.Name
execute store result entity @s Offers.Recipes[0].sell.id byte 1 run data get entity @e[type=minecraft:item,limit=1,sort=nearest] Item.id
execute store result entity @s Offers.Recipes[0].sell.Count byte 1 run data get entity @e[type=minecraft:item,limit=1,sort=nearest] Item.Count
execute store result entity @s Offers.Recipes[0].sell.tag.display.Name string 1 run data get entity @e[type=minecraft:item,limit=1,sort=nearest] Item.tag.display.Name
data modify entity @s Offers.Recipes[0].sell.tag.Enchantments set from entity @e[type=minecraft:item,limit=1,sort=nearest] Item.tag.Enchantments # Копируем зачарования
kill @e[type=minecraft:item,limit=1,sort=nearest]
}
}
}
если помог, пожалуйста :)