Пример #1
0
 private void OnInvite(InviteData invite)
 {
     if (invite.Catalog == InvitesMessage.FRIEND_OPERATE)
     {
         return;
     }
 }
Пример #2
0
        private void OnAccept(InviteData invite)
        {
            if (invite.Catalog == InvitesMessage.FRIEND_OPERATE)
            {
                long agreeUid = 0;
                long.TryParse(invite.OrgnizationId.ToString(), out agreeUid);
                string agreeName = EB.Dot.String(agreeUid + ".name", invite.Infos, "");
                if (agreeUid <= 0)
                {
                    EB.Debug.LogError("friend agree uid=null");
                }
                if (string.IsNullOrEmpty(agreeName))
                {
                    EB.Debug.LogError("friend agree name=null");
                }

                long localUid = AllianceUtil.GetLocalUid();
                if (agreeUid != localUid)
                {
                    MessageTemplateManager.ShowMessage(FriendManager.CodeAcceptFriendInvite, agreeName, null);
                }

                //var friendData = MyFriends.Parse(invite.Data,invite.SenderUid);
                //MyFriends.Add(friendData);
                //GameDataSparxManager.Instance.SetDirty(MyFriendListId);
                GetInfo();
                return;
            }
        }
Пример #3
0
        private void OnCancelListener(InviteData payload)  //处理对方取消切磋消息
        {
            if (payload.Catalog != InvitesMessage.INVITE_PK && payload.Catalog != InvitesMessage.INVITE_FRIEDS)
            {
                return;
            }
            Hashtable data   = Johny.HashtablePool.Claim();
            Hashtable intact = Johny.HashtablePool.Claim();

            intact["invite"] = payload.ToJson();
            data["intact"]   = intact;
            PutOneMessage(new PKCancelMessage(data));
        }
Пример #4
0
 private void OnRemove(object payload)
 {
     if (OnRemoveListener != null)
     {
         Hashtable obj    = EB.Dot.Object("intact.invite", payload, null);
         var       invite = InviteData.Parse(obj);
         if (invite == null)
         {
             EB.Debug.LogWarning("InvitesManager.OnRemove: parse invite data failed");
         }
         else
         {
             OnRemoveListener(invite);
         }
     }
 }
Пример #5
0
 private void OnRemove(InviteData invite)
 {
     if (invite.Catalog == InvitesMessage.FRIEND_OPERATE)
     {
         //var friend = MyFriends.Find(invite.SenderUid);
         //if ( friend == null)
         //{
         //	EB.Debug.LogError("on remove friend not in my list uid="+invite.SenderUid);
         //	return;
         //}
         //MyFriends.Remove(invite.SenderUid);
         //GameDataSparxManager.Instance.SetDirty(MyFriendListId);
         GetInfo();
         //MarkDirty(RecentlyListId);
         //MarkDirty(TeamListId);
     }
 }
Пример #6
0
        private void OnRequestListener(InviteData payload)
        {
            if (payload.Catalog == InvitesMessage.ESCORT_HELP)
            {
                long localUid = LoginManager.Instance.LocalUserId.Value;
                for (var i = 0; i < payload.ReceiverUids.Length; i++)
                {
                    var receiver = payload.ReceiverUids[i];

                    if (receiver.Equals(localUid))
                    {
                        AlliancesManager.Instance.GetHelpApplyInfo(delegate(Hashtable result) {
                            Hashtable list = EB.Dot.Object("escortAndRob.helpApply.list", result, null);
                            HelpOtherBtn.gameObject.SetActive(list.Count > 0);
                        });
                        break;
                    }
                }
            }
        }
Пример #7
0
        private void OnRequest(InviteData invite)   //请求加好友
        {
            if (invite.Catalog == InvitesMessage.FRIEND_OPERATE)
            {
                var sender = MyFriends.Find(invite.SenderUid);
                if (sender != null)
                {
                    EB.Debug.LogError("already is my friend uid={0}", invite.SenderUid);
                    return;
                    //Applys.Add(sender);
                }

                if (invite.SenderUid != AllianceUtil.GetLocalUid() && Applys.Find(invite.SenderUid) == null)
                {
                    Info.ApplyCount++;
                    Messenger.Raise(Hotfix_LT.EventName.FriendApplyEvent, true);
                    //MarkDirty(ApplyListId);
                    GetApplyList();
                }
            }
        }
