public YingBehavior()
        {
            yclient.OnOpen += (sender, yevent) =>
            {
                Console.WriteLine("YingOpen");
            };

            yclient.OnMessage += (sender, yevent) =>
            {
                Console.WriteLine("颖: " + yevent.Data);

                YingStruct ymessage = JsonConvert.DeserializeObject <YingStruct>(yevent.Data);
                if (ymessage.Ying != "颖")
                {
                    return;
                }
                switch (ymessage.ytype)
                {
                case YingStruct.YingType.Ying:
                    /*yclient.SendAsync(JsonConvert.SerializeObject(new YingStruct()
                     * {
                     *  ytype = YingStruct.YingType.Ying,
                     *  ydata = new YingStruct.YingData()
                     *  {
                     *      ycode = 0,
                     *      ysender = "Ying Server",
                     *      ymessage = JsonConvert.SerializeObject(new iYingStruct()
                     *      {
                     *          yservername = "Ying Server Air Plus",
                     *          yipaddress = "127.0.0.1",
                     *          ymotd = "so tell me your story."
                     *      }),
                     *      ydata = null
                     *  }
                     * }), ycompleted);*/
                    break;

                case YingStruct.YingType.YUpdata:
                    /*this.SendAsync(JsonConvert.SerializeObject(new YingStruct()
                     * {
                     *   ytype = YingStruct.YingType.YUpdata,
                     *   ydata = new YingStruct.YingData()
                     *   {
                     *       ycode = 0,
                     *       ysender = "Ying Server",
                     *       ymessage = JsonConvert.SerializeObject(new YingUpdataStruct
                     *       {
                     *       }),
                     *       ydata = null
                     *   }
                     * }), ycompleted);*/
                    break;

                case YingStruct.YingType.YLogin:

                    YingLoginStruct ylogin = JsonConvert.DeserializeObject <YingLoginStruct>(ymessage.ydata.ymessage);
                    getYEvent().Publish <YingLoginEvent>(new YingLoginEvent {
                        isYSuccess = ylogin.yaccessToken != null,
                        ymessage   = ylogin.ymessage
                    });
                    getYEvent().Publish <YingPackageEvent>(new YingPackageEvent
                    {
                        isYSend = false,
                        yStruct = ymessage
                    });

                    break;

                case YingStruct.YingType.YCode:
                    getYEvent().Publish <YingPackageEvent>(new YingPackageEvent
                    {
                        isYSend = false,
                        yStruct = ymessage
                    });

                    break;

                case YingStruct.YingType.YRegister:
                    getYEvent().Publish <YingPackageEvent>(new YingPackageEvent
                    {
                        isYSend = false,
                        yStruct = ymessage
                    });

                    break;

                case YingStruct.YingType.YMessage:
                    //this.SendAsync(yevent.Data, ycompleted);
                    break;

                case YingStruct.YingType.YMusic:
                    //this.SendAsync(yevent.Data, ycompleted);
                    break;

                default:
                    break;
                }
            };

            yclient.OnClose += (sender, yevent) =>
            {
                Console.WriteLine("YingClose");
            };

            yclient.OnError += (sender, yevent) =>
            {
                Console.WriteLine("YingError");
            };

            getYEvent().Subscribe <YingPackageEvent>((yevent) => {
                if (!yevent.isYSend)
                {
                    return;
                }
                if (yclient.IsAlive)
                {
                    yclient.SendAsync(JsonConvert.SerializeObject(yevent.yStruct), this.ycompleted);
                }
            });

            ytimer.Tick += (ysender, yevent) =>
            {
                try
                {
                    if (!yclient.IsAlive)
                    {
                        yclient.ConnectAsync();
                    }
                }
                catch (Exception yexception)
                {
                    YingMessageBox.Ying($"Ying: {yexception.Message}", YingMessageBox.YingMessageType.yface_cry, 6040);
                }
            };
        }
