summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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()