diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-04-01 16:25:02 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-04-01 16:25:02 +0000 |
commit | 5b4e92cc2ca9a08a1a9740daa25c64578325ed78 (patch) | |
tree | 34e269cb78287bf781783d8e3a6436d2d32ea8dd | |
parent | 1f9ef4081211739c7c04211a9d77549d25c09f7a (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.h | 4 | ||||
-rw-r--r-- | src/mode.cpp | 14 |
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() |