public void SignIn(SessionManager.ConnectToChannelDelegate callback, Session.ConnectToChannelDelegate handler)
        {
            string appleGameCenterKey = NMGPlayerPrefs.GetChannelKey(NMGChannel.GameCenter);

            if (!string.IsNullOrEmpty(appleGameCenterKey))
            {
                Result result = new Result(Result.NETMARBLES_DOMAIN, Result.SUCCESS, "Success");
                callback(result, NMGChannel.GameCenter, appleGameCenterKey, handler);
            }
            else
            {
                ChannelLoginController.Show(NMGChannel.GameCenter, appleGameCenterUserList, callback, handler);
            }
        }
Пример #2
0
        private void OnChannelOptionSignIn(Result result, Session.SignInDelegate handler)
        {
            if (connectToChannelHandler != null)
            {
                connectToChannelHandler(result, null);
            }
            else if (selectChannelConnectOptionHandler != null)
            {
                selectChannelConnectOptionHandler(result);
            }

            connectToChannelHandler           = null;
            selectChannelConnectOptionHandler = null;
        }
Пример #3
0
        public void ConnectToChannel(int channel, Session.ConnectToChannelDelegate handler)
        {
            if (String.IsNullOrEmpty(gameToken))
            {
                Result result = new Result(Result.NETMARBLES_DOMAIN, Result.NOT_AUTHENTICATED, "Not signed");
                if (handler != null)
                {
                    handler(result, null);
                }
            }
            else
            {
                switch ((NMGChannel)channel)
                {
                case NMGChannel.EveryNetmarble:
                    EveryNetmarbleManager.Instance.SignIn(OnConnectToChannel, handler);
                    break;

                case NMGChannel.Facebook:
                    FacebookManager.Instance.SignIn(OnConnectToChannel, handler);
                    break;

                case NMGChannel.Kakao:
                    KakaoManager.Instance.SignIn(OnConnectToChannel, handler);
                    break;

                case NMGChannel.Google:
                    GoogleManager.Instance.SignIn(OnConnectToChannel, handler);
                    break;

                case NMGChannel.GameCenter:
                    GameCenterManager.Instance.SignIn(OnConnectToChannel, handler);
                    break;

                case NMGChannel.Twitter:
                    TwitterManager.Instance.SignIn(OnConnectToChannel, handler);
                    break;
                    //case NMGChannel.Naver:
                    //    NMPlayModeNaverManager.Instance.SignIn(OnConnectToChannel, handler);
                    //    break;
                }
            }
        }
Пример #4
0
        public int SetConnectToChannelCallback(Session.ConnectToChannelDelegate callback)
        {
            if (null == callback)
            {
                return(0);
            }

            int handlerNum = CallbackManager.AddHandler(delegate(CallbackMessage message)
            {
                Log.Debug("[SessionCallback] ConnectToChannelCallback: " + message.ToString());

                Result result = message.GetResult();

                List <ChannelConnectOption> channelConnectOptionList = null;
                IList optionList = message.GetList("channelConnectOptionList");
                if (null != optionList)
                {
                    channelConnectOptionList = new List <ChannelConnectOption>();
                    foreach (IDictionary option in optionList)
                    {
                        int type         = option.GetInt("type");
                        string playerId  = option.GetString("playerId");
                        int channelCode  = option.GetInt("channelCode");
                        string channelId = option.GetString("channelId");
                        string region    = option.GetString("region");

                        ChannelConnectOption channelConnectOption = new ChannelConnectOption((ChannelConnectOptionType)type, playerId, channelCode, channelId, region);
                        channelConnectOptionList.Add(channelConnectOption);
                    }
                }

                if (null != callback)
                {
                    callback(result, channelConnectOptionList);
                }
            });

            return(handlerNum);
        }
Пример #5
0
        public void ConnectToChannel(int channelCode, Session.ConnectToChannelDelegate callback)
        {
            int handlerNum = sessionCallback.SetConnectToChannelCallback(callback);

            nmg_session_connectToChannel(channelCode, handlerNum);
        }
