Skip to content

Commit

Permalink
Add CModule::OnUnknownModCommand()
Browse files Browse the repository at this point in the history
This module hook is called to generate messages for unknown commands. This hook
has a default implementation that actually does something!

Signed-off-by: Uli Schlachter <psychon@znc.in>
  • Loading branch information
psychon committed Feb 21, 2011
1 parent ebd7e53 commit 8e59fb9
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
11 changes: 10 additions & 1 deletion Modules.cpp
Expand Up @@ -431,6 +431,8 @@ bool CModule::HandleCommand(const CString& sLine) {
return true;
}

OnUnknownModCommand(sLine);

return false;
}

Expand Down Expand Up @@ -478,10 +480,17 @@ void CModule::OnMode(const CNick& OpNick, CChan& Channel, char uMode, const CStr
CModule::EModRet CModule::OnRaw(CString& sLine) { return CONTINUE; }

CModule::EModRet CModule::OnStatusCommand(CString& sCommand) { return CONTINUE; }
void CModule::OnModCommand(const CString& sCommand) { HandleCommand(sCommand); }
void CModule::OnModNotice(const CString& sMessage) {}
void CModule::OnModCTCP(const CString& sMessage) {}

void CModule::OnModCommand(const CString& sCommand) {
HandleCommand(sCommand);
}
void CModule::OnUnknownModCommand(const CString& sLine) {
if (!m_mCommands.empty())
PutModule("Unknown command!");
}

void CModule::OnQuit(const CNick& Nick, const CString& sMessage, const vector<CChan*>& vChans) {}
void CModule::OnNick(const CNick& Nick, const CString& sNewNick, const vector<CChan*>& vChans) {}
void CModule::OnKick(const CNick& Nick, const CString& sKickedNick, CChan& Channel, const CString& sMessage) {}
Expand Down
7 changes: 7 additions & 0 deletions Modules.h
Expand Up @@ -494,6 +494,13 @@ class CModule {
* @param sCommand The command that was sent.
*/
virtual void OnModCommand(const CString& sCommand);
/** This is similar to OnModCommand(), but it is only called if
* HandleCommand didn't find any that wants to handle this. This is only
* called if HandleCommand() is called, which practically means that
* this is only called if you don't overload OnModCommand().
* @param sCommand The command that was sent.
*/
virtual void OnUnknownModCommand(const CString& sCommand);
/** Called when a your module nick was sent a notice.
* @param sMessage The message which was sent.
*/
Expand Down

0 comments on commit 8e59fb9

Please sign in to comment.