Вот код функции:
execute as @r at @s as @e[type=item, distance=.6,nbt={OnGround:1b, Item:{id:"minecraft: wooden_shovel", Count:1b, tag:{Enchantments:[{id: silk_touch, lvl:1}]}}}] at @s run tag @s add drop_pufferfish_channeling_1
execute as @r at @s as @e[type=item, distance=.6,nbt={OnGround:1b, Item:{id:"minecraft: lapis_lazuli", Count:1b}}] at @s run tag @s add drop_lapis_lazuli_channeling_1
execute as @e[tag=drop_pufferfish_channeling_1] at @s if entity @e[tag=drop_lapis_lazuli_channeling_1,distance=.1] run tag @s add drop_enchanted_book_channeling_1
execute as @e[type=item, tag=drop_enchanted_book_channeling_1] at @s run kill @e[tag=drop_lapis_lazuli_channeling_1,distance=.1,limit=1]
execute as @e[type=item, tag=drop_enchanted_book_channeling_1] at @s run playsound minecraft: entity.experience_orb.pickup master @a
execute as @e[type=item, tag=drop_enchanted_book_channeling_1] at @s run data merge entity @s {Motion:[0.0,0.3,0.0],Tags:[],Item:{id:"minecraft: netherite_pickaxe", Count:1b, tag:{display:{Name:'[{"text":"OP кирка (+ Шёлк)", "italic": false}]',Lore:['[{"text":"Имеет все топ чары, но на 1", "italic": false}]','[{"text":"уровень выше (+ Шёлк)", "italic": false}]']},Enchantments:[{id: efficiency, lvl:6},{id: fortune, lvl:4},{id: mending, lvl:1},{id: unbreaking, lvl:4},{id: silk_touch, lvl:1}]}}}
У меня почему-то данная функция не работает, и я не знаю почему. Кто сможет помогите, буду вам благодарен
Ё-маё, ты что там с /execute нагородил? Зачем столько модификаторов?
Второе - ID зачарований что в 1 строке, что в последней указаны без пространства имён, это ошибка (хотя в последней команде можно обойтись без этого). Ровно как и неуказанный тип данных уровня (должно быть "lvl:1s").
Короче, вот исправленный вариант:
# Назначение тегов
execute at @a run tag @e[type=item, distance=.6,nbt= { OnGround:1b, Item: { id:"minecraft: wooden_shovel", Count:1b, tag: { Enchantments:[ { id:"minecraft: silk_touch", lvl:1s } ] } } } ] add drop_pufferfish_channeling_1
execute at @a run tag @e[type=item, distance=.6,nbt= { OnGround:1b, Item: { id:"minecraft: lapis_lazuli", Count:1b } } ] add drop_lapis_lazuli_channeling_1
# Обнаружение готового к крафтингу предмета
execute as @e[tag=drop_pufferfish_channeling_1] at @s if entity @e[tag=drop_lapis_lazuli_channeling_1,distance=.1] run tag @s add drop_enchanted_book_channeling_1
# Крафтинг (на самом деле, зачаровывание, но не суть. Лучше вынеси в отдельную функцию ради оптимизации)
execute as @e[type=item, tag=drop_enchanted_book_channeling_1] at @s run kill @e[tag=drop_lapis_lazuli_channeling_1,distance=.1,limit=1]
execute as @e[type=item, tag=drop_enchanted_book_channeling_1] at @s run playsound minecraft: entity.experience_orb.pickup master @a
execute as @e[type=item, tag=drop_enchanted_book_channeling_1] run data merge entity @s { Motion:[0.0,0.3,0.0],Tags:[],Item: { id:"minecraft: netherite_pickaxe", Count:1b, tag: { display: { Name:'[ { "text":"OP кирка (+ Шёлк)", "italic": false } ]',Lore:['[ { "text":"Имеет все топ чары, но на 1", "italic": false } ]','[ { "text":"уровень выше (+ Шёлк)", "italic": false } ]'] } ,Enchantments:[ { id:"efficiency", lvl:6 } , { id:"fortune", lvl:4 } , { id:"mending", lvl:1 } , { id:"unbreaking", lvl:4 } , { id:"silk_touch", lvl:1 } ] } } }
На будущее - если работаешь через VSCode + Datapack Helper Plus, то для таких ситуаций используй сочетание ctrl+ю ("ctrl+.", либо кнопка по стрелке) и выбирай "исправить автоматически исправляемые ошибки в файле"