summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/treesocket1.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-07-18 18:03:21 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-07-18 18:03:21 +0000
commitb2f7888b7ac0e72041ceea7dd9e7e6d4c46dcb5c (patch)
tree55e44acfb730dfa98eec9bba25ced101ec329659 /src/modules/m_spanningtree/treesocket1.cpp
parentd0e13160c5d561622dfc222585ad5e73b9b0fcf6 (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.cpp6
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 */