public bool Login() { ServerPacket serverPacket = packetStream.Recv <ServerPacket>(); if ((PacketType)serverPacket.type != PacketType.Login) { return(false); } ClientPacket pingPacket = new ClientPacket(PacketType.Ping); long old_time = DateTime.Now.Ticks; packetStream.Send(pingPacket); packetStream.Recv <ServerPacket>(); long new_time = DateTime.Now.Ticks; login_info = serverPacket.login; login_info.LoginTime = DateTime.Now.ToString("HH:mm:ss"); login_info.IP = tcpClient.Client.RemoteEndPoint.ToString(); //login_info.Addr = Util.GetAddr(login_info.IP); login_info.OSVersion = Util.GetOSVersionString(login_info.OSInfo); login_info.Camera = login_info.hasCamera == 0 ? "有" : "无"; login_info.Ping = (new_time - old_time) / 10000 + "ms"; login_info.handler = this; main.Dispatcher.BeginInvoke(new Action <ServerPacket.Login>(main.add_item), login_info); return(true); }
public void remove_item(ServerPacket.Login login_info) { if (login_info == null) { return; } Log(login_info.IP + "\t下线"); listView.Items.Remove(login_info); }
private void MenuItem_Click(object sender, RoutedEventArgs e) { if (listView.SelectedIndex == -1) { return; } ServerPacket.Login login = (ServerPacket.Login)listView.SelectedValue; Handler handler = (Handler)(login.handler); if (handler.tcpClient.Client.Connected == false) { Log(login.IP + "连接中断!"); listView.Items.Remove(login); return; } MenuItem menuItem = (MenuItem)e.OriginalSource; handler.OpenWindow(menuItem.Name); }
public void add_item(ServerPacket.Login login_info) { Log(login_info.IP + "\t上线"); listView.Items.Add(login_info); }
public bool Login() { ServerPacket serverPacket = packetStream.Recv<ServerPacket>(); if ((PacketType)serverPacket.type != PacketType.Login) return false; ClientPacket pingPacket = new ClientPacket(PacketType.Ping); long old_time = DateTime.Now.Ticks; packetStream.Send(pingPacket); packetStream.Recv<ServerPacket>(); long new_time = DateTime.Now.Ticks; login_info = serverPacket.login; login_info.LoginTime = DateTime.Now.ToString("HH:mm:ss"); login_info.IP = tcpClient.Client.RemoteEndPoint.ToString(); //login_info.Addr = Util.GetAddr(login_info.IP); login_info.OSVersion = Util.GetOSVersionString(login_info.OSInfo); login_info.Camera = login_info.hasCamera == 0 ? "有" : "无"; login_info.Ping = (new_time - old_time) / 10000 + "ms"; login_info.handler = this; main.Dispatcher.BeginInvoke(new Action<ServerPacket.Login>(main.add_item), login_info); return true; }
private async Task <bool> ResponceParse(short type, byte[] buffer) { switch (type) { case 4: { var field = new ServerPacket.Login(buffer); _player.AuthResult = field.status.ToString(); switch (field.status) { case AuthResultType.LOGIN_SUCCESS: _player.InnerId = field.inner_id; _player.Balance = field.balance; if (_packet != null) { var buf = _packet.ToPack(); await SendAsync(buf, _count); if (_packet is PacketClient.Roll) { } else { _packet = null; _count = 1; var core2 = new Core(); core2._noHistory = true; _player = await core2.Go(_player); core2._noHistory = false; } } break; case AuthResultType.LOGIN_EXIST: await SendAsync(_player.Url.ToAuth().ToPack()); break; default: return(true); } break; } case 5: { var field = new ServerPacket.Info(buffer); _player.Name = field.name; _player.Photo = field.avatar; _player.Profile = field.profile; if (_packet == null) { return(true); } break; } case 7: { var field = new ServerPacket.Balance(buffer); _player.Balance = field.balance; break; } case 17: { var field = new ServerPacket.Bonus(buffer); _player.IsBonus = field.can_collect != 0x00 ? true : false; _player.Bonus = 0; if (_player.IsBonus) { var pack = new PacketClient .BonusDaily() .ToPack(); await SendAsync(pack); _player.Bonus = field.bonus; _player.Balance += _player.Bonus; } break; } case 13: { //Reading packet GAME_REWARDS:13 with id 104 and length 1 data: 1226,1,{"id":1226,"content":{"hearts":9},"captions":{"en":"Great shot! Your reward","ru":"Отличный выстрел! Твоя награда"},"max_count":10000,"type":"roulette"} var field = new ServerPacket.Reward(buffer); var pack2 = new PacketClient.Reward(field.id); await SendAsync(pack2.ToPack()); // Console.WriteLine($"Roll {field.json}"); //Console.WriteLine("Get reward"); //Console.WriteLine(BitConverter.ToString(pack2.ToPack())); _packet = null; _count = 1; var core2 = new Core(); core2._noHistory = true; _player = await core2.Go(_player); core2._noHistory = false; return(true); } case 264: { //"I[BBBIIS]", // BANS(264); target_id:I, [type:B, reason:B, repeated:B, moderator_id:I, duration:I, link:S] _player.AuthResult = AuthResultType.BAN.ToString(); return(true); } default: break; } return(false); }