public void AddPrivateChatData(long playerId, ChatDataStruct chatData)
 {
     if (privateChatDataDic.ContainsKey(playerId))
     {
         privateChatDataDic[playerId].Add(chatData);
     }
     else
     {
         privateChatDataDic.Add(playerId, new List <ChatDataStruct> ()
         {
             chatData
         });
     }
 }
        private void HandForwardChatFeedback(byte[] data)
        {
            ForwardChatS2C feedback = ProtobufUtils.Deserialize <ForwardChatS2C>(data);

            ChatPlayerInfo chatPlayerInfo = feedback.chatPlayerInfo;
            ChatDataStruct chatData       = new ChatDataStruct();

            chatData.chatPlayerInfo = chatPlayerInfo;
            chatData.message        = feedback.chatContent;
            chatData.playerId       = feedback.sendPlayerId;

            if (DataManager.GetInstance().GetPlayerId() != feedback.sendPlayerId)
            {
                chatData.isLeft = true;
            }
            else
            {
                chatData.isLeft = false;
            }

            if (feedback.chatConsumptionType == ChatConsumptionType.ChatItem)
            {
                MessageDispatcher.PostMessage(Constants.MessageType.RefreshHornNotificationData, chatData);
                return;
            }

            switch (feedback.chatType)
            {
            case ChatType.WorldChat:

                worldChatDataList.Add(chatData);

                break;

            case ChatType.FriendsChat:

                AddPrivateChatData(feedback.sendPlayerId, chatData);

                break;

            case ChatType.GuildChat:

                break;
            }

            MessageDispatcher.PostMessage(Constants.MessageType.RefreshPlayerChatData, feedback.chatType, feedback.sendPlayerId);
        }