Example #2
0
        private void YRegister(object ysender, RoutedEventArgs yevent)
        {
            ywaiter = new Task(() =>
                               { Thread.Sleep(60400);
                                 this.Dispatcher.Invoke(() =>
                {
                    YRegisterButton.IsEnabled = true;
                    YRegisterButton.Content   = "  〉";
                    YYLoading.Visibility      = Visibility.Collapsed;
                    YingMessageBox.Ying("Ying: 数据接收超时", YingMessageBox.YingMessageType.yface_cry, 6040);
                }); });
            switch (this.ystep)
            {
            case 0:
                getYEvent().Publish <YingPackageEvent>(new YingPackageEvent
                {
                    isYSend = true,
                    yStruct = new YingStruct
                    {
                        Ying  = "颖",
                        ytype = YingStruct.YingType.YCode,
                        ydata = new YingStruct.YingData
                        {
                            ycode    = 0,
                            ysender  = YYEamil.Text,
                            ymessage = JsonConvert.SerializeObject(new YingCodeStruct()
                            {
                                yemail = YYEamil.Text
                            }),
                            ydata = null
                        }
                    }
                });

                this.yyeamil = YYEamil.Text;

                YRegisterButton.IsEnabled = false;
                YRegisterButton.Content   = "";
                YYLoading.Visibility      = Visibility.Visible;
                ywaiter.Start();
                break;

            case 1:

                if (this.YYEamil.Text != this.yyeamil)
                {
                    this.ystep--;
                    this.YRegister(null, null);
                    return;
                }
                getYEvent().Publish <YingPackageEvent>(new YingPackageEvent
                {
                    isYSend = true,
                    yStruct = new YingStruct
                    {
                        Ying  = "颖",
                        ytype = YingStruct.YingType.YCode,
                        ydata = new YingStruct.YingData
                        {
                            ycode    = 0,
                            ysender  = YEamil.Text,
                            ymessage = JsonConvert.SerializeObject(new YingCodeStruct()
                            {
                                yemail = YYEamil.Text, ycode = Convert.ToInt32(YCode.Text)
                            }),
                            ydata = null
                        }
                    }
                });

                YRegisterButton.IsEnabled = false;
                YRegisterButton.Content   = "";
                YYLoading.Visibility      = Visibility.Visible;
                ywaiter.Start();
                break;

            case 2:
                if (this.YYPassword.Password == this.YYYPassword.Password)
                {
                    this.ystep = 3;
                    //this.ylabel.Text = "";
                    //this.yylabel.Text = "性别";
                    this.ystepf.Visibility = Visibility.Collapsed;
                    this.ysteps.Visibility = Visibility.Collapsed;
                    this.ystept.Visibility = Visibility.Visible;
                }
                else
                {
                    YingMessageBox.Ying("Ying: 两次密码不一样", YingMessageBox.YingMessageType.yface_cry, 6040);
                }
                break;

            case 3:
                //if(!this.YBoy.IsChecked && !this.YGirl.IsChecked) this.YBoy.clic
                YingSex ysex = YingSex.YBoy;
                if (this.YGirl.IsChecked == true)
                {
                    ysex = YingSex.YGirl;
                }
                getYEvent().Publish <YingPackageEvent>(new YingPackageEvent
                {
                    isYSend = true,
                    yStruct = new YingStruct
                    {
                        Ying  = "颖",
                        ytype = YingStruct.YingType.YRegister,
                        ydata = new YingStruct.YingData
                        {
                            ycode    = 0,
                            ysender  = YYEamil.Text,
                            ymessage = JsonConvert.SerializeObject(new YingRegisterStruct()
                            {
                                ycode = Convert.ToInt32(YCode.Text),
                                yuser = new zyy_users
                                {
                                    yemail    = this.yyeamil,
                                    yusername = this.YNickName.Text,
                                    ypassword = this.YYPassword.Password,
                                    ysex      = ysex
                                }
                            }),
                            ydata = null
                        }
                    }
                });

                this.yyeamil = YYEamil.Text;

                YRegisterButton.IsEnabled = false;
                YRegisterButton.Content   = "";
                YYLoading.Visibility      = Visibility.Visible;
                ywaiter.Start();

                break;

            default:
                break;
            }



            /*YingAuhenticator ylogin = new YingAuhenticator(, , null, );
             * AuthenticationInfo yinfo = ylogin.Do();
             * if (yinfo.Error == null)
             * {
             *  YingConfig.YArgs.YAccounts.Add(new YingAccount
             *  {
             *      ytype = YingAuthType.YMojang,
             *      yusername = YEamil.Text,
             *      ypassword = YPassword.Password,
             *      yaccessToken = yinfo.AccessToken.ToString("N"),
             *      yclientToken = yclientToken.ToString("N"),
             *      ydisplayName = yinfo.DisplayName,
             *      yuuid = yinfo.UUID.ToString()
             *  });
             * }
             * else
             * {
             *  YingMessageBox.Ying(yinfo.Error, null, 6040, (y) => { });
             *  //(YingApp.Current.MainWindow as YingWindow)._frame.Navigate(new MainPage());
             * }*/
        }
