@EventHandler
	public void onEntityDamage(EntityDamageEvent event) {
		// do not act when disabled  TODO, use unregister when available
		if ( !this.sheepFeedPlugin.isEnabled() ) {
			return;
		}

		// see whether this is an attack event		
		if ( event.getCause() != DamageCause.ENTITY_ATTACK ) {
			return;
		}
		
		EntityDamageByEntityEvent entDmByEntEv = (EntityDamageByEntityEvent)event; 
		Entity attacker = entDmByEntEv.getDamager();
		Entity target = entDmByEntEv.getEntity();
		
		// attacker needs to be a player and target a sheep
		if ( attacker instanceof Player && target instanceof Sheep ) {
			Player player = (Player) attacker;
			Sheep sheep = (Sheep) target;
			SheepFeed.debug("Hitting sheep ("+ sheep.getEntityId() +") that had health "+ sheep.getHealth() +" original damage: "+ event.getDamage());

			this.attemptFeedSheep(player, sheep);
			
			if (sheep.isSheared()) {
				// cancel the damage given
				event.setDamage(0);
			}
		}
	}