- if (access_type == AC_KICK)
- {
- if (channel->IsCustomModeSet('Q'))
- {
- if ((Srv->IsUlined(source->nick)) || (Srv->IsUlined(source->server)) || (!strcmp(source->server,"")))
- {
- // ulines can still kick with +Q in place
- return ACR_ALLOW;
- }
- else
- {
- // nobody else can (not even opers with override, and founders)
- WriteServ(source->fd,"484 %s %s :Can't kick user %s from channel (+Q set)",source->nick, channel->name,dest->nick);
- return ACR_DENY;
- }
- }
- }
- return ACR_DEFAULT;
- }
-
- virtual int OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list ¶ms)
- {
- // check if this is our mode character...
- if ((modechar == 'Q') && (type == MT_CHANNEL))
- {
- return 1;
- }
- else
- {
- return 0;
- }
+ ServerInstance->Modules->AddService(nk);
+ Implementation eventlist[] = { I_OnUserPreKick, I_On005Numeric };
+ ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));