public void OnLoginResponse(LoginResponsePacket packet) { UnityClient.Player.SessionId = packet.SessionId; UnityClient.Player.UID = packet.UserId; Debug.Log("Logged in userid " + packet.UserId); LoginScreen.Kill(); }
private void MsgLoginResponse(LoginResponsePacket packet) { if (packet.Response == CommLoginReason.Success) { Logger.WriteLog(LogType.Network, "Successfully authenticated with the Auth server!"); return; } AuthCommunicator?.Close(); AuthCommunicator = null; Logger.WriteLog(LogType.Error, "Could not authenticate with the Auth server! Shutting down internal communication!"); }
void ServerConnection_OnPacket(LoginResponsePacket packet) { LoginResponse resp = ((LoginResponsePacket)packet).LoginResponse; InvokeOnMessage("Admin Login {1}: {0}", resp, resp == LoginResponse.OK ? "Success" : "Failed"); if (resp != LoginResponse.OK) { UOClient.Disconnect(); } else { RunGetServerInfo(); } }
private void handleLoginResponse(LoginResponsePacket packet) { if (packet.success) { Console.WriteLine("You are now logged in!"); // User succeed to login UIManager.Instance.loginForm.Close(); ChatManager.Instance.Launch(packet.token, packet.rank, packet.username); Client.Instance.registerToken(packet.token); } else { UIManager.Instance.loginForm.ErrorLogin(packet.message); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="packet"></param> private void OnLoginPacket(object sender, LoginPacketArgs loginPacketArgs) { var packet = loginPacketArgs.Packet; var username = Encoding.UTF8.GetString(packet.Username); var password = Encoding.UTF8.GetString(packet.Password); if (IsValidLogin(username, password)) { // Send a LoginResponse packet to the client, broadcast a NewPlayer packet to the server var response = new LoginResponsePacket { MsgType = (byte)Packets.LoginResponsePacket, LoginResponseCode = (byte)LoginResponseCode.Success }; NetworkServer.SendResponsePacket(loginPacketArgs.NetEvent.Peer, response); } }
internal object HandleRequestPacket(ServerConnectorContext serverConnectorContext, int module, int command, LoginRequestPacket packet) { string errMsg = Program.ChatServerModel.Login(packet.Username, serverConnectorContext); bool retcode = errMsg == null; if (retcode == true) { Program.ChatServerModel.JoinGroup("Lobby", serverConnectorContext.Id.ToString()); } var resPacket = new LoginResponsePacket() { RetCode = retcode, Message = retcode ? "Login OK" : errMsg }; return(resPacket); }
private void Authenticate(ErrorsType type, LoginRequestDataPacket request) { if (type == ErrorsType.NoError) { Id = request.Identifier; LoginResponsePacket packet = new LoginResponsePacket(); SendPacket(packet); LogFactory.GetLog(server.Name).LogInfo($"[SESSION] [AUTHENTICATE STATUS: {type.ToString()}]."); } else { LoginErrorResponsePacket packet = new LoginErrorResponsePacket { Identifier = 0, Error = type }; SendPacket(packet); LogFactory.GetLog(server.Name).LogInfo($"[SESSION] [AUTHENTICATE STATUS: {type.ToString()}]."); } }
private void handleLoginResponsePacket(LoginResponsePacket loginResponsePacket) { if (loginResponsePacket.status == Enums.ResponseStatus.OK && loginResponsePacket.pid > 0) { Debug.LogWarning("Succeed to login LangQuat server"); // make a referrence to the CubeiaClient GameApplication.cubeia = this; GameApplication.user = new User(); GameApplication.user.id = loginResponsePacket.pid; // TODO: for test sendSelectGame(); // go to the next scene // Application.LoadLevel("LobbyScene"); } }
private void handleLogin(LoginPacket p, Client client) { LoginResponsePacket packet = new LoginResponsePacket(); try { // Log in with username password packet.token = UserManager.Instance.tryConnectUser(p.username, p.password, client); try { packet.rank = UserManager.Instance.getUserRank(packet.token); packet.message = ""; packet.username = p.username; packet.success = true; } catch (Exception e) { packet.success = false; packet.message = e.Message; packet.rank = -1; } } catch (Exception e) { if (e is WrongCredentialsException) { e = (WrongCredentialsException)e; } else if (e is TokenExistingException) { e = (TokenExistingException)e; } Console.WriteLine("[Auth] Failed to connect client : " + p.username); Console.WriteLine("[ERROR] " + e.Message); packet.success = false; packet.message = e.Message; packet.token = ""; } client.SendPacket(packet); }
private void btnLogin_Click(object sender, EventArgs e) { if (this.txtPassword.Text.Length == 0 || this.txtUsername.Text.Length == 0) { MessageBox.Show("Neither the username nor password field may be blank.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Client.getClient().connect(); Packet p = new LoginPacket(txtUsername.Text, txtPassword.Text); Client.getClient().getConnection().send(p); while (!Client.getClient().getRequestManager().hasResponse()) ; LoginResponsePacket r = (LoginResponsePacket)Client.getClient().getRequestManager().getResponse(); if(r.getResponse().Equals(LoginResponsePacket.LoginResponse.SUCCESS)){ this.Hide(); Client.getClient().setUser(txtUsername.Text); Client.getClient().setUserId(r.getUserId()); new frmSearch().ShowDialog(); }else{ MessageBox.Show("Invalid username or password.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); } }
async Task HandleRakNetPacket(RakNetPacket rakPacket, IPEndPoint endpoint) { if (!Clients.ContainsKey(endpoint)) { return; } var Client = Clients[endpoint]; Client.LastUpdate = DateTime.Now; if (!rakPacket.IsACKorNAK) { Client.Sequence = rakPacket.SequenceNumber; } foreach (var enclosing in rakPacket.Enclosing) { switch (enclosing.MessageID) { case RakPacketType.ConnectedPong: { Console.WriteLine("[<=] PONG!"); break; } case RakPacketType.ConnectedPing: { await Send(Client, ConnectedPongPacket.FromPing(enclosing.Get <ConnectedPingPacket>(), StartTime)); break; } case RakPacketType.ConnectionRequest: { var request = enclosing.Get <ConnectionRequestPacket>(); Client.Player = new Player(); Client.Player.CID = request.ClientGuid; await Send(Client, ConnectionRequestAcceptedPacket.FromRequest(request, endpoint)); break; } case RakPacketType.LoginRequest: { var request = enclosing.Get <LoginRequestPacket>(); var status = request.StatusFor(14); Client.Player.Username = request.Username; if (Client.Player.Username == "server" || // Don't impersonate the server. World.GetPlayerByName(request.Username) != null) // Don't log in if there's a player already in game. { await Send(Client, LoginResponsePacket.FromRequest(request, Status.ClientOutdated)); break; } // StartGame is when the Client gets it's own EntityID. Client.Player.EID = World.LastEID++; //TODO(atipls): More checks, check if a the player name is already logged in. await Send(Client, LoginResponsePacket.FromRequest(request, status), status == Status.VersionsMatch?new StartGamePacket(request.ReliableNum.IntValue, Client.Player.EID) : null ); await World.AddPlayer(Client); Console.WriteLine("Players:"); foreach (var player in World.Players) { Console.WriteLine($"{{ EID: {player.Player.EID} CID: {player.Player.CID} Name: {player.Player.Username} }}"); } break; } case RakPacketType.Ready: { // Notify the new client about existing players. foreach (var P in World.Players) { if (P == Client) { continue; } await Send(Client, new AddPlayerPacket(P.Player)); } break; } case RakPacketType.NewIncomingConnection: { Console.WriteLine($"[ +] {endpoint}"); break; } case RakPacketType.Message: { await SendToEveryone(enclosing.Get <MessagePacket>()); break; } case RakPacketType.MovePlayer: { var packet = enclosing.Get <MovePlayerPacket>(); Console.WriteLine($"MovePlayer: {{ ID: {packet.ID} (== {Client.Player.EID} OR == {Client.Player.CID}) }}"); await World.MovePlayer(Client, packet.Position, packet.Pitch, packet.Yaw); break; } case RakPacketType.PlayerDisconnect: { // Let the client updater thread disconnect the player. Client.ForceInvalidate = true; break; } default: Console.WriteLine($"Unhandled RakPacket: {enclosing.MessageID}"); break; } } if (!rakPacket.IsACKorNAK) { var ackPacket = rakPacket.CreateACK(); var ackData = ackPacket.Serialize(); await UdpServer.SendAsync(ackData, ackData.Length, endpoint); } }
private void run() { this.thread = Thread.CurrentThread; while (this.running) { foreach (Connection c in Server.getSingleton().getConnectionManager().getConnections().Values) { if (c.isClosed()) { Server.getSingleton().getConnectionManager().getConnections().Remove(c.getAddress()); } else { try { if (c.dataRemaining()) { Packet p = c.readData(); Packet response = null; if (p.getType().Equals(PacketType.LOGIN)) { LoginPacket packet = new LoginPacket(p); //MySqlDataReader r = Server.getSingleton().getDbManager().executeReader("select `id` from `users` where `user`=\"" + packet.getUser() + "\" and `pass`=\"" + packet.getPasswordHash() + "\""); MySqlDataReader r = Server.getSingleton().getDbManager().prepareCommand("select `id` from `users` where `user`=?User and `pass`=?Password;", KVFactory.obj("?User", packet.getUser()), KVFactory.obj("?Password", packet.getPasswordHash())).ExecuteReader(); if (r.Read()) { response = new LoginResponsePacket(LoginResponsePacket.LoginResponse.SUCCESS, r.GetInt32("id").ToString()); } else { response = new LoginResponsePacket(LoginResponsePacket.LoginResponse.FAILURE); } r.Close(); } else if (p.getType().Equals(PacketType.FETCH_DATA)) { FetchPacket packet = new FetchPacket(p); //MySqlDataReader reader = Server.getSingleton().getDbManager().executeReader("select * from `players` where `serverId`=(select `serverId` from `servers` where `serverName`=\"" + packet.getServer() + "\") and `playerName` like \"" + packet.getName() + "\";"); MySqlDataReader reader = Server.getSingleton().getDbManager().prepareCommand("select * from `players` where `serverId`=(select `serverId` from `servers` where `serverName`=?Server) and `playerName` like ?Name;", KVFactory.obj("?Server", packet.getServer()), KVFactory.obj("?Name", packet.getName())).ExecuteReader(); if (reader.Read()) { response = new DataResponsePacket(reader.GetString("playerName"), packet.getServer(), reader.GetString("notes"), reader.GetString("violations"), UserViolationLevel.getViolationLevelFromByte(reader.GetByte("violationLevel")), reader.GetInt32("id").ToString(), reader.GetInt32("serverId").ToString()); } else { reader.Close(); //MySqlDataReader r = Server.getSingleton().getDbManager().executeReader("select `serverId` from `servers` where `serverName`=\"" + packet.getServer() + "\""); MySqlDataReader r = Server.getSingleton().getDbManager().prepareCommand("select `serverId` from `servers` where `serverName`=", KVFactory.obj("?Server", packet.getServer())).ExecuteReader(); r.Read(); int serverId = r.GetInt32("serverId"); r.Close(); //Server.getSingleton().getDbManager().executeNonQuery("insert into `players` (`serverId`, `playerName`, `notes`, `violations`, `violationLevel`) values(" + serverId + ", \"" + packet.getName() + "\", \"\", \"\", " + UserViolationLevel.GOOD.getByteIdentity() + ")"); Server.getSingleton().getDbManager().prepareCommand("insert into `players` (`serverId`, `playerName`, `notes`, `violations`, `violationLevel`) values(?ServerId, ?Name, ?Notes, ?Violations, ?ViolationLevel);", KVFactory.obj("?ServerId", serverId), KVFactory.obj("?Name", packet.getName()), KVFactory.obj("?Notes", ""), KVFactory.obj("?Violations", ""), KVFactory.obj("?ViolationLevel", UserViolationLevel.GOOD.getByteIdentity())).ExecuteNonQuery(); //MySqlDataReader z = Server.getSingleton().getDbManager().executeReader("select `id`,`serverId` from `players` where `serverId`=" + serverId + " and `playerName`=\"" + packet.getName() + "\""); MySqlDataReader z = Server.getSingleton().getDbManager().prepareCommand("select `id`,`serverId` from `players` where `serverId`=" + serverId + " and `playerName`=\"" + packet.getName() + "\"").ExecuteReader(); z.Read(); response = new DataResponsePacket(packet.getName(), packet.getServer(), "", "", UserViolationLevel.GOOD, z.GetInt32("id").ToString(), z.GetInt32("serverId").ToString()); z.Close(); } reader.Close(); } else if (p.getType().Equals(PacketType.LIST_REQUEST)) { List <string> servers = new List <string>(); MySqlDataReader reader = Server.getSingleton().getDbManager().executeReader("select * from `servers`"); while (reader.Read()) { servers.Add(reader.GetString("serverName")); } response = new ServerListResponsePacket(servers); reader.Close(); } else if (p.getType().Equals(PacketType.REGISTRATION)) { RegistrationPacket packet = new RegistrationPacket(p); //MySqlDataReader reader = Server.getSingleton().getDbManager().executeReader("select `serverAccess` from `registrationKeys` where `key`=\"" + packet.getRegistrationKey() + "\""); MySqlDataReader reader = Server.getSingleton().getDbManager().prepareCommand("select `serverAccess` from `registrationKeys` where `key`=?Key", KVFactory.obj("?Key", packet.getRegistrationKey())).ExecuteReader(); if (reader.Read()) { //Server.getSingleton().getDbManager().executeScalar("insert into `users` (`firstName`, `lastName`, `user`, `pass`, `serverAccess`) values(\"" + packet.getFirstName() + "\", \"" + packet.getLastName() + "\", \"" + packet.getUsername() + "\", \"" + packet.getPasswordHash() + "\", \"" + reader.GetString("serverAccess") + "\");"); Server.getSingleton().getDbManager().prepareCommand("insert into `users` (`firstName`, `lastName`, `user`, `pass`, `serverAccess`) values(?FirstName, ?LastName, ?Username, ?Password, ?AccessString);", new KeyValuePair <string, object>("?", packet.getFirstName()), new KeyValuePair <string, object>("?", packet.getLastName()), new KeyValuePair <string, object>("?", packet.getPasswordHash()), new KeyValuePair <string, object>("?", reader.GetString("serverAccess"))).ExecuteScalar(); } } else if (p.getType().Equals(PacketType.DATA_UPDATE)) { DataUpdatePacket packet = new DataUpdatePacket(p); //Server.getSingleton().getDbManager().executeNonQuery("update `players` set `playerName`=\"" + packet.getPlayer() + "\", `notes`=\"" + packet.getNotes() + "\", `violations`=\"" + packet.getViolations() + "\", `violationLevel`=" + packet.getViolationLevel().getByteIdentity() + " where `id`=" + packet.getID() + ";"); Server.getSingleton().getDbManager().prepareCommand("update `players` set `playerName`=?Player, `notes`=?Notes, `violations`=?Violations, `violationLevel`=?ViolationLevel where `id`=?Id;", KVFactory.obj("?Player", packet.getPlayer()), KVFactory.obj("?Notes", packet.getNotes()), KVFactory.obj("?Violations", packet.getViolations()), KVFactory.obj("?ViolationLevel", packet.getViolationLevel().getByteIdentity()), KVFactory.obj("?Id", packet.getID())).ExecuteNonQuery(); } else if (p.getType().Equals(PacketType.ATTACHMENT_LIST_REQ)) { AttachmentListRequestPacket packet = new AttachmentListRequestPacket(p); List <Attachment> attachments = new List <Attachment>(); MySqlDataReader r = Server.getSingleton().getDbManager().prepareCommand("select `screenshotId`,`uploadDate`,`uploadingUserId` from `screenshots` where `playerId`=?PlayerId and `serverId`=?ServerId", KVFactory.obj("?PlayerId", packet.getPlayerId()), KVFactory.obj("?ServerId", packet.getServerId())).ExecuteReader(); while (r.Read()) { attachments.Add(new Attachment(r.GetDateTime("uploadDate"), r.GetInt32("screenshotId").ToString(), r.GetInt32("uploadingUserId").ToString())); } response = new AttachmentListResponsePacket(attachments); r.Close(); } else if (p.getType().Equals(PacketType.UPLOAD_ATTACHMENT)) { UploadAttachmentPacket packet = new UploadAttachmentPacket(p); MySqlCommand cmd = Server.getSingleton().getDbManager().prepareCommand("insert into `screenshots` (`playerId`, `serverId`, `data`, `uploadDate`, `uploadingUserId`, `dataLength`) values(?playerId, ?serverId, ?attachmentData, ?dateTime, ?userId)", KVFactory.obj("?PlayerId", packet.getPlayerId()), KVFactory.obj("?ServerId", packet.getServerId()), KVFactory.obj("?AttachmentData", packet.getAttachmentData()), KVFactory.obj("?dateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), KVFactory.obj("?userId", packet.getUserId())); cmd.ExecuteNonQuery(); } else if (p.getType().Equals(PacketType.ATTACHMENT_REQUEST)) { AttachmentRequestPacket packet = new AttachmentRequestPacket(p); MySqlDataReader r = Server.getSingleton().getDbManager().executeReader("select `data`,`dataLength` from `screenshots` where `screenshotId`=" + packet.getId()); r.Read(); byte[] buffer = (byte[])r.GetValue(0); response = new AttachmentResponsePacket(buffer); r.Close(); } if (response != null) { response.sendData(c); } } } catch (InvalidPacketException e) { Server.getLogger().error(e.Message); } } } Thread.Sleep(SLEEP_DURATION); } }
public static Packet RenderPacket(PacketType type, string payload) { switch (type) { case PacketType.Exit: { ExitPacket p = JsonConvert.DeserializeObject <ExitPacket>(payload); return(p); } case PacketType.Error: { ErrorPacket p = JsonConvert.DeserializeObject <ErrorPacket>(payload); return(p); } case PacketType.VersionRequest: { VersionPacket p = JsonConvert.DeserializeObject <VersionPacket>(payload); return(p); } case PacketType.VersionResponse: { VersionPacket p = JsonConvert.DeserializeObject <VersionPacket>(payload); return(p); } case PacketType.LoginRequest: { LoginRequestPacket p = JsonConvert.DeserializeObject <LoginRequestPacket>(payload); return(p); } case PacketType.LoginResponse: { LoginResponsePacket p = JsonConvert.DeserializeObject <LoginResponsePacket>(payload); return(p); } case PacketType.PlayerListRequest: { PlayerListRequestPacket p = JsonConvert.DeserializeObject <PlayerListRequestPacket>(payload); return(p); } case PacketType.PlayerListResponse: { LoginResponsePacket p = JsonConvert.DeserializeObject <LoginResponsePacket>(payload); return(p); } case PacketType.CreateLobbyRequest: { CreateLobbyRequestPacket p = JsonConvert.DeserializeObject <CreateLobbyRequestPacket>(payload); return(p); } case PacketType.CreateLobbyResponse: { CreateLobbyResponsePacket p = JsonConvert.DeserializeObject <CreateLobbyResponsePacket>(payload); return(p); } default: Console.WriteLine("packet type not found."); return(new Packet()); } }