コード例 #1
0
    // 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> ();
        }
    }
コード例 #2
0
 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);
         }
     }
 }
コード例 #3
0
    private RealChannelName GetRealChannelByUser(string name)
    {
        RealChannelName rv = null;

        foreach (RealChannelName RN in RealChannelsNames)
        {
            if (RN.userName.Equals(name))
            {
                rv = RN;
                break;
            }
        }
        return(rv);
    }
コード例 #4
0
 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);
     }
 }
コード例 #5
0
    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);
            }
        }
    }