void CChatChanMember::ToggleIgnore(LPCTSTR pszName) { ADDTOCALLSTACK("CChatChanMember::ToggleIgnore"); size_t i = FindIgnoringIndex( pszName ); if ( i != m_IgnoredMembers.BadIndex() ) { ASSERT( m_IgnoredMembers.IsValidIndex(i) ); m_IgnoredMembers.DeleteAt(i); SendChatMsg(CHATMSG_NoLongerIgnoring, pszName); // Resend the un ignored member to the client's local list of members (but only if they are currently in the same channel!) if (m_pChannel) { CChatChanMember * pMember = m_pChannel->FindMember(pszName); if (pMember) m_pChannel->SendThisMember(pMember, this); } } else { CGString * name = new CGString(pszName); m_IgnoredMembers.Add( name ); SendChatMsg(CHATMSG_NowIgnoring, pszName); // This message also takes the ignored person off the clients local list of channel members } }
void CChatMember::ToggleIgnore(LPCTSTR pszName) { ADDTOCALLSTACK("CChatMember::ToggleIgnore"); size_t i = FindIgnoringIndex(pszName); if ( i != m_IgnoredMembers.BadIndex() ) { // Remove member from ignore list ASSERT(m_IgnoredMembers.IsValidIndex(i)); m_IgnoredMembers.DeleteAt(i); SendChatMsg(CHATMSG_NoLongerIgnoring, pszName); // Show member name on members list again if ( m_pChannel ) { CChatMember *pMember = m_pChannel->FindMember(pszName); if ( pMember ) m_pChannel->SendMember(pMember, this); } return; } else { // Check if ignore list reached max limit if ( m_IgnoredMembers.GetCount() >= 30 ) { SendChatMsg(CHATMSG_AlreadyIgnoringMax, pszName); return; } // Add member on ignore list CGString *sName = new CGString(pszName); m_IgnoredMembers.Add(sName); SendChatMsg(CHATMSG_NowIgnoring, pszName); // this message will also hide member name on members list } }
bool CChatChanMember::IsIgnoring(lpctstr pszName) const { return( FindIgnoringIndex( pszName ) != m_IgnoredMembers.BadIndex() ); }