]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_services.cpp
Annotations
[user/henk/code/inspircd.git] / src / modules / m_services.cpp
index f652c0fc26801d256a00bc16f88bd2f12c7e4a3c..7e3a8d89bf6d35e57045726fc203a8518e9a0a83 100644 (file)
@@ -25,6 +25,8 @@ static bool kludgeme = false;
 
 /* $ModDesc: Povides support for services +r user/chan modes and more */
 
+/** Channel mode +r - mark a channel as identified
+ */
 class Channel_r : public ModeHandler
 {
        
@@ -49,6 +51,8 @@ class Channel_r : public ModeHandler
        }
 };
 
+/** User mode +r - mark a user as identified
+ */
 class User_r : public ModeHandler
 {
        
@@ -72,6 +76,8 @@ class User_r : public ModeHandler
        }
 };
 
+/** Channel mode +R - registered users only
+ */
 class Channel_R : public ModeHandler
 {
  public:
@@ -100,6 +106,8 @@ class Channel_R : public ModeHandler
        }
 };
 
+/** User mode +R - only allow PRIVMSG and NOTICE from registered users
+ */
 class User_R : public ModeHandler
 {
  public:
@@ -128,6 +136,8 @@ class User_R : public ModeHandler
        }
 };
 
+/** Channel mode +M - only allow privmsg and notice to channel from registered users
+ */
 class Channel_M : public ModeHandler
 {
  public:
@@ -147,7 +157,7 @@ class Channel_M : public ModeHandler
                {
                        if (channel->IsModeSet('M'))
                        {
-                               channel->SetMode('M',true);
+                               channel->SetMode('M',false);
                                return MODEACTION_ALLOW;
                        }
                }
@@ -156,6 +166,8 @@ class Channel_M : public ModeHandler
        }
 };
 
+/** Dreamnforge-like services support
+ */
 class ModuleServices : public Module
 {
        
@@ -231,7 +243,7 @@ class ModuleServices : public Module
                if (target_type == TYPE_USER)
                {
                        userrec* u = (userrec*)dest;
-                       if ((u->IsModeSet('R')) && (user->IsModeSet('r')))
+                       if ((u->IsModeSet('R')) && (!user->IsModeSet('r')))
                        {
                                if ((ServerInstance->ULine(user->nick)) || (ServerInstance->ULine(user->server)))
                                {
@@ -257,7 +269,7 @@ class ModuleServices : public Module
                {
                        if (chan->IsModeSet('R'))
                        {
-                               if (user->IsModeSet('r'))
+                               if (!user->IsModeSet('r'))
                                {
                                        if ((ServerInstance->ULine(user->nick)) || (ServerInstance->ULine(user->server)))
                                        {