async void permissionsButton_Click(object sender, RoutedEventArgs e)
        {
            // gets path to data folder
            String folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + "\\ModernEra";
            // reads into a string, then splits the string into an array, where each item is a portion of the txt, split by the word "END"
            string txtLines = File.ReadAllText(folderPath + "\\upsiopts.txt");
            string[] split = txtLines.Split(new string[] { "END" }, StringSplitOptions.None);
            // gets the selected item's index, and because the order of the names will be the same as the one in the txt, 
            // uses it to select the game's array item
            int index = pogcheck.SelectedIndex;
            string[] gameArray = split[index].Split(new string[] { "\n" }, StringSplitOptions.None);

            string gameID = "";
            string gameName = "";

            foreach (string line in gameArray)
            {
                if (line.StartsWith("COMOBJECT="))
                {
                    string temp = line.Substring(line.IndexOf("COMOBJECT=")).Replace("COMOBJECT=", "");
                    string temp2 = temp.Replace("\r", "");
                    gameID = temp2;
                }

                if (line.StartsWith("NAME="))
                {
                    string temp = line.Substring(line.IndexOf("NAME=")).Replace("NAME=", "");
                    string temp2 = temp.Replace("\r", "");
                    gameName = temp2;
                }
            }

            pogbox.Text = "Setting permissions for " + gameID + "...";
            adbCommands perms = new adbCommands();
            await Task.Run(() => perms.grantPermissions(gameID));
            perms.killADB();
            pogbox.Text = "Permissions set for " + gameName + "!";
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            // gets path to data folder
            String folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + "\\ModernEra";
            // reads into a string, then splits the string into an array, where each item is a portion of the txt, split by the word "END"
            string txtLines = File.ReadAllText(folderPath + "\\upsiopts.txt");
            string[] split = txtLines.Split(new string[] { "END" }, StringSplitOptions.None);
            // gets the selected item's index, and because the order of the names will be the same as the one in the txt, 
            // uses it to select the game's array item
            int index = pogcheck.SelectedIndex;
            string[] gameArray = split[index].Split(new string[] { "\n" }, StringSplitOptions.None);
            
            // getting the required details for download and install
            string gameURL = "";
            string gameName = "";
            string gameZip = "";
            string gameID = "";
            string apkName = "";
            string obbName = "";
            string txtFileName = "";
            foreach (string line in gameArray)
            {
                if (line.StartsWith("DOWNLOADFROM="))
                {
                    string temp = line.Substring(line.IndexOf("DOWNLOADFROM=")).Replace("DOWNLOADFROM=", "");
                    string temp2 = temp.Replace("\r", "");
                    gameURL = temp2;
                }

                if (line.StartsWith("NAME="))
                {
                    string temp = line.Substring(line.IndexOf("NAME=")).Replace("NAME=", "");
                    string temp2 = temp.Replace("\r", "");
                    gameName = temp2;
                }

                if (line.StartsWith("ZIPNAME="))
                {
                    string temp = line.Substring(line.IndexOf("ZIPNAME=")).Replace("ZIPNAME=", "");
                    string temp2 = temp.Replace("\r", "");
                    gameZip = temp2;
                }

                if (line.StartsWith("COMOBJECT="))
                {
                    string temp = line.Substring(line.IndexOf("COMOBJECT=")).Replace("COMOBJECT=", "");
                    string temp2 = temp.Replace("\r", "");
                    gameID = temp2;
                }

                if (line.StartsWith("APK="))
                {
                    string temp = line.Substring(line.IndexOf("APK=")).Replace("APK=", "");
                    string temp2 = temp.Replace("\r", "");
                    apkName = temp2;
                }

                if (line.StartsWith("OBB="))
                {
                    string temp = line.Substring(line.IndexOf("OBB=")).Replace("OBB=", "");
                    string temp2 = temp.Replace("\r", "");
                    obbName = temp2;
                }

                if (line.StartsWith("INPUTFILENAME="))
                {
                    string temp = line.Substring(line.IndexOf("INPUTFILENAME=")).Replace("INPUTFILENAME=", "");
                    string temp2 = temp.Replace("\r", "");
                    txtFileName = temp2;
                }
            }

            // set up download environment

            Uri gameDL = new Uri(gameURL);
            if (Directory.Exists(folderPath + "\\" + "adb"))
            {
                Directory.Delete(folderPath + "\\" + "adb", true);
            }
            if (File.Exists(folderPath + "\\name.txt"))
            {
                File.Delete(folderPath + "\\name.txt");
            }
            Directory.CreateDirectory(folderPath + "\\" + gameName);

            // declare event handler for the DL, as if we did this syncronised the UI would freeze, and w/o the handler it would just move on
            //adbCommand pog = new adbCommand();
            //pog.adbCommands(folderPath, gameName, gameID, apkName, obbName, txtFileName, pogbox);
            pogbox.Text = "Downloading game...";
            pogbar.Visibility = Visibility.Visible;

            WebClient BBBB = new WebClient();
            BBBB.DownloadFileCompleted += new AsyncCompletedEventHandler(ayo);
            BBBB.DownloadProgressChanged += new DownloadProgressChangedEventHandler(yuh);
            BBBB.DownloadFileAsync(gameDL, folderPath + "\\" + gameName + "\\" + gameZip);

                void yuh(object bender, DownloadProgressChangedEventArgs d)
                {
                    pogbar.Value = d.ProgressPercentage;
                }

                async void ayo(object ender, AsyncCompletedEventArgs f)
                {
                    pogbar.Visibility = Visibility.Hidden;
                    pogbox.Text = "Download complete, unzipping " + gameName + "..."; 
                    await Task.Run(() => ZipFile.ExtractToDirectory(folderPath + "\\" + gameName + "\\" + gameZip, folderPath + "\\" + gameName)); 
                    pogbox.Text = "Unzipping complete...";
                    string name = Interaction.InputBox("What should your name be for " + gameName + "?", "Input Name");
                    using (System.IO.StreamWriter file = new System.IO.StreamWriter(@Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + "\\ModernEra\\name.txt", true))
                    {
                        file.WriteLine(name);
                    }
                    
                    adbCommands pog = new adbCommands();
                    await Task.Run(() => pog.uninstall(gameID));
                    pogbox.Text = gameName + " uninstalled if present! Installing APK...";
                    await Task.Run(() => pog.installAPK(folderPath, gameName, apkName));
                    pogbox.Text = "APK installed! Setting permissions...";
                    await Task.Run(() => pog.grantPermissions(gameID));
                    pogbox.Text = "Permissions set! Pushing OBB...";
                    await Task.Run(() => pog.pushOBB(folderPath, gameName, obbName, gameID));
                    pogbox.Text = "OBB pushed! Setting name...";
                    await Task.Run(() => pog.pushName(folderPath, txtFileName));
                    pog.killADB();

                    if (Directory.Exists(folderPath + "\\" + gameName))
                    {
                        Directory.Delete(folderPath + "\\" + gameName, true);
                    }
                    pogbox.Text = gameName + " installed!";
            }
        }