public void HandleLOGIN(Socket socket, byte[] data) { var client = Server.GetClientFrom(socket); new BufferReader(data) .Ignore(sizeof(int)) .ReadStringUTF8(out var userName) .ReadInteger(out var token) .ReadStringUTF8(out var gameInfo); Logger.Log <GameState>($"User '{userName}' login with token '{token}'..."); if (token == 0) { token = Rise.Rnd.NextInt(); Logger.Log <GameState>($"{userName}'s token is now {token}!"); } client.Send(Packets.Token(token)); SendWorld(client); var playerSession = new PlayerSession(userName, token, (Player)ENTITIES.PLAYER.Construct()); playerSession.Join(this); Players.Add(playerSession); client.Send(Packets.Join(playerSession)); }