Esempio n. 1
0
 void launcher_ProcessFound(object sender, ProcessMonitor.ProcessEventArgs e)
 {
 }
Esempio n. 2
0
        void launcher_ProcessFound(object sender, ProcessMonitor.ProcessEventArgs e)
        {
            try
            {
                if (!Settings.DeleteLeaveBuster)
                {
                    return;
                }

                var dir = Path.GetDirectoryName(e.Process.MainModule.FileName);
                if (dir == null)
                {
                    StaticLogger.Warning("Launcher module not found");
                    return;
                }

                var needle = "\\RADS\\";
                var i      = dir.LastIndexOf(needle, StringComparison.InvariantCulture);
                if (i == -1)
                {
                    StaticLogger.Warning("Launcher Rads not found");
                    return;
                }

                dir = dir.Remove(i + needle.Length);
                dir = Path.Combine(dir, "projects\\lol_air_client\\releases");

                if (!Directory.Exists(dir))
                {
                    StaticLogger.Warning("lol_air_client directory not found");
                    return;
                }

                foreach (var ver in new DirectoryInfo(dir).GetDirectories())
                {
                    var filename = Path.Combine(ver.FullName, "deploy\\preferences\\global\\global.properties");
                    if (!File.Exists(filename))
                    {
                        StaticLogger.Warning(filename + " not found");
                        continue;
                    }

                    ASObject obj = null;
                    using (var amf = new AMFReader(File.OpenRead(filename)))
                    {
                        try
                        {
                            obj = amf.ReadAMF3Data() as ASObject;
                            if (obj == null)
                            {
                                StaticLogger.Warning("Failed to read " + filename);
                                continue;
                            }
                        }
                        catch (Exception ex)
                        {
                            StaticLogger.Warning("LeaverBuster: Unable to read global.properties '" + filename + "'");
                            continue;
                        }
                    }
                    object leaver;
                    object locale;
                    if ((obj.TryGetValue("leaverData", out leaver) && leaver != null) ||
                        (obj.TryGetValue("localeData", out locale) && locale != null))
                    {
                        obj["leaverData"] = null;
                        obj["localeData"] = null;
                        using (var amf = new AMFWriter(File.Open(filename, FileMode.Create, FileAccess.Write)))
                        {
                            try
                            {
                                amf.WriteAMF3Data(obj);
                                StaticLogger.Info("Removed leaverData/localeData from global.properties");
                            }
                            catch (Exception ex)
                            {
                                StaticLogger.Warning("LeaverBuster: Unable to write global.properties '" + filename + "'");
                                continue;
                            }
                        }
                    }
                    else
                    {
                        StaticLogger.Info("leaverData/localeData already removed from global.properties");
                    }
                }
            }
            catch (Exception ex)
            {
                StaticLogger.Error(ex);
            }
        }