+ if (parc == 4 && !strcmp(parv[2], "+a") && !irccmp(parv[3], source_p->name))
+ {
+ /* Admining themselves */
+ if (!wasonchannel)
+ {
+ sendto_one_numeric(source_p, ERR_USERNOTINCHANNEL,
+ form_str(ERR_USERNOTINCHANNEL), parv[3], chptr->chname);
+ return 0;
+ }
+ sendto_channel_local(ALL_MEMBERS, chptr, ":%s MODE %s +a %s",
+ me.name, parv[1], source_p->name);
+ sendto_server(NULL, chptr, CAP_TS6, NOCAPS,
+ ":%s TMODE %ld %s +a %s",
+ me.id, (long) chptr->channelts, parv[1],
+ source_p->id);
+ msptr->flags |= CHFL_ADMIN;
+ }
+ else if (parc == 4 && !strcmp(parv[2], "+o") && !irccmp(parv[3], source_p->name))