diff --git a/src/Client.cpp b/src/Client.cpp index 1a61d1a0..69273789 100644 --- a/src/Client.cpp +++ b/src/Client.cpp @@ -792,6 +792,10 @@ bool CClient::PutClient(const CMessage& Message) Msg.SetParam(3, CString(" ").Join(vsNicks.begin(), vsNicks.end())); } } + } else if (Msg.GetType() == CMessage::Type::Join) { + if (!m_bExtendedJoin && pIRCSock->HasExtendedJoin()) { + Msg.SetParams({static_cast(Msg).GetTarget()}); + } } } diff --git a/src/IRCSock.cpp b/src/IRCSock.cpp index 5d8d8112..10c2e431 100644 --- a/src/IRCSock.cpp +++ b/src/IRCSock.cpp @@ -493,20 +493,6 @@ bool CIRCSock::OnJoinMessage(CJoinMessage& Message) { if (pChan->IsDetached()) { return true; } - - if (HasExtendedJoin()) { - CString sLine = ":" + Nick.GetNickMask() + " JOIN " + pChan->GetName(); - - const vector& vClients = m_pNetwork->GetClients(); - for (CClient* pClient : vClients) { - if (pClient->HasExtendedJoin()) { - m_pNetwork->PutUser(Message, pClient); - } else { - m_pNetwork->PutUser(sLine, pClient); - } - } - return true; - } } return false;