summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-04-01 16:25:02 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2008-04-01 16:25:02 +0000
commit5b4e92cc2ca9a08a1a9740daa25c64578325ed78 (patch)
tree34e269cb78287bf781783d8e3a6436d2d32ea8dd
parent1f9ef4081211739c7c04211a9d77549d25c09f7a (diff)
Add an optional bool to ModeParser::ModeString() to not give the nickname n times on the end of the string. This can be used for w00ts funky stuff. :-)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9242 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--include/mode.h4
-rw-r--r--src/mode.cpp14
2 files changed, 13 insertions, 5 deletions
diff --git a/include/mode.h b/include/mode.h
index f6022c090..ea52acf36 100644
--- a/include/mode.h
+++ b/include/mode.h
@@ -520,9 +520,11 @@ class CoreExport ModeParser : public classbase
* similar purposes.
* @param user The username to look up
* @param channel The channel name to look up the privilages of the user for
+ * @param nick_suffix true (the default) if you want nicknames in the mode string, for easy
+ * use with the mode stacker, false if you just want the "avh" part of "avh nick nick nick".
* @return The mode string.
*/
- std::string ModeString(User* user, Channel* channel);
+ std::string ModeString(User* user, Channel* channel, bool nick_suffix = true);
};
#endif
diff --git a/src/mode.cpp b/src/mode.cpp
index db9641edb..9b90599ce 100644
--- a/src/mode.cpp
+++ b/src/mode.cpp
@@ -879,7 +879,7 @@ ModeHandler* ModeParser::FindPrefix(unsigned const char pfxletter)
return NULL;
}
-std::string ModeParser::ModeString(User* user, Channel* channel)
+std::string ModeParser::ModeString(User* user, Channel* channel, bool nick_suffix)
{
std::string types;
std::string pars;
@@ -897,14 +897,20 @@ std::string ModeParser::ModeString(User* user, Channel* channel)
ret = mh->ModeSet(NULL, user, channel, user->nick);
if ((ret.first) && (ret.second == user->nick))
{
- pars.append(" ");
- pars.append(user->nick);
+ if (nick_suffix)
+ {
+ pars.append(" ");
+ pars.append(user->nick);
+ }
types.push_back(mh->GetModeChar());
}
}
}
- return types+pars;
+ if (nick_suffix)
+ return types+pars;
+ else
+ return types;
}
std::string ModeParser::ChanModes()