Пример #6
0
 public void ConnectToChannel(int channelCode, Session.ConnectToChannelDelegate callback)
 {
     SessionManager.Instance.ConnectToChannel(channelCode, callback);
 }
Пример #7
0
 private void SelectOptionInConnectToChannel(ChannelConnectOption option, Session.ConnectToChannelDelegate handler)
 {
     connectToChannelHandler = handler;
     SelectChannelConnectOption(option, null);
 }
Пример #8
0
        void OnConnectToChannel(Result result, NMGChannel channel, string channelKey, Session.ConnectToChannelDelegate handler)
        {
            if (result.IsSuccess())
            {
                ChannelConnectionData savedData = testData.GetChannelConnectionData(playerId);
                string channelKeyAtPlayerID     = savedData.GetChannelKeyByChannel(channel);

                ChannelConnectionData savedChannelData = testData.GetChannelConnectionData(channel, channelKey);

                if (string.IsNullOrEmpty(channelKeyAtPlayerID))
                {
                    if (savedChannelData == null)
                    {
                        // ok 연결
                        savedData.SetChannelKeyByChannel(channel, channelKey);
                        NMGPlayerPrefs.SetChannelKey(channel, channelKey);

                        Result channelResult = new Result(Result.NETMARBLES_DOMAIN, Result.SUCCESS, "Success");
                        Log.Debug("[NMGPlayMode.SessionManager] ConnectToChannel OK (" + channelResult + ")");

                        if (handler != null)
                        {
                            handler(channelResult, null);
                        }
                    }
                    else
                    {
                        // 다른pid에 연결 되어있음
                        if (channel == NMGChannel.Kakao)
                        {
                            SelectOptionInConnectToChannel(new ChannelConnectOption(ChannelConnectOptionType.LoadChannelConnection, savedChannelData.PlayerId, (int)channel, channelKey, savedChannelData.GameRegion), handler);
                            return;
                        }

                        List <ChannelConnectOption> channelConnectOptionList = new List <ChannelConnectOption>();
                        if (channel != NMGChannel.GameCenter)
                        {
                            channelConnectOptionList.Add(new ChannelConnectOption(ChannelConnectOptionType.Cancel, savedData.PlayerId, (int)channel, null, savedData.GameRegion));
                        }
                        //channelConnectOptionList.Add(new ChannelConnectOption(ChannelConnectOptionType.UpdateChannelConnection, savedData.PlayerId, channel, channelKey, savedData.GameRegion));
                        channelConnectOptionList.Add(new ChannelConnectOption(ChannelConnectOptionType.LoadChannelConnection, savedChannelData.PlayerId, (int)channel, channelKey, savedChannelData.GameRegion));

                        Result channelResult = new Result(Result.NETMARBLES_DOMAIN, Result.CONNECT_CHANNEL_OPTION_USED_CHANNELID, "Please select channel connect option.");
                        Log.Debug("[NMGPlayMode.SessionManager] ConnectToChannel Fail(" + channelResult + ")");

                        if (handler != null)
                        {
                            handler(channelResult, channelConnectOptionList);
                        }
                    }
                }
                else
                {
                    if (savedChannelData == null)
                    {
                        if (channelKeyAtPlayerID.Equals(channelKey))
                        {
                            // 나올 수 없음
                        }
                        else
                        {
                            // 채널 변경하려고 함
                            if (channel == NMGChannel.Kakao)
                            {
                                SelectOptionInConnectToChannel(new ChannelConnectOption(ChannelConnectOptionType.CreateChannelConnection, null, (int)channel, channelKey, NMGPlayerPrefs.GetRegion()), handler);
                                return;
                            }

                            List <ChannelConnectOption> channelConnectOptionList = new List <ChannelConnectOption>();
                            if (channel != NMGChannel.GameCenter)
                            {
                                channelConnectOptionList.Add(new ChannelConnectOption(ChannelConnectOptionType.Cancel, savedData.PlayerId, (int)channel, channelKeyAtPlayerID, savedData.GameRegion));
                            }
                            channelConnectOptionList.Add(new ChannelConnectOption(ChannelConnectOptionType.CreateChannelConnection, null, (int)channel, channelKey, NMGPlayerPrefs.GetRegion()));

                            Result channelResult = new Result(Result.NETMARBLES_DOMAIN, Result.CONNECT_CHANNEL_OPTION_NEW_CHANNELID, "Please select channel connect option.");
                            Log.Debug("[NMGPlayMode.SessionManager] ConnectToChannel Fail(" + channelResult + ")");

                            if (handler != null)
                            {
                                handler(channelResult, channelConnectOptionList);
                            }
                        }
                    }
                    else
                    {
                        if (channelKeyAtPlayerID.Equals(channelKey))
                        {
                            // 같은 거 ok
                            NMGPlayerPrefs.SetChannelKey(channel, channelKey);

                            Result channelResult = new Result(Result.NETMARBLES_DOMAIN, Result.SUCCESS, "Success");
                            Log.Debug("[NMGPlayMode.SessionManager] ConnectToChannel OK (" + channelResult + ")");

                            if (handler != null)
                            {
                                handler(channelResult, null);
                            }
                        }
                        else
                        {
                            //bothChannelIDsMappedPlayerIDs 각각 연결되어있음
                            if (channel == NMGChannel.Kakao)
                            {
                                SelectOptionInConnectToChannel(new ChannelConnectOption(ChannelConnectOptionType.LoadChannelConnection, savedChannelData.PlayerId, (int)channel, channelKey, savedChannelData.GameRegion), handler);
                                return;
                            }

                            List <ChannelConnectOption> channelConnectOptionList = new List <ChannelConnectOption>();
                            if (channel != NMGChannel.GameCenter)
                            {
                                channelConnectOptionList.Add(new ChannelConnectOption(ChannelConnectOptionType.Cancel, savedData.PlayerId, (int)channel, channelKeyAtPlayerID, savedData.GameRegion));
                            }
                            channelConnectOptionList.Add(new ChannelConnectOption(ChannelConnectOptionType.LoadChannelConnection, savedChannelData.PlayerId, (int)channel, channelKey, savedChannelData.GameRegion));

                            Result channelResult = new Result(Result.NETMARBLES_DOMAIN, Result.CONNECT_CHANNEL_OPTION_USED_CHANNELID, "Please select channel connect option.");
                            Log.Debug("[NMGPlayMode.SessionManager] ConnectToChannel Fail(" + channelResult + ")");

                            if (handler != null)
                            {
                                handler(channelResult, channelConnectOptionList);
                            }
                        }
                    }
                }
            }
            else
            {
                if (handler != null)
                {
                    handler(result, null);
                }
            }
        }
 public void ConnectToChannel(int channelCode, Session.ConnectToChannelDelegate callback)
 {
 }
Пример #10
0
        public void ConnectToChannel(int channelCode, Session.ConnectToChannelDelegate callback)
        {
            int handlerNum = sessionCallback.SetConnectToChannelCallback(callback);

            sessionAndroidClass.CallStatic("nmg_session_connectToChannel", channelCode, handlerNum);
        }
        public static void Show(NMGChannel channel, List <TestUserData> userList, SessionManager.ConnectToChannelDelegate callback, Session.ConnectToChannelDelegate handler)
        {
            Close();
            loginPanel = (GameObject)Instantiate(Resources.Load("NMGPlayModeChannelLoginPanel"));
            //loginPanel = (GameObject)Instantiate(EditorGUIUtility.Load("NMPlayModeChannelLoginPanel.prefab"));

            ChannelLoginController controller = loginPanel.transform.FindChild("LoginPanel").gameObject.GetComponent <ChannelLoginController>();

            controller.callback = callback;
            controller.userList = userList;
            controller.channel  = channel;
            controller.handler  = handler;
            controller.SetChannel();
        }