BetterDiscordWI.panels.Panel2.Splice C# (CSharp) Method

Splice() private method

private Splice ( ) : void
return void
        private void Splice()
        {
            string indexloc = null;
            if(File.Exists($"{GetParent().DiscordPath}\\resources\\app\\app\\index.js"))
            {
                //Normal path
                indexloc = $"{GetParent().DiscordPath}\\resources\\app\\app\\index.js";
            } else if (File.Exists($"{GetParent().DiscordPath}\\resources\\app\\index.js"))
            {
                //Canary 0.0.138 changed path to app\\index.js
                indexloc = $"{GetParent().DiscordPath}\\resources\\app\\index.js";
            }

            if(indexloc == null)
            {
                AppendLog($"Error: index.js not found");
                Finalize(1);
                return;
            }

            if(!File.Exists(@"splice"))
            {
                AppendLog($"Error: splice install file not found, this should be included with the installer.");
                Finalize(1);
                return;
            }

            Thread t = new Thread(() => {
                List<string> lines = new List<string>();
                AppendLog("Spicing index");
                using(FileStream fs = new FileStream(indexloc, FileMode.Open)) {
                    using(StreamReader reader = new StreamReader(fs)) {
                        string line = "";
                        while((line = reader.ReadLine()) != null) {
                            //if(GetParent().DiscordPath.Contains("Discord\\")) {
                            //if(GetParent().DiscordPath.Contains("DiscordCanary\\")) {
                            //if(GetParent().DiscordPath.Contains("DiscordPTB\\")) {
                            if(line.Replace(" ", "").Contains("var_fs=")) {
                                lines.Add(line);
                                lines.Add("var _betterDiscord = require('betterdiscord');");
                                lines.Add("var _betterDiscord2;");
                            } else if(line.Replace(" ", "").Contains("mainWindow=new")) {
                                lines.Add(line);
                                lines.Add(File.ReadAllText(@"splice"));
                            } else {
                                lines.Add(line);
                            }
                            //}
                        }
                    }
                }

                AppendLog("Writing index");

                File.WriteAllLines(indexloc, lines.ToArray());

                AppendLog("Finished installation, verifying installation...");

                int errors = 0;

                string curPath = $"{GetParent().DiscordPath}\\resources\\app\\app\\index.js";
                string curPath2 = $"{GetParent().DiscordPath}\\resources\\app\\index.js";
                if (!File.Exists(curPath) && !File.Exists(curPath2))
                {
                    AppendLog($"ERROR: index.js not found in {curPath} or {curPath2}");
                    errors++;
                }

                curPath = $"{GetParent().DiscordPath}\\resources\\node_modules\\BetterDiscord";

                if(!Directory.Exists(curPath)) {
                    AppendLog($"ERROR: DIRECTORY: {curPath} DOES NOT EXIST!");
                    errors++;
                }

                string basePath = $"{GetParent().DiscordPath}\\resources\\node_modules\\BetterDiscord";
                string[] bdFiles = { "\\package.json", "\\betterdiscord.js", "\\lib\\BetterDiscord.js", "\\lib\\config.json", "\\lib\\Utils.js" };

                foreach(string s in bdFiles.Where(s => !File.Exists(basePath + s))) {
                    AppendLog($"ERROR: FILE: {basePath}{s} DOES NOT EXIST");
                    errors++;
                }
                Finalize(errors);
            });

            t.Start();
        }