@Override
	public void teach(MOB teacher, MOB student)
	{
		super.teach(teacher, student);
		if((student!=null)&&(student.fetchAbility(ID())!=null))
		{
			final CharClass C=student.charStats().getCurrentClass();
			if(CMLib.ableMapper().getQualifyingLevel(C.ID(), false, ID())>=0)
				return;
			final boolean crafting = ((classificationCode()&Ability.ALL_DOMAINS)==Ability.DOMAIN_CRAFTINGSKILL);
			final AbilityMapper.AbilityLimits remainders = CMLib.ableMapper().getCommonSkillRemainder(student, this);
			if(remainders.commonSkills<=0)
				student.tell(_("@x1 may not learn any more common skills.",student.name()));
			else
			if(remainders.commonSkills<=Integer.MAX_VALUE/2)
				student.tell(_("@x1 may learn @x2 more common skills.",student.name(),""+remainders.commonSkills));
			if(remainders.specificSkillLimit<=0)
				student.tell(_("@x1 may not learn any more @x2crafting common skills.",student.name(),(crafting?"":"non-")));
			else
			if(remainders.specificSkillLimit<=Integer.MAX_VALUE/2)
				student.tell(_("@x1 may learn @x2 more @x3crafting common skills.",student.name(),""+remainders.specificSkillLimit,(crafting?"":"non-")));
		}
	}