@Override public boolean attackEntityAsMob(Entity victim) { float attackDamage = (float) getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue(); int knockback = 0; if (victim instanceof EntityLivingBase) { attackDamage += EnchantmentHelper.getEnchantmentModifierLiving(this, (EntityLivingBase) victim); knockback += EnchantmentHelper.getKnockbackModifier(this, (EntityLivingBase) victim); } boolean attacked = victim.attackEntityFrom(DamageSource.causeMobDamage(this), attackDamage); if (attacked) { if (knockback > 0) { double vx = -Math.sin(Math.toRadians(rotationYaw)) * knockback * 0.5; double vy = 0.1; double vz = Math.cos(Math.toRadians(rotationYaw)) * knockback * 0.5; victim.addVelocity(vx, vy, vz); motionX *= 0.6; motionZ *= 0.6; } if (victim instanceof EntityLivingBase) { // EnchantmentThorns.func_92096_a(this, (EntityLivingBase) victim, rand); } setLastAttacker(victim); } return attacked; }