7 /* $ModDesc: Provides support for unreal-style channel mode +Q */
9 class ModuleNoKicks : public Module
18 Srv->AddExtendedMode('Q',MT_CHANNEL,false,0,0);
21 virtual int OnAccessCheck(userrec* source,userrec* dest,chanrec* channel,int access_type)
23 if (access_type == AC_KICK)
25 if (channel->IsCustomModeSet('Q'))
27 if ((Srv->IsUlined(source->nick)) || (Srv->IsUlined(source->server)) || (!strcmp(source->server,"")))
29 // ulines can still kick with +Q in place
34 // nobody else can (not even opers with override, and founders)
35 WriteServ(source->fd,"484 %s %s :Can't kick user %s from channel (+Q set)",source->nick, channel->name,dest->nick);
43 virtual ~ModuleNoKicks()
48 virtual Version GetVersion()
50 return Version(1,0,0,0);
55 class ModuleNoKicksFactory : public ModuleFactory
58 ModuleNoKicksFactory()
62 ~ModuleNoKicksFactory()
66 virtual Module * CreateModule()
68 return new ModuleNoKicks;
74 extern "C" void * init_module( void )
76 return new ModuleNoKicksFactory;