- chanrec* curr = ((ucrec*)(*i))->channel;
- if ((curr->IsModeSet('N')) && (!*user->oper))
- {
- // don't allow the nickchange, theyre on at least one channel with +N set
- // and theyre not an oper
- user->WriteServ("447 %s :Can't change nickname while on %s (+N is set)",user->nick,curr->name);
- return 1;
- }
+ if (CHANOPS_EXEMPT(ServerInstance, 'N') && curr->GetStatus(user) == STATUS_OP)
+ continue;
+
+ user->WriteServ("447 %s :Can't change nickname while on %s (+N is set)", user->nick, curr->name);
+ return 1;