[Execute]//添加某个社会关系 public void Excute(stAddRelationUserCmd_S cmd) { tFriendBaseData data = null; switch (cmd.type) { case RelationType.Relation_Friend: data = cmd.frdata; if (string.IsNullOrEmpty(data.username)) { TipsManager.Instance.ShowTips("添加好友成功 但是名字是空的!"); UnityEngine.Debug.LogError("添加好友成功 但是名字是空的!"); } else { TipsManager.Instance.ShowLocalFormatTips(LocalTextType.Friend_Friend_tianjiachenggong, data.username); } break; case RelationType.Relation_Black: data = cmd.bldata; TipsManager.Instance.ShowTips(LocalTextType.Friend_BlackList_pingbichenggong); break; case RelationType.Relation_Enemy: data = cmd.endata; break; case RelationType.Relation_Contact: data = cmd.strangerdata; break; case RelationType.Relation_FriendRequest: data = cmd.friendrequestdata; break; case RelationType.Relation_Interactive: data = cmd.interactive; break; } if (data != null) { relationManager.AddRelationByType(cmd.type, data); } else { Engine.Utility.Log.Error("添加某个社会关系 数据为空"); } }
/// <summary> /// 添加好友 /// </summary> /// <param name="type"></param> /// <param name="data"></param> /// <returns></returns> public bool AddRelationByType(RelationType type, tFriendBaseData data) { if (type == RelationType.Relation_Friend) { if (m_lstRecommend != null) { for (int i = 0; i < m_lstRecommend.Count; i++) { if (m_lstRecommend[i].uid == data.id) { m_lstRecommend.RemoveAt(i); break; } } } if (m_lstRecommendCache != null) { for (int i = 0; i < m_lstRecommendCache.Count; i++) { if (m_lstRecommendCache[i].uid == data.id) { m_lstRecommendCache.RemoveAt(i); if (m_lstRecommend != null && m_lstRecommend.Count > 0) { m_lstRecommendCache.Add(m_lstRecommend[0]); m_lstRecommend.RemoveAt(0); } ValueUpdateEventArgs arg = new ValueUpdateEventArgs("SEARCH", 0, m_lstRecommendCache); DispatchValueUpdateEvent(arg); break; } } } } List <RoleRelation> lst = null; if (m_dicRelation.TryGetValue(type, out lst)) { RoleRelation rec = new RoleRelation() { type = type, uid = data.id, online = data.online == 1, level = data.level, profession = data.profession, degree = data.degree, title = data.title, mapid = data.mapid, name = data.username, help_tree = data.help_tree, }; bool isOld = false; for (int i = 0; i < lst.Count; i++) { if (lst[i].uid == data.id) { lst[i] = rec; isOld = true; } } if (!isOld) { lst.Add(rec); } lst.Sort(SortRelationsByChatTime); ValueUpdateEventArgs arg = new ValueUpdateEventArgs(type.ToString(), 0, lst); DispatchValueUpdateEvent(arg); if (type == RelationType.Relation_FriendRequest) { newFriendReuquest = true; } return(true); } else { Log.Error(" m_dicRelation no contain type :{0}", type); } return(false); }