mirror of
https://github.com/znc/znc.git
synced 2026-05-07 13:54:47 +02:00
Add support for extended-join (#316)
This commit is contained in:
@@ -98,6 +98,7 @@ public:
|
||||
m_bCapNotify(false),
|
||||
m_bAwayNotify(false),
|
||||
m_bAccountNotify(false),
|
||||
m_bExtendedJoin(false),
|
||||
m_bNamesx(false),
|
||||
m_bUHNames(false),
|
||||
m_bAway(false),
|
||||
@@ -123,6 +124,7 @@ public:
|
||||
{"cap-notify", {false, [this](bool bVal) { m_bCapNotify = bVal; }}},
|
||||
{"away-notify", {true, [this](bool bVal) { m_bAwayNotify = bVal; }}},
|
||||
{"account-notify", {true, [this](bool bVal) { m_bAccountNotify = bVal; }}},
|
||||
{"extended-join", {true, [this](bool bVal) { m_bExtendedJoin = bVal; }}},
|
||||
})
|
||||
{
|
||||
EnableReadLine();
|
||||
@@ -151,6 +153,7 @@ public:
|
||||
bool HasCapNotify() const { return m_bCapNotify; }
|
||||
bool HasAwayNotify() const { return m_bAwayNotify; }
|
||||
bool HasAccountNotify() const { return m_bAccountNotify; }
|
||||
bool HasExtendedJoin() const { return m_bExtendedJoin; }
|
||||
bool HasNamesx() const { return m_bNamesx; }
|
||||
bool HasUHNames() const { return m_bUHNames; }
|
||||
bool IsAway() const { return m_bAway; }
|
||||
@@ -217,6 +220,7 @@ protected:
|
||||
bool m_bCapNotify;
|
||||
bool m_bAwayNotify;
|
||||
bool m_bAccountNotify;
|
||||
bool m_bExtendedJoin;
|
||||
bool m_bNamesx;
|
||||
bool m_bUHNames;
|
||||
bool m_bAway;
|
||||
|
||||
@@ -103,6 +103,7 @@ public:
|
||||
bool HasUHNames() const { return m_bUHNames; }
|
||||
bool HasAwayNotify() const { return m_bAwayNotify; }
|
||||
bool HasAccountNotify() const { return m_bAccountNotify; }
|
||||
bool HasExtendedJoin() const { return m_bExtendedJoin; }
|
||||
const std::set<unsigned char>& GetUserModes() const { return m_scUserModes; }
|
||||
// This is true if we are past raw 001
|
||||
bool IsAuthed() const { return m_bAuthed; }
|
||||
@@ -131,6 +132,7 @@ protected:
|
||||
bool m_bUHNames;
|
||||
bool m_bAwayNotify;
|
||||
bool m_bAccountNotify;
|
||||
bool m_bExtendedJoin;
|
||||
CString m_sPerms;
|
||||
CString m_sPermModes;
|
||||
std::set<unsigned char> m_scUserModes;
|
||||
|
||||
@@ -62,6 +62,7 @@ CIRCSock::CIRCSock(CIRCNetwork* pNetwork)
|
||||
m_bUHNames(false),
|
||||
m_bAwayNotify(false),
|
||||
m_bAccountNotify(false),
|
||||
m_bExtendedJoin(false),
|
||||
m_sPerms("*!@%+"),
|
||||
m_sPermModes("qaohv"),
|
||||
m_scUserModes(),
|
||||
@@ -591,6 +592,21 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
if (pChan->IsDetached()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (HasExtendedJoin()) {
|
||||
CString sExtendedLine = sLine;
|
||||
sLine = ":" + Nick.GetNickMask() + " JOIN " + pChan->GetName();
|
||||
|
||||
const vector<CClient*>& vClients = m_pNetwork->GetClients();
|
||||
for (CClient* pClient : vClients) {
|
||||
if (pClient->HasExtendedJoin()) {
|
||||
m_pNetwork->PutUser(sExtendedLine, pClient);
|
||||
} else {
|
||||
m_pNetwork->PutUser(sLine, pClient);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else if (sCmd.Equals("PART")) {
|
||||
CString sChan = sRest.Token(0).TrimPrefix_n();
|
||||
@@ -811,6 +827,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
{"userhost-in-names", [this](bool bVal) { m_bUHNames = bVal; }},
|
||||
{"away-notify", [this](bool bVal) { m_bAwayNotify = bVal; }},
|
||||
{"account-notify", [this](bool bVal) { m_bAccountNotify = bVal; }},
|
||||
{"extended-join", [this](bool bVal) { m_bExtendedJoin = bVal; }},
|
||||
};
|
||||
|
||||
if (sSubCmd == "LS") {
|
||||
|
||||
Reference in New Issue
Block a user