9 /* $ModDesc: Povides support for services +r user/chan modes and more */
14 class ModuleServices : public Module
21 Srv->AddExtendedMode('r',MT_CHANNEL,false,0,0);
22 Srv->AddExtendedMode('r',MT_CLIENT,false,0,0);
25 virtual bool OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list ¶ms)
28 if (modechar != 'r') {
32 if (type == MT_CHANNEL)
34 // only a u-lined server may add or remove the +r mode.
35 if ((Srv->IsUlined(user->nick)) || (Srv->IsUlined(user->server)))
41 Srv->SendServ(user->fd,"500 "+std::string(user->nick)+" :Only a U-Lined server may modify the +r channel mode");
46 if (!strcmp(user->server,""))
52 Srv->SendServ(user->fd,"500 "+std::string(user->nick)+" :Only a server may modify the +r user mode");
59 virtual ~ModuleServices()
64 virtual Version GetVersion()
66 return Version(1,0,0,0);
69 virtual void OnUserConnect(userrec* user)
76 class ModuleServicesFactory : public ModuleFactory
79 ModuleServicesFactory()
83 ~ModuleServicesFactory()
87 virtual Module * CreateModule()
89 return new ModuleServices;
95 extern "C" void * init_module( void )
97 return new ModuleServicesFactory;