summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-12-02 01:24:00 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-12-02 01:24:00 +0000
commit8557dcec22e3f6d92649d6521abc4703597a385e (patch)
tree896ae63d2e6a7890671732f48d593eb2dcb01ce4
parent44dc94b2309b684e4031d995924c81eeea7c60cc (diff)
FJOIN now acts like SJOIN
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2101 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/modules/m_spanningtree.cpp37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp
index 052845d6c..bc375bf23 100644
--- a/src/modules/m_spanningtree.cpp
+++ b/src/modules/m_spanningtree.cpp
@@ -497,6 +497,7 @@ class TreeSocket : public InspSocket
if (params.size() < 2)
return true;
+ log(DEBUG,"FORCEJOIN *** PARAMS = %d",params.size());
char first[MAXBUF];
char modestring[MAXBUF];
char* mode_users[127];
@@ -518,27 +519,27 @@ class TreeSocket : public InspSocket
// process one channel at a time, applying modes.
char* usr = (char*)params[usernum].c_str();
char permissions = *usr;
+ switch (permissions)
+ {
+ case '@':
+ usr++;
+ mode_users[modectr++] = usr;
+ strlcat(modestring,"o",MAXBUF);
+ break;
+ case '%':
+ usr++;
+ mode_users[modectr++] = usr;
+ strlcat(modestring,"h",MAXBUF);
+ break;
+ case '+':
+ usr++;
+ mode_users[modectr++] = usr;
+ strlcat(modestring,"v",MAXBUF);
+ break;
+ }
userrec* who = Srv->FindNick(usr);
if (who)
{
- switch (permissions)
- {
- case '@':
- usr++;
- mode_users[modectr++] = usr;
- strlcat(modestring,"o",MAXBUF);
- break;
- case '%':
- usr++;
- mode_users[modectr++] = usr;
- strlcat(modestring,"h",MAXBUF);
- break;
- case '+':
- usr++;
- mode_users[modectr++] = usr;
- strlcat(modestring,"v",MAXBUF);
- break;
- }
Srv->JoinUserToChannel(who,channel,key);
if (modectr >= (MAXMODES-1))
{