1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:47:36 +00:00

IRCClient: Update channel user list when a user joins or quits

This commit is contained in:
Brendan Coles 2020-04-02 14:39:25 +00:00 committed by Andreas Kling
parent 99aab4470a
commit 40b3203941
4 changed files with 37 additions and 1 deletions

View file

@ -94,8 +94,12 @@ void IRCChannel::say(const String& text)
void IRCChannel::handle_join(const String& nick, const String& hostmask)
{
if (nick == m_client.nickname())
if (nick == m_client.nickname()) {
m_open = true;
return;
}
add_member(nick, (char)0);
m_member_model->update();
add_message(String::format("*** %s [%s] has joined %s", nick.characters(), hostmask.characters(), m_name.characters()), Color::MidGreen);
}
@ -112,6 +116,19 @@ void IRCChannel::handle_part(const String& nick, const String& hostmask)
add_message(String::format("*** %s [%s] has parted from %s", nick.characters(), hostmask.characters(), m_name.characters()), Color::MidGreen);
}
void IRCChannel::handle_quit(const String& nick, const String& hostmask, const String& message)
{
if (nick == m_client.nickname()) {
m_open = false;
m_members.clear();
m_client.did_part_from_channel({}, *this);
} else {
remove_member(nick);
}
m_member_model->update();
add_message(String::format("*** %s [%s] has quit (%s)", nick.characters(), hostmask.characters(), message.characters()), Color::MidGreen);
}
void IRCChannel::handle_topic(const String& nick, const String& topic)
{
if (nick.is_null())