Is it possible to use an item to activate a command in Minecraft?

Is it possible to detect when a player right-clicks with a stick and activate a command?

What I'm trying to do is have several items with specific NBT data and set it so that right-clicking with those items uses certain commands (for instance, right-clicking with a specific sword will /summon a fireball, or right-clicking with a specific stick will activate a speed /effect). Is there a way to do this in vanilla Minecraft?


Solution 1:

dly's answer is fine, but DonielF is right. If you have a mob in you you can't hit anything.

In Minecraft you can't right click and trigger a command with all items. But some items (like carrot on a stick) can be used.

Example:

Type this in chat:

/scoreboard objectives add speed stat.useItem.minecraft.carrot_on_a_stick speed
/scoreboard objectives setdisplay sidebar speed


Run this on a 1 tick clock:
    /effect @p[score_speed_min=1,score_speed=1] minecraft:speed 30 1

This will detect whenever a player right-clicks with a carrot on a stick and it will give him the effect speed 1 for 30 seconds.

It will also work with an empty map (make sure to remove the new map and give the player another empty map!) or when a placed cake is eaten.