private void HandleSendChatFeedback(byte[] data) { SendChatS2C feedback = ProtobufUtils.Deserialize <SendChatS2C>(data); if (feedback.result) { if (currnetChatConsumptionType == ChatConsumptionType.ChatItem) { view.HideHornPanel(); } if (view.currentChatTag == ChatMainView.ChatTag.PrivateChat) { ChatDataStruct chatData = new ChatDataStruct(); ChatPlayerInfo chatPlayerInfo = new ChatPlayerInfo(); chatPlayerInfo.name = dataManager.GetPlayerNickName(); chatPlayerInfo.portrait = dataManager.GetPlayerHeadIcon(); chatPlayerInfo.level = dataManager.GetPlayerLevel(); chatPlayerInfo.playerId = currentChatId; chatData.chatPlayerInfo = chatPlayerInfo; chatData.message = currentChatContent; chatData.playerId = currentChatId; AddPrivateChatData(currentChatId, chatData); view.ResfresPrivateChatItemData(GetPrivateChatData(currentChatId)); } } }
private void HandleRelationApplicationFeedback(byte[] data) { RelationApplicationS2C feedback = ProtobufUtils.Deserialize <RelationApplicationS2C>(data); if (feedback.result) { switch (feedback.applciationType) { case RelationApplicationType.ApplyingRelation: MessageDispatcher.PostMessage(Constants.MessageType.OpenAlertWindow, null, UI.AlertType.ConfirmAlone, "好友申请已经发送,请耐心等待对方确认", "提示"); break; case RelationApplicationType.BlockList: for (int i = 0; i < worldChatDataList.Count; i++) { ChatDataStruct chatData = worldChatDataList [i]; if (chatData.chatPlayerInfo.playerId == feedback.friendId) { worldChatDataList.Remove(chatData); i--; } } MessageDispatcher.PostMessage(Constants.MessageType.OpenAlertWindow, null, UI.AlertType.ConfirmAlone, "已将该玩家拉入黑名单", "提示"); break; } } }
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 ShowBroadcastMessage(ChatDataStruct chatData) { broadcastPanel.gameObject.SetActive(true); playerLevelText.text = chatData.chatPlayerInfo.level.ToString(); playerNameText.text = chatData.chatPlayerInfo.name; messageText.text = chatData.message; GameResourceLoadManager.GetInstance().LoadAtlasSprite(chatData.chatPlayerInfo.portrait, delegate(string name, AtlasSprite atlasSprite, System.Object param) { if (atlasSprite != null) { playerIcon.SetSprite(atlasSprite); } }, true); isNotificate = true; }
public override void UpdateItemData(object dataObj) { base.UpdateItemData(dataObj); if (dataObj == null) { return; } this.data = ( ChatDataStruct )dataObj; messageText.text = data.message; itemButton.interactable = data.isLeft; if (data.isLeft) { right.gameObject.SetActive(false); left.gameObject.SetActive(true); messageText.transform.localPosition = leftMessagePos; messageText.alignment = TextAnchor.MiddleLeft; leftPlayerNameText.text = data.chatPlayerInfo.name; leftPlayerLevelText.text = data.chatPlayerInfo.level.ToString(); leftChatFrame.sizeDelta = new Vector2(messageText.preferredWidth + 40, leftChatFrame.rect.height); GameResourceLoadManager.GetInstance().LoadAtlasSprite(data.chatPlayerInfo.portrait, delegate(string name, AtlasSprite atlasSprite, System.Object param) { leftPlayerIcon.SetSprite(atlasSprite); }, true); } else { left.gameObject.SetActive(false); right.gameObject.SetActive(true); messageText.transform.localPosition = rightMessagePos; rightPlayerNameText.text = data.chatPlayerInfo.name; rightPlayerLevelText.text = data.chatPlayerInfo.level.ToString(); messageText.alignment = TextAnchor.MiddleRight; rightChatFrame.sizeDelta = new Vector2(messageText.preferredWidth + 40, rightChatFrame.rect.height); GameResourceLoadManager.GetInstance().LoadAtlasSprite(data.chatPlayerInfo.portrait, delegate(string name, AtlasSprite atlasSprite, System.Object param) { rightPlayerIcon.SetSprite(atlasSprite); }, true); } }
private void OpenPlayerInfoPanel(ChatDataStruct chatData) { ChildChange(playerInfoPanel.parent, playerInfoPanel.gameObject.name); InfoPanelPlayerNameText.text = chatData.chatPlayerInfo.name; InfoPanelPlayerLevelText.text = string.Format(levelStr, chatData.chatPlayerInfo.level.ToString()); InfoPanelPlayerDanText.text = "最强王者"; //string.Format( gradeStr, chatData.chatPlayerInfo.grade ); Waiting we have true data, use this functions. InfoPanelPlayerName = chatData.chatPlayerInfo.name; InfoPanelPlayerId = chatData.chatPlayerInfo.playerId; if (controller.IsFriendByPlayerId(InfoPanelPlayerId)) { addFriendButton.interactable = false; } else { addFriendButton.interactable = true; } }