Skip to content

Commit

Permalink
Make CModule::PutModule use CUser::PutModule
Browse files Browse the repository at this point in the history
  • Loading branch information
kylef committed Feb 22, 2011
1 parent c48f0fd commit 6bc36d1
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 21 deletions.
18 changes: 6 additions & 12 deletions Modules.cpp
Expand Up @@ -539,31 +539,25 @@ bool CModule::PutUser(const CString& sLine) {
bool CModule::PutStatus(const CString& sLine) {
return (m_pUser) ? m_pUser->PutStatus(sLine, m_pClient) : false;
}
unsigned int CModule::PutModule(const CTable& table, const CString& sIdent, const CString& sHost) {
unsigned int CModule::PutModule(const CTable& table) {
if (!m_pUser)
return 0;

unsigned int idx = 0;
CString sLine;
while (table.GetLine(idx++, sLine))
PutModule(sLine, sIdent, sHost);
PutModule(sLine);
return idx - 1;
}
bool CModule::PutModule(const CString& sLine, const CString& sIdent, const CString& sHost) {
bool CModule::PutModule(const CString& sLine) {
if (!m_pUser)
return false;
return m_pUser->PutUser(":" + GetModNick() + "!" +
(sIdent.empty() ? GetModName() : sIdent) + "@" + sHost +
" PRIVMSG " + m_pUser->GetCurNick() + " :" + sLine,
m_pClient);
return m_pUser->PutModule(GetModName(), sLine, m_pClient);
}
bool CModule::PutModNotice(const CString& sLine, const CString& sIdent, const CString& sHost) {
bool CModule::PutModNotice(const CString& sLine) {
if (!m_pUser)
return false;
return m_pUser->PutUser(":" + GetModNick() + "!" +
(sIdent.empty() ? GetModName() : sIdent) + "@" + sHost +
" NOTICE " + m_pUser->GetCurNick() + " :" + sLine,
m_pClient);
return m_pUser->PutModNotice(GetModName(), sLine, m_pClient);
}

///////////////////
Expand Down
12 changes: 3 additions & 9 deletions Modules.h
Expand Up @@ -757,28 +757,22 @@ class CModule {
* module hook for a specific client, only that client gets this
* message, else all connected clients will receive it.
* @param sLine The message which should be sent.
* @param sIdent The ident for the module nick. Defaults to the module name.
* @param sHost The hostname for the module nick. Defaults to znc.in
* @return true if the line was sent to at least one client.
*/
virtual bool PutModule(const CString& sLine, const CString& sIdent = "", const CString& sHost = "znc.in");
virtual bool PutModule(const CString& sLine);
/** This function calls CModule::PutModule(const CString&, const
* CString&, const CString&) for each line in the table.
* @param table The table which should be send.
* @param sIdent The ident which should be used.
* @param sHost The hostname used for the query.
* @return The number of lines sent.
*/
virtual unsigned int PutModule(const CTable& table, const CString& sIdent = "", const CString& sHost = "znc.in");
virtual unsigned int PutModule(const CTable& table);
/** Send a notice from your module nick. If we are in a module hook for
* a specific client, only that client gets this notice, else all
* clients will receive it.
* @param sLine The line which should be sent.
* @param sIdent The ident used for the notice.
* @param sHost The host name used for the notice.
* @return true if the line was sent to at least one client.
*/
virtual bool PutModNotice(const CString& sLine, const CString& sIdent = "", const CString& sHost = "znc.in");
virtual bool PutModNotice(const CString& sLine);

/** @returns The name of the module. */
const CString& GetModName() const { return m_sModName; }
Expand Down
14 changes: 14 additions & 0 deletions User.cpp
Expand Up @@ -1104,6 +1104,20 @@ bool CUser::PutModule(const CString& sModule, const CString& sLine, CClient* pCl
return (pClient == NULL);
}

bool CUser::PutModNotice(const CString& sModule, const CString& sLine, CClient* pClient, CClient* pSkipClient) {
for (unsigned int a = 0; a < m_vClients.size(); a++) {
if ((!pClient || pClient == m_vClients[a]) && pSkipClient != m_vClients[a]) {
m_vClients[a]->PutModNotice(sModule, sLine);

if (pClient) {
return true;
}
}
}

return (pClient == NULL);
}

bool CUser::ResumeFile(unsigned short uPort, unsigned long uFileSize) {
CSockManager& Manager = CZNC::Get().GetManager();

Expand Down
1 change: 1 addition & 0 deletions User.h
Expand Up @@ -101,6 +101,7 @@ class CUser {
bool PutStatus(const CString& sLine, CClient* pClient = NULL, CClient* pSkipClient = NULL);
bool PutStatusNotice(const CString& sLine, CClient* pClient = NULL, CClient* pSkipClient = NULL);
bool PutModule(const CString& sModule, const CString& sLine, CClient* pClient = NULL, CClient* pSkipClient = NULL);
bool PutModNotice(const CString& sModule, const CString& sLine, CClient* pClient = NULL, CClient* pSkipClient = NULL);

bool IsUserAttached() const { return !m_vClients.empty(); }
void UserConnected(CClient* pClient);
Expand Down

0 comments on commit 6bc36d1

Please sign in to comment.