diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-07-18 18:03:21 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-07-18 18:03:21 +0000 |
commit | b2f7888b7ac0e72041ceea7dd9e7e6d4c46dcb5c (patch) | |
tree | 55e44acfb730dfa98eec9bba25ced101ec329659 /src/modules/m_spanningtree/treesocket1.cpp | |
parent | d0e13160c5d561622dfc222585ad5e73b9b0fcf6 (diff) |
Ive tidied up the mode count stuff, but i still cant duplicate negative invisible counts. :(
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7474 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree/treesocket1.cpp')
-rw-r--r-- | src/modules/m_spanningtree/treesocket1.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index a907bb440..4d960cf8a 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -918,6 +918,7 @@ bool TreeSocket::IntroduceClient(const std::string &source, std::deque<std::stri time_t age = ConvToInt(params[0]); const char* tempnick = params[1].c_str(); + std::string empty; cmd_validation valid[] = { {"Nickname", 1, NICKMAX}, {"Hostname", 2, 64}, {"Displayed hostname", 3, 64}, {"Ident", 4, IDENTMAX}, {"GECOS", 7, MAXGECOS}, {"", 0, 0} }; @@ -975,11 +976,14 @@ bool TreeSocket::IntroduceClient(const std::string &source, std::deque<std::stri for (std::string::iterator v = params[5].begin(); v != params[5].end(); v++) { - _new->modes[(*v)-65] = 1; /* For each mode thats set, increase counter */ ModeHandler* mh = Instance->Modes->FindMode(*v, MODETYPE_USER); if (mh) + { + mh->OnModeChange(_new, _new, NULL, empty, true); + _new->SetMode(*v, true); mh->ChangeCount(1); + } } /* now we've done with modes processing, put the + back for remote servers */ |