Here is a small explanation of how messages on IRC work, and how you can use this class to get useful information from the parsed message.
More...
|
| CMessage (const CString &sMessage="") |
| CMessage (const CNick &Nick, const CString &sCommand, const VCString &vsParams=VCString(), const MCString &mssTags=MCString::EmptyMap) |
Type | GetType () const |
bool | Equals (const CMessage &Other) const |
void | Clone (const CMessage &Other) |
CIRCNetwork * | GetNetwork () const |
void | SetNetwork (CIRCNetwork *pNetwork) |
CClient * | GetClient () const |
void | SetClient (CClient *pClient) |
CChan * | GetChan () const |
void | SetChan (CChan *pChan) |
CNick & | GetNick () |
const CNick & | GetNick () const |
void | SetNick (const CNick &Nick) |
const CString & | GetCommand () const |
void | SetCommand (const CString &sCommand) |
const VCString & | GetParams () const |
VCString | GetParamsSplit (unsigned int uIdx, unsigned int uLen=-1) const |
| Get a subset of the message parameters.
|
void | SetParams (const VCString &vsParams) |
CString | GetParams (unsigned int uIdx, unsigned int uLen=-1) const ZNC_MSG_DEPRECATED("Use GetParamsColon() instead") |
CString | GetParamsColon (unsigned int uIdx, unsigned int uLen=-1) const |
CString | GetParam (unsigned int uIdx) const |
void | SetParam (unsigned int uIdx, const CString &sParam) |
const timeval & | GetTime () const |
void | SetTime (const timeval &ts) |
const MCString & | GetTags () const |
void | SetTags (const MCString &mssTags) |
CString | GetTag (const CString &sKey) const |
void | SetTag (const CString &sKey, const CString &sValue) |
CString | ToString (unsigned int uFlags=IncludeAll) const |
void | Parse (const CString &sMessage) |
template<typename M> |
M & | As () & |
template<typename M> |
const M & | As () const & |
template<typename M, typename = typename std::enable_if< std::is_base_of<CMessage, M>{}>::type> |
| operator M& () & |
template<typename M, typename = typename std::enable_if< std::is_base_of<CMessage, M>{}>::type> |
| operator const M & () const & |
Here is a small explanation of how messages on IRC work, and how you can use this class to get useful information from the parsed message.
The output varies greatly and this advice may not apply to every message type, but this will hopefully help you understand how it works more accurately.
@t=some-tag :server.network.net 366 something #channel :End of /NAMES list. tags nick cmd 0 1 2
- tags is the IRCv3 tags associated with the message, obtained with GetTag("t"). the @time tag can also be obtained with GetTime(), some messages have other tags with them. Tags may not always be present. Refer to IRCv3 for documentation on tags.
- nick is the sender, which can be obtained with GetNick()
- cmd is command, which is obtained via GetCommand()
- 0, 1, ... are parameters, available via GetParam(n), which removes the leading colon (:). If you don't want to remove the colon, use GetParamsColon().
For certain events, like a PRIVMSG, convienience commands like GetChan() and GetNick() are available, this is not true for all CMessage extensions.