I'm working on a plugin that allows different types of items to fire projectiles with different properties. For example, right-clicking with a stick will launch a snowball that deals 2 damage. Right-clicking with a diamond will launch a snowball that deals 10 damage. But how can you differentiate between snowballs that are launched by diamonds and the snowballs that are launched by sticks? Checking the item in the player's hand upon the EntityDamage event is not an option, as the player can easily switch items during the projectile's flight-time. Checking whether or not the player has a stick or diamond in his inventory will not work if the player has both. It appears the only possible solution is to "tag" projectiles with a special value. Allowing the launched projectile to be tagged with, for example, a 'launchedByStick' variable. Upon a EntityDamage event, check if the snowball has the 'launchedByStick' tag on it, and if so, deal 2 damage. Is this possible? And if not, what would you suggest?