In the Item class, (Item#hitEntity seems to be better than IForgeItem#onLeftClickEntity)
@Override is just an annotation that is not necessary, but highly recommended to make sure you are actually overriding the method.
DamageSource is a class that contains the information of the attack, such as the type of the attack (fire? explosion? where blast protection checks for this), the attacker, and even the direct attacker like arrows (IndirectDamageSource). Therefore the DamageSource will never match to a single item, where you can only obtain the information of the weapon from the attacker stored.