// Use this for initialization void Start() { ChatCanvas.enabled = false; RealChannelName rn = new RealChannelName(); rn.userName = "******"; rn.channelName = GameChannels[0]; RealChannelsNames.Add(rn); RefreshChannelsList(); if (NetworkManager == null && GameObject.Find("NetworkManager") != null) { NetworkManager = GameObject.Find("NetworkManager").GetComponent <MyNetworkManager> (); } if (MessageNotifyComponent == null && GameObject.Find("MessageNotify-Canvas") != null) { MessageNotifyComponent = GameObject.Find("MessageNotify-Canvas").GetComponent <MessageNotify> (); } if (POPUPWindowComponent == null && GameObject.Find("POPUP-Canvas") != null) { POPUPWindowComponent = GameObject.Find("POPUP-Canvas").GetComponent <MainMenuPOPUP> (); } }
private void ShowChatMessages() { if (!WaitForSub && ChatCanvas.enabled) { Debug.Log("ShowChatMessages"); ChatChannel ch = null; ClearChatWindow(); if (ChannelsSwitchMenu.value == 0) { Debug.Log(" get cache in private channels "); ch = this.chatClient.PublicChannels [GlobalChannelName]; if (ch != null) { for (int i = 0; i < ch.MessageCount; i++) { string sender = ch.Senders [i]; string msg = (string)ch.Messages [i]; Debug.Log("Get message from cache - channel:" + GameChannels [ChannelsSwitchMenu.value] + ", sender:" + sender + ", msg:" + msg); PrintChatMessage(sender, msg); } } } else { RealChannelName rn = GetRealChannelByUser(GameChannels [ChannelsSwitchMenu.value]); if (rn != null) { foreach (string nextMessage in rn.chatHistory) { PrintChatMessage("chat_history", nextMessage); } UnreadedMessages -= rn.unreadMessages; rn.unreadMessages = 0; RefreshNotifyCounter(); } else { Debug.LogError("Cannot get history for private chat with: " + GameChannels [ChannelsSwitchMenu.value]); } } foreach (var key in this.chatClient.PrivateChannels.Keys) { Debug.Log(" key in private channels: " + key); } foreach (var key in this.chatClient.PublicChannels.Keys) { Debug.Log(" key in public channels: " + key); } } }
private RealChannelName GetRealChannelByUser(string name) { RealChannelName rv = null; foreach (RealChannelName RN in RealChannelsNames) { if (RN.userName.Equals(name)) { rv = RN; break; } } return(rv); }
public void StartPrivateChat(string user) { if (!GameChannels.Contains(user)) { GameChannels.Add(user); RealChannelName rn = new RealChannelName(); rn.userName = user; rn.channelName = "unknown"; RealChannelsNames.Add(rn); RefreshChannelsList(); } if (!ChatCanvas.enabled) { ChannelsSwitchMenu.value = GameChannels.IndexOf(user); ChannelsSwitchMenu.RefreshShownValue(); SwitchChannel(ChannelsSwitchMenu.value); } }
public void OnPrivateMessage(string sender, object message, string channelName) { Debug.Log("Receive private message[" + channelName + "]:" + sender + ": " + message); string msg = (string)message; if (msg.Contains("[_command]")) { if (!sender.Equals(localPlayerId)) { string command = ""; string param = ""; string[] msgs = msg.Split(new string[] { "[_command]" }, StringSplitOptions.RemoveEmptyEntries); if (msgs.Length >= 1) { command = msgs [0]; } if (msgs.Length >= 2) { param = msgs [1]; if (command.Equals("req_chall")) { //show notify and check that challanger is your friend challangerId = sender; if (LocalFriendListComponent.GetIDByName(param).Length == 0) { LocalFriendListComponent.AddFriendRequest(param); //CancelChallange (); } else { ShowChallangeNotify(param); } } if (command.Equals("accept_chall")) { if (param.Length > 0) { NetworkManager.JoinToFiendsLobby(param, challanger); } } if (command.Equals("reject_chall")) { LocalFriendListComponent.ChallageCancel(param); } } } } else { string senderName = ""; string targetName = ""; string[] msgs = msg.Split(new string[] { "[_nickname]", "[_target]" }, StringSplitOptions.RemoveEmptyEntries); if (msgs.Length >= 1) { senderName = msgs [1]; } if (msgs.Length >= 2) { targetName = msgs [2]; } RealChannelName rn = null; if (!senderName.Equals(PhotonNetwork.playerName)) { StartPrivateChat(senderName); rn = GetRealChannelByUser(senderName); if (GameChannels [ChannelsSwitchMenu.value].Equals(senderName)) { PrintChatMessage(sender, msg); } if (LocalFriendListComponent.GetIDByName(senderName).Length == 0) { LocalFriendListComponent.AddFriendRequest(senderName); } } else { rn = GetRealChannelByUser(targetName); if (GameChannels [ChannelsSwitchMenu.value].Equals(targetName)) { PrintChatMessage(sender, msg); } } if (!ChatCanvas.enabled) { UnreadedMessages++; rn.unreadMessages++; ChannelsSwitchMenu.value = GameChannels.IndexOf(senderName); RefreshNotifyCounter(); } if (rn != null) { rn.chatHistory.Add(msg); } } }