Здесь я хочу поделиться тем, как можно реализовать использование предметов по нажатию ПКМ на новых версиях с компонентами.
1) Прописываем команду: /scoreboard objectives add *название счётчика* minecraft.used:carrot_on_a_stick
Эта команда будет отсчитывать в специальном счётчике все использования моркови на удочке при нажатии ПКМ. Команда прописывается единожды для мира.
2) Для удобства отслеживания прописываем: /scoreboard objectives setdisplay sidebar *название счётчика*
Данная команда будет отображать ваш счётчик в правой стороне экрана. Можно и не прописывать.
3) Выдаём себе удочку: /give @s carrot_on_a_stick[custom_data={foo:*число*}]
Указание пользовательской даты позволит отличить в дальнейшем эту удочку от обычной. Можно использовать совместно с custom_model_data.
4) Ставим цикличный командный блок, который будет всегда активен. В нём прописываем:
/execute as @a at @s if score @s *название счётчика* matches 1 if entity @s[nbt={SelectedItem:{id:"minecraft:carrot_on_a_stick",components:{"minecraft:custom_data":{foo:*число*}}}}]
run ... (вместо троеточия ваша команда, можно, например, give @s diamond)
5) Теперь ставим следом за ним цепной командный блок, тоже всегда активен и прописываем:
/scoreboard players set *название счётчика* 0
Название счётчика может быть любое, как и число, главное, чтобы в цепочке команд оно было одно и тоже.
Важно! Если вы захотите присвоить новой удочке новую команду, вам нужно выдать себе удочку с другим числом в пользовательской дате и поставить ещё один командный блок, заполнив его также, как в пункте 4, только непосредственно изменив команду и число. При этом важно отследить, чтобы команда сброса счётчика происходила после воспроизведения команд проверок.
На этом всё! Теперь каждый раз при нажатии ПКМ, когда у вас в руке будет находится особенная удочка с морковкой вы сможете воспроизводить необходимую команду.