Example #3
0
        public YingLoginPage()
        {
            InitializeComponent();

            yyregister.MouseLeftButtonDown += (ysender, yevent) =>
            {
                ylogin.Visibility    = Visibility.Collapsed;
                yregister.Visibility = Visibility.Visible;
            };

            yylogin.MouseLeftButtonDown += (ysender, yevent) =>
            {
                ylogin.Visibility    = Visibility.Visible;
                yregister.Visibility = Visibility.Collapsed;
            };


            /*
             * YingConfig.YArgs.YAuthServers.Add(new YingAuthServer { ytype = YingAuthType.YAuthLib, yname = "Ying" });
             * YingConfig.YArgs.YAuthServers.Add(new YingAuthServer { ytype = YingAuthType.Ying, yname = "Ying Ying" });
             *
             * YingConfig.YArgs.YAuthServers.Add(new YingAuthServer { ytype = YingAuthType.YAuthLib, yname = "Ying Sakura City Ying", yurl = "https://skin.prinzeugen.net/api/yggdrasil" });
             * /*YingConfig.YArgs.YAuthServers.Add(new YingAuthServer { yname =  });
             * //YingConfig.YArgs.YAuthServers.CollectionChanged += (y, yy) => {
             *  YServerList.ItemsSource = YingConfig.YArgs.YAuthServers;
             * //};
             * YingConfig.YArgs.YAuthServers.Add(new YingAuthServer { });*/

            getYEvent().Subscribe <YingPackageEvent>((yevent) =>
            {
                if (!yevent.isYSend)
                {
                    switch (yevent.yStruct.ytype)
                    {
                    case YingStruct.YingType.YLogin:
                        getYAuhenticator().YResult = JsonConvert.DeserializeObject <YingLoginStruct>(yevent.yStruct.ydata.ymessage);

                        this.Dispatcher.Invoke(() =>
                        {
                            if (getYAuhenticator().YResult.yaccessToken == null)
                            {
                                YLoginButton.IsEnabled = true;
                                YLoginButton.Content   = "  〉";
                                YLoading.Visibility    = Visibility.Collapsed;
                                YingMessageBox.Ying($"Ying: {getYAuhenticator().YResult.ymessage}", YingMessageBox.YingMessageType.yface_cry, 6040);
                            }
                            else
                            {
                                YingConfig.YArgs.YAccount = getYAuhenticator().YResult;
                                YingMessageBox.Ying($"Ying: {getYAuhenticator().YResult.ymessage}", YingMessageBox.YingMessageType.yface_smile, 6040);
                                (YingApp.Current.MainWindow as YingWindow).yframe.Navigate(new YingMainPage());

                                /*return new AuthenticationInfo
                                 * {
                                 *  AccessToken = Guid.Parse(getYAuhenticator().YResult.yaccessToken),
                                 *  UserType = "Mojang",
                                 *  DisplayName = "Ying",
                                 *  Properties = "{}",
                                 *  UUID = Guid.Parse(getYAuhenticator().YResult.yopenid)
                                 * };*/
                            }
                        });
                        break;

                    case YingStruct.YingType.YCode:
                        //if (this.ywait.Status == TaskStatus.Running) this.ywait.Dispose();
                        YingCodeStruct ycode = JsonConvert.DeserializeObject <YingCodeStruct>(yevent.yStruct.ydata.ymessage);

                        this.Dispatcher.Invoke(() =>
                        {
                            YRegisterButton.IsEnabled = true;
                            YRegisterButton.Content   = "  〉";
                            YYLoading.Visibility      = Visibility.Collapsed;
                            if (!ycode.isYSuccess)
                            {
                                YingMessageBox.Ying($"Ying: {ycode.ymessage}", YingMessageBox.YingMessageType.yface_cry, 6040);
                            }
                            else
                            {
                                this.ystep++;
                                if (this.ystep == 2)
                                {
                                    this.ystepf.Visibility = Visibility.Collapsed;
                                    this.ysteps.Visibility = Visibility.Visible;
                                }
                                YingMessageBox.Ying($"Ying: {ycode.ymessage}", YingMessageBox.YingMessageType.yface_smile, 6040);
                            }
                        });
                        break;

                    case YingStruct.YingType.YRegister:
                        //if (this.ywait.Status == TaskStatus.Running) this.ywait.Dispose();
                        YingRegisterStruct yregister = JsonConvert.DeserializeObject <YingRegisterStruct>(yevent.yStruct.ydata.ymessage);

                        this.Dispatcher.Invoke(() =>
                        {
                            YRegisterButton.IsEnabled = true;
                            YRegisterButton.Content   = "  〉";
                            YYLoading.Visibility      = Visibility.Collapsed;
                            if (!yregister.isYSuccess)
                            {
                                YingMessageBox.Ying($"Ying: {yregister.ymessage}", YingMessageBox.YingMessageType.yface_cry, 6040);
                            }
                            else
                            {
                                YingConfig.YArgs.YAccount = new YingLoginStruct {
                                    yaccessToken = yregister.yaccessToken, yclientToken = yregister.yclientToken, yuser = yregister.yuser
                                };
                                YingMessageBox.Ying($"Ying: {yregister.ymessage}", YingMessageBox.YingMessageType.yface_smile, 6040);
                                (YingApp.Current.MainWindow as YingWindow).yframe.Navigate(new YingMainPage());
                            }
                        });


                        break;

                    default:
                        break;
                    }
                }
            });



            /*YAuthType.SelectionChanged += (y, yy) =>
             * {
             *  switch(YAuthType.SelectedIndex)
             *  {
             *      case (int)YingAuthType.YLegacy:
             *          YServerList.IsEnabled = false;
             *          YServerList.Items.Clear();
             *          YServerList.Items.Add(ydefault);
             *          YServerList.SelectedIndex = 0;
             *
             *          YPassword.IsEnabled = false;
             *          break;
             *
             *      case (int)YingAuthType.YMojang:
             *          YServerList.IsEnabled = false;
             *          YServerList.Items.Clear();
             *          YServerList.Items.Add(ydefault);
             *          YServerList.SelectedIndex = 0;
             *
             *          YPassword.IsEnabled = true;
             *          break;
             *
             *      case (int)YingAuthType.YAuthLib:
             *          YServerList.IsEnabled = true;
             *          YServerList.Items.Clear();
             *
             *          YingConfig.YArgs.YAuthServers.ForEach((yserver) => {
             *              if (yserver.ytype == YingAuthType.YAuthLib)
             *              {
             *                  YServerList.Items.Add(yserver);
             *              }
             *          });
             *          if (YServerList.Items.Count != 0) YServerList.SelectedIndex = 0;
             *
             *          YPassword.IsEnabled = true;
             *          break;
             *
             *      case (int)YingAuthType.Ying:
             *          YServerList.IsEnabled = true;
             *          YServerList.Items.Clear();
             *
             *          YingConfig.YArgs.YAuthServers.ForEach((yserver) => {
             *              if(yserver.ytype == YingAuthType.Ying)
             *              {
             *                  YServerList.Items.Add(yserver);
             *              }
             *          });
             *          if(YServerList.Items.Count != 0) YServerList.SelectedIndex = 0;
             *
             *
             *          YPassword.IsEnabled = true;
             *          break;
             *
             *      default:
             *          break;
             *  }
             * };*/
        }
