]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/users.cpp
*slaps self* for not test compiling
[user/henk/code/inspircd.git] / src / users.cpp
index ac9fbd109dc787add99dea48061f1d7b7a96af60..c01c4e4b617e0073ebc9610709a81163c47cb857 100644 (file)
@@ -289,6 +289,19 @@ const char* userrec::FormatModes()
        return data;
 }
 
+void userrec::DecrementModes()
+{
+       for (int n = 0; n < 64; n++)
+       {
+               if (modes[n])
+               {
+                       ModeHandler* mh = ServerInstance->Modes->FindMode(n+65, MODETYPE_USER);
+                       if (mh)
+                               mh->ChangeCount(-1);
+               }
+       }
+}
+
 userrec::userrec(InspIRCd* Instance) : ServerInstance(Instance)
 {
        ServerInstance->Log(DEBUG,"userrec::userrec(): Instance: %08x",ServerInstance);
@@ -317,7 +330,7 @@ userrec::userrec(InspIRCd* Instance) : ServerInstance(Instance)
 userrec::~userrec()
 {
        this->InvalidateCache();
-
+       this->DecrementModes();
        if (ip)
        {
                clonemap::iterator x = ServerInstance->local_clones.find(this->GetIPString());
@@ -1666,7 +1679,7 @@ void userrec::WriteCommon(const std::string &text)
                 */
                if (!sent_to_at_least_one)
                {
-                       this->WriteFrom(this,std::string(tb));
+                       this->Write(std::string(tb));
                }
        }