Пример #8
0
        private void OnReject(InviteData invite)
        {
            if (invite.Catalog == InvitesMessage.FRIEND_OPERATE)
            {
                long rejectUid = 0;
                long.TryParse(invite.OrgnizationId.ToString(), out rejectUid);
                string rejectName = EB.Dot.String(rejectUid + ".name", invite.Infos, "");
                if (rejectUid <= 0)
                {
                    EB.Debug.LogError("friend reject uid<=0");
                }
                if (string.IsNullOrEmpty(rejectName))
                {
                    EB.Debug.LogError("friend reject name=null");
                }

                long localUid = AllianceUtil.GetLocalUid();
                if (rejectUid != localUid)
                {
                    FriendRejectTarget target = new FriendRejectTarget();
                    target.Uid = rejectUid;
                    target.Ts  = EB.Time.Now;
                    var existTarget = Instance.Info.RejectTargets.Find(m => m.Uid == target.Uid);
                    if (existTarget != null)
                    {
                        EB.Debug.Log("modify rejectTarget");
                        existTarget.Ts = EB.Time.Now;
                    }
                    else
                    {
                        Instance.Info.RejectTargets.Add(target);
                    }
                    MessageTemplateManager.ShowMessage(FriendManager.CodeRejectFriendInvite, rejectName, null);
                }
                return;
            }
        }
Пример #9
0
        public static InviteData Parse(Hashtable ht)
        {
            if (ht == null)
            {
                return(null);
            }

            InviteData invite = new InviteData();

            invite.Id = EB.Dot.String("_id", ht, invite.Id);
            string t = EB.Dot.String("t", ht, string.Empty);

            if (t == "inv")
            {
                invite.Type = eType.Invite;
            }
            else if (t == "req")
            {
                invite.Type = eType.Request;
            }
            ArrayList agreeUids = Hotfix_LT.EBCore.Dot.Array("a", ht, Johny.ArrayListPool.Claim());

            invite.AgreeUids = new long[agreeUids.Count];
            if (agreeUids.Count > 1)
            {
                EB.Debug.LogError("agreeUids.Count > 1");
            }
            for (int i = 0; i < agreeUids.Count; ++i)
            {
                invite.AgreeUids[i] = long.Parse(agreeUids[i].ToString());
            }

            invite.OpUid = EB.Dot.Long("op_uid", ht, 0);

            ArrayList receivers = Hotfix_LT.EBCore.Dot.Array("t_uids", ht, Johny.ArrayListPool.Claim());

            invite.ReceiverUids = new long[receivers.Count];
            for (int i = 0; i < receivers.Count; ++i)
            {
                invite.ReceiverUids[i] = long.Parse(receivers[i].ToString());
            }

            Hashtable infos = EB.Dot.Object("t_infos", ht, Johny.HashtablePool.Claim());

            invite.Infos         = infos;
            invite.ReceiverNames = new string[receivers.Count];
            for (int i = 0; i < receivers.Count; ++i)
            {
                string receiveName = EB.Dot.String(receivers[i] + ".name", infos, string.Empty);
                if (receiveName != string.Empty)
                {
                    invite.ReceiverNames[i] = receiveName;
                }
                else
                {
                    EB.Debug.LogError("receiveName==null uid={0}", receivers[i]);
                }
            }

            //ArrayList receivernames = Hotfix_LT.EBCore.Dot.Array("t_names", ht, Johny.ArrayListPool.Claim());
            //         invite.ReceiverNames = new string[receivernames.Count];
            //         for (int i = 0; i < receivernames.Count; ++i)
            //         {
            //             invite.ReceiverNames[i] = receivernames[i].ToString();
            //         }

            invite.SenderName    = EB.Dot.String("s_name", ht, invite.SenderName);
            invite.SenderUid     = EB.Dot.Long("s_uid", ht, invite.SenderUid);
            invite.SendTime      = EB.Dot.Double("ts", ht, invite.SendTime);
            invite.DeadLine      = EB.Dot.Double("e", ht, invite.DeadLine);
            invite.Catalog       = EB.Dot.String("c", ht, invite.Catalog);
            invite.OrgnizationId = Hotfix_LT.EBCore.Dot.Find <object>("o_id", ht);
            invite.Data          = EB.Dot.Object("d", ht, invite.Data);

            return(invite);
        }