mirror of
https://github.com/znc/znc.git
synced 2026-08-11 03:12:50 +02:00
Implement invite-notify
This commit is contained in:
+24
-8
@@ -85,6 +85,7 @@ CClient::CClient()
|
||||
m_bCapNotify(false),
|
||||
m_bAwayNotify(false),
|
||||
m_bAccountNotify(false),
|
||||
m_bInviteNotify(false),
|
||||
m_bExtendedJoin(false),
|
||||
m_bNamesx(false),
|
||||
m_bUHNames(false),
|
||||
@@ -587,14 +588,25 @@ void CClient::PutClient(const CString& sLine) {
|
||||
}
|
||||
|
||||
bool CClient::PutClient(const CMessage& Message) {
|
||||
if (!m_bAwayNotify && Message.GetType() == CMessage::Type::Away) {
|
||||
return false;
|
||||
} else if (!m_bAccountNotify &&
|
||||
Message.GetType() == CMessage::Type::Account) {
|
||||
return false;
|
||||
} else if (!m_bMessageTagCap &&
|
||||
Message.GetType() == CMessage::Type::TagMsg) {
|
||||
return false;
|
||||
switch (Message.GetType()) {
|
||||
case CMessage::Type::Away:
|
||||
if (!m_bAwayNotify) return false;
|
||||
break;
|
||||
case CMessage::Type::Account:
|
||||
if (!m_bAccountNotify) return false;
|
||||
break;
|
||||
case CMessage::Type::TagMsg:
|
||||
if (!m_bMessageTagCap) return false;
|
||||
break;
|
||||
case CMessage::Type::Invite:
|
||||
if (!m_bInviteNotify &&
|
||||
!CNick(Message.As<CInviteMessage>().GetInvitedNick())
|
||||
.NickEquals(m_sNick)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
CMessage Msg(Message);
|
||||
@@ -854,6 +866,10 @@ CClient::CoreCaps() {
|
||||
[](CClient* pClient, bool bVal) {
|
||||
pClient->m_bCapNotify = bVal;
|
||||
}},
|
||||
{"invite-notify",
|
||||
[](CClient* pClient, bool bVal) {
|
||||
pClient->m_bInviteNotify = bVal;
|
||||
}},
|
||||
{"chghost", [](CClient* pClient,
|
||||
bool bVal) { pClient->m_bChgHost = bVal; }},
|
||||
{"sasl",
|
||||
|
||||
+10
-3
@@ -386,6 +386,7 @@ bool CIRCSock::OnCapabilityMessage(CMessage& Message) {
|
||||
{"multi-prefix", [this](bool bVal) { m_bNamesx = bVal; }},
|
||||
{"userhost-in-names", [this](bool bVal) { m_bUHNames = bVal; }},
|
||||
{"cap-notify", [](bool bVal) {}},
|
||||
{"invite-notify", [](bool bVal) {}},
|
||||
{"server-time", [this](bool bVal) { m_bServerTime = bVal; }},
|
||||
{"znc.in/server-time-iso", [this](bool bVal) { m_bServerTime = bVal; }},
|
||||
{"chghost", [](bool) {}},
|
||||
@@ -596,10 +597,16 @@ bool CIRCSock::OnErrorMessage(CMessage& Message) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CIRCSock::OnInviteMessage(CMessage& Message) {
|
||||
bool CIRCSock::OnInviteMessage(CInviteMessage& Message) {
|
||||
Message.SetChan(GetNetwork()->FindChan(Message.GetChannel()));
|
||||
bool bResult = false;
|
||||
IRCSOCKMODULECALL(OnInvite(Message.GetNick(), Message.GetParam(1)),
|
||||
&bResult);
|
||||
IRCSOCKMODULECALL(OnInviteMessage(Message), &bResult);
|
||||
if (bResult) return true;
|
||||
CNick InvitedNick = Message.GetInvitedNick();
|
||||
if (InvitedNick.NickEquals(GetNick())) {
|
||||
IRCSOCKMODULECALL(OnInvite(Message.GetNick(), Message.GetParam(1)),
|
||||
&bResult);
|
||||
}
|
||||
return bResult;
|
||||
}
|
||||
|
||||
|
||||
@@ -890,6 +890,9 @@ CModule::EModRet CModule::OnPrivTagMessage(CTargetMessage& Message) {
|
||||
CModule::EModRet CModule::OnChanTagMessage(CTargetMessage& Message) {
|
||||
return CONTINUE;
|
||||
}
|
||||
CModule::EModRet CModule::OnInviteMessage(CInviteMessage& Message) {
|
||||
return CONTINUE;
|
||||
}
|
||||
CModule::EModRet CModule::OnUserJoin(CString& sChannel, CString& sKey) {
|
||||
return CONTINUE;
|
||||
}
|
||||
@@ -1448,6 +1451,9 @@ bool CModules::OnPrivTagMessage(CTargetMessage& Message) {
|
||||
bool CModules::OnChanTagMessage(CTargetMessage& Message) {
|
||||
MODHALTCHK(OnChanTagMessage(Message));
|
||||
}
|
||||
bool CModules::OnInviteMessage(CInviteMessage& Message) {
|
||||
MODHALTCHK(OnInviteMessage(Message));
|
||||
}
|
||||
bool CModules::OnUserJoin(CString& sChannel, CString& sKey) {
|
||||
MODHALTCHK(OnUserJoin(sChannel, sKey));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user