Files
2026-03-02 12:37:07 +00:00

77 lines
1.2 KiB
C++

#include "Game/ChatRoomSession.hpp"
#include "Game/RealmUser.hpp"
ChatRoomSession::ChatRoomSession()
{
m_type = RoomType::Public;
m_index = 0;
m_name.clear();
}
ChatRoomSession::~ChatRoomSession()
{
m_type = RoomType::Public;
m_index = 0;
m_name.clear();
}
bool ChatRoomSession::AddMember( sptr_user user )
{
if( !user )
return false;
for( const auto &member : m_members )
{
if( member.lock() == user )
return false; // User already in the room.
}
m_members.push_back( user );
return true;
}
bool ChatRoomSession::RemoveMember( sptr_user user )
{
if( !user )
return false;
auto it = std::remove_if( m_members.begin(), m_members.end(),
[ &user ]( const std::weak_ptr< RealmUser > &member )
{
return member.lock() == user;
} );
if( it == m_members.end() )
{
return false;
}
m_members.erase( it, m_members.end() );
return true;
}
bool ChatRoomSession::IsMember( sptr_user user )
{
if( !user )
return false;
for( const auto &member : m_members )
{
if( member.lock() == user )
return true;
}
return false;
}
bool ChatRoomSession::IsPublic() const
{
return m_type == RoomType::Public;
}
bool ChatRoomSession::IsPrivate() const
{
return m_type == RoomType::Private;
}