diff options
-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() |