Merge pull request #1059 from jpnurmi/networklesshooks

Don't require network for OnUserXxxMessage() hooks
This commit is contained in:
J-P Nurmi
2015-09-04 23:29:49 +02:00
2 changed files with 22 additions and 18 deletions

View File

@@ -296,24 +296,24 @@ void CClient::ReadLine(const CString& sData) {
continue;
}
if (m_pNetwork) {
if (sCTCP.Token(0).Equals("ACTION")) {
CActionMessage& ActionMsg = static_cast<CActionMessage&>(Message);
if (sCTCP.Token(0).Equals("ACTION")) {
CActionMessage& ActionMsg = static_cast<CActionMessage&>(Message);
NETWORKMODULECALL(OnUserActionMessage(ActionMsg), m_pUser, m_pNetwork, this, &bContinue);
if (bContinue) continue;
NETWORKMODULECALL(OnUserActionMessage(ActionMsg), m_pUser, m_pNetwork, this, &bContinue);
if (bContinue) continue;
if (m_pNetwork) {
AddBuffer(ActionMsg);
EchoMessage(ActionMsg);
PutIRC(ActionMsg.ToString(CMessage::ExcludePrefix | CMessage::ExcludeTags));
} else {
NETWORKMODULECALL(OnUserCTCPMessage(CTCPMsg), m_pUser, m_pNetwork, this, &bContinue);
if (bContinue) continue;
PutIRC(CTCPMsg.ToString(CMessage::ExcludePrefix | CMessage::ExcludeTags));
}
} else {
NETWORKMODULECALL(OnUserCTCPMessage(CTCPMsg), m_pUser, m_pNetwork, this, &bContinue);
if (bContinue) continue;
}
if (m_pNetwork) {
PutIRC(Message.ToString(CMessage::ExcludePrefix | CMessage::ExcludeTags));
}
continue;
}
@@ -349,11 +349,11 @@ void CClient::ReadLine(const CString& sData) {
return;
}
if (!m_pNetwork) {
return; // The following commands require a network
}
if (sCommand.Equals("DETACH")) {
if (!m_pNetwork) {
return;
}
CString sPatterns = Message.GetParams(0);
if (sPatterns.empty()) {
@@ -406,7 +406,7 @@ void CClient::ReadLine(const CString& sData) {
CString sChannel = JoinMsg.GetTarget();
CString sKey = JoinMsg.GetKey();
CChan* pChan = m_pNetwork->FindChan(sChannel);
CChan* pChan = m_pNetwork ? m_pNetwork->FindChan(sChannel) : nullptr;
if (pChan) {
if (pChan->IsDetached())
pChan->AttachUser(this);
@@ -446,7 +446,7 @@ void CClient::ReadLine(const CString& sData) {
sChan = PartMsg.GetTarget();
CChan* pChan = m_pNetwork->FindChan(sChan);
CChan* pChan = m_pNetwork ? m_pNetwork->FindChan(sChan) : nullptr;
if (pChan && !pChan->IsOn()) {
PutStatusNotice("Removing channel [" + sChan + "]");
@@ -479,7 +479,7 @@ void CClient::ReadLine(const CString& sData) {
CString sTarget = Message.GetParam(0);
CString sModes = Message.GetParams(1);
if (m_pNetwork->IsChan(sTarget) && sModes.empty()) {
if (m_pNetwork && m_pNetwork->IsChan(sTarget) && sModes.empty()) {
// If we are on that channel and already received a
// /mode reply from the server, we can answer this
// request ourself.