Beispiel #1
0
bool CIRCSock::OnNickMessage(CNickMessage& Message) {
    const CNick& Nick = Message.GetNick();
    CString sNewNick = Message.GetNewNick();
    bool bIsVisible = false;

    vector<CChan*> vFoundChans;
    const vector<CChan*>& vChans = m_pNetwork->GetChans();

    for (CChan* pChan : vChans) {
        if (pChan->ChangeNick(Nick.GetNick(), sNewNick)) {
            vFoundChans.push_back(pChan);

            if (!pChan->IsDetached()) {
                bIsVisible = true;
            }
        }
    }

    if (Nick.NickEquals(GetNick())) {
        // We are changing our own nick, the clients always must see this!
        bIsVisible = false;
        SetNick(sNewNick);
        m_pNetwork->PutUser(Message);
    }

    IRCSOCKMODULECALL(OnNickMessage(Message, vFoundChans), NOTHING);

    return !bIsVisible;
}
Beispiel #2
0
 void OnNickMessage(CNickMessage& Message,
                    const vector<CChan*>& vChans) override {
     const CNick& OldNick = Message.GetNick();
     const CString sNewNick = Message.GetNewNick();
     CString sMsg = OldNick.GetNickMask() + " is now known as " + sNewNick;
     for (CChan* pChan : vChans) {
         AddBuffer(*pChan, sMsg, &Message.GetTime(), Message.GetTags());
     }
 }
Beispiel #3
0
TEST(MessageTest, Nick) {
	CNickMessage msg;
	msg.Parse(":nick NICK person");
	EXPECT_EQ("nick", msg.GetNick().GetNick());
	EXPECT_EQ("NICK", msg.GetCommand());
	EXPECT_EQ("nick", msg.GetOldNick());
	EXPECT_EQ("person", msg.GetNewNick());
	EXPECT_EQ(CMessage::Type::Nick, msg.GetType());

	msg.SetNewNick("test");
	EXPECT_EQ("test", msg.GetNewNick());
	EXPECT_EQ(":nick NICK test", msg.ToString());
}
Beispiel #4
0
	void OnNickMessage(CNickMessage& msg, const std::vector<CChan*>& vChans) override { vsHooks.push_back("OnNickMessage"); vsMessages.push_back(msg.ToString()); vNetworks.push_back(msg.GetNetwork()); vChannels.push_back(msg.GetChan()); }