X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_services_account.cpp;h=739ad611972370045a242fe012f708fcba8dba0a;hb=3a7dd5b129450b94e0a87b8ad5009da70905b8e5;hp=0d7ff4339811fa7bc1c35ae09a3254c1b98239dd;hpb=7775a195d9c417e52eaaf912ec51d62bf0fd9a54;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index 0d7ff4339..739ad6119 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -16,19 +16,16 @@ using namespace std; -#include #include "users.h" #include "channels.h" #include "modules.h" -#include -#include "helperfuncs.h" #include "hashcomp.h" #include "inspircd.h" /* $ModDesc: Povides support for ircu-style services accounts, including chmode +R, etc. */ - - +/** Channel mode +R - unidentified users cannot join + */ class AChannel_R : public ModeHandler { public: @@ -57,6 +54,8 @@ class AChannel_R : public ModeHandler } }; +/** User mode +R - unidentified users cannot message + */ class AUser_R : public ModeHandler { public: @@ -85,6 +84,8 @@ class AUser_R : public ModeHandler } }; +/** Channel mode +M - unidentified users cannot message channel + */ class AChannel_M : public ModeHandler { public: @@ -104,7 +105,7 @@ class AChannel_M : public ModeHandler { if (channel->IsModeSet('M')) { - channel->SetMode('M',true); + channel->SetMode('M',false); return MODEACTION_ALLOW; } } @@ -131,11 +132,6 @@ class ModuleServicesAccount : public Module ServerInstance->AddMode(m3, 'R'); } - virtual void On005Numeric(std::string &output) - { - ServerInstance->ModeGrok->InsertMode(output, "RM", 4); - } - /* <- :twisted.oscnet.org 330 w00t2 w00t2 w00t :is logged in as */ virtual void OnWhois(userrec* source, userrec* dest) { @@ -150,7 +146,7 @@ class ModuleServicesAccount : public Module void Implements(char* List) { - List[I_OnWhois] = List[I_OnUserPreMessage] = List[I_On005Numeric] = List[I_OnUserPreNotice] = List[I_OnUserPreJoin] = 1; + List[I_OnWhois] = List[I_OnUserPreMessage] = List[I_OnUserPreNotice] = List[I_OnUserPreJoin] = 1; List[I_OnSyncUserMetaData] = List[I_OnUserQuit] = List[I_OnCleanup] = List[I_OnDecodeMetaData] = 1; } @@ -165,7 +161,7 @@ class ModuleServicesAccount : public Module if ((c->IsModeSet('M')) && (!account)) { - if ((ServerInstance->is_uline(user->nick)) || (ServerInstance->is_uline(user->server)) || (!strcmp(user->server,""))) + if ((ServerInstance->ULine(user->nick)) || (ServerInstance->ULine(user->server)) || (!strcmp(user->server,""))) { // user is ulined, can speak regardless return 0; @@ -182,7 +178,7 @@ class ModuleServicesAccount : public Module if ((u->modes['R'-65]) && (!account)) { - if ((ServerInstance->is_uline(user->nick)) || (ServerInstance->is_uline(user->server))) + if ((ServerInstance->ULine(user->nick)) || (ServerInstance->ULine(user->server))) { // user is ulined, can speak regardless return 0; @@ -212,7 +208,7 @@ class ModuleServicesAccount : public Module { if (!account) { - if ((ServerInstance->is_uline(user->nick)) || (ServerInstance->is_uline(user->server))) + if ((ServerInstance->ULine(user->nick)) || (ServerInstance->ULine(user->server))) { // user is ulined, won't be stopped from joining return 0; @@ -315,6 +311,9 @@ class ModuleServicesAccount : public Module virtual ~ModuleServicesAccount() { + ServerInstance->Modes->DelMode(m1); + ServerInstance->Modes->DelMode(m2); + ServerInstance->Modes->DelMode(m3); DELETE(m1); DELETE(m2); DELETE(m3); @@ -322,7 +321,7 @@ class ModuleServicesAccount : public Module virtual Version GetVersion() { - return Version(1,0,0,0,VF_STATIC|VF_VENDOR); + return Version(1,0,0,0,VF_COMMON|VF_VENDOR); } };