Example #4
0
        private void YLogin(object ysender, RoutedEventArgs yevent)
        {
            Guid yclientToken = Guid.NewGuid();

            YLoginButton.IsEnabled = false;
            YLoginButton.Content   = "";
            YLoading.Visibility    = Visibility.Visible;

            getYEvent().Publish <YingPackageEvent>(new YingPackageEvent
            {
                isYSend = true,
                yStruct = new YingStruct()
                {
                    Ying  = "颖",
                    ytype = YingStruct.YingType.YLogin,
                    ydata = new YingStruct.YingData()
                    {
                        ycode    = 0,
                        ysender  = YEamil.Text,
                        ymessage = JsonConvert.SerializeObject(new YingLoginStruct
                        {
                            yaccessToken = null,
                            yclientToken = yclientToken.ToString("N"),
                            yuser        = new zyy_users {
                                yemail = YEamil.Text, ypassword = YPassword.Password
                            }
                        }),
                        ydata = null
                    }
                },
            });

            Task.Run(() =>
                     { Thread.Sleep(60400);
                       this.Dispatcher.Invoke(() =>
                {
                    YLoginButton.IsEnabled = true;
                    YLoginButton.Content   = "  〉";
                    YLoading.Visibility    = Visibility.Collapsed;
                    YingMessageBox.Ying("Ying: 登录超时", YingMessageBox.YingMessageType.yface_cry, 6040);
                }); });


            /*YingAuhenticator ylogin = new YingAuhenticator(, , null, );
             * AuthenticationInfo yinfo = ylogin.Do();
             * if (yinfo.Error == null)
             * {
             *  YingConfig.YArgs.YAccounts.Add(new YingAccount
             *  {
             *      ytype = YingAuthType.YMojang,
             *      yusername = YEamil.Text,
             *      ypassword = YPassword.Password,
             *      yaccessToken = yinfo.AccessToken.ToString("N"),
             *      yclientToken = yclientToken.ToString("N"),
             *      ydisplayName = yinfo.DisplayName,
             *      yuuid = yinfo.UUID.ToString()
             *  });
             * }
             * else
             * {
             *  YingMessageBox.Ying(yinfo.Error, null, 6040, (y) => { });
             *  //(YingApp.Current.MainWindow as YingWindow)._frame.Navigate(new MainPage());
             * }*/
        }