Skip to content
This repository has been archived by the owner on Sep 24, 2024. It is now read-only.
/ ModManager Public archive

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
MatuxGG committed Dec 23, 2022
1 parent 60a0b8c commit f686ed4
Show file tree
Hide file tree
Showing 3 changed files with 108 additions and 21 deletions.
7 changes: 7 additions & 0 deletions ModManager5/Classes/ModList.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using IWshRuntimeLibrary;
using System.Drawing;
using System.Drawing.Imaging;
using Microsoft.Win32;

namespace ModManager5.Classes
{
Expand Down Expand Up @@ -244,5 +245,11 @@ public static List<Mod> getMyMods(List<string> listOfMods)
{
return mods.FindAll(m => listOfMods.Contains(m.id));
}

public static bool isChallengerInstalled()
{
RegistryKey challKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 2160150", false);
return challKey != null;
}
}
}
8 changes: 4 additions & 4 deletions ModManager5/Classes/ModManagerUI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,7 @@ public static void refreshModForm(Form f)
InstalledMod im = ConfigManager.getInstalledModById(m.id);

if (m.type != "local") {

if (m.id == "BetterCrewlink")
{
if (ConfigManager.isBetterCrewlinkInstalled())
Expand All @@ -601,7 +601,7 @@ public static void refreshModForm(Form f)
}
}

if (im == null)
if ((im == null && m.id != "Challenger") || (m.id == "Challenger" && !ModList.isChallengerInstalled()))
{
PictureBox ModDownload = Visuals.ModPic("ModDownload", global::ModManager5.Properties.Resources.download);
ModDownload.Click += new EventHandler((object sender, EventArgs e) =>
Expand All @@ -611,7 +611,7 @@ public static void refreshModForm(Form f)
allocatedControls.Add(ModDownload);
ModPanel.Controls.Add(ModDownload, 3, line);
}
else if (((m.type != "allInOne" || m.id == "Challenger" || m.id == "ChallengerBeta") && im.version != m.release.TagName) || (m.type != "allInOne" && im.gameVersion != m.gameVersion))
else if (m.id != "Challenger" && (((m.type != "allInOne" || m.id == "ChallengerBeta") && im.version != m.release.TagName) || (m.type != "allInOne" && im.gameVersion != m.gameVersion)))
{
PictureBox ModUpdate = Visuals.ModPic("ModUpdate", global::ModManager5.Properties.Resources.update);
ModUpdate.Click += new EventHandler((object sender, EventArgs e) =>
Expand All @@ -636,7 +636,7 @@ public static void refreshModForm(Form f)
allocatedControls.Add(ModUninstall);
ModPanel.Controls.Add(ModUninstall, 4, line);

if (im != null)
if ((im == null && m.id != "Challenger") || (m.id == "Challenger" && ModList.isChallengerInstalled()))
{
ModUninstall.Click += new EventHandler((object sender, EventArgs e) => {
if (MessageBox.Show(Translator.get("Are you sure you want to remove this mod ?"), Translator.get("Remove mod"), MessageBoxButtons.YesNo) == DialogResult.Yes) // TODO
Expand Down
114 changes: 97 additions & 17 deletions ModManager5/Classes/ModWorker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@ public static void startMod(Mod m)
Process.Start("explorer", playPath + @"\Among Us.exe");
}


if (!ModManager.silent)
ModManagerUI.StatusLabel.Text = Translator.get("MODNAME started.").Replace("MODNAME", m.name);

Expand All @@ -192,12 +191,18 @@ public static void startMod(Mod m)
ModManagerUI.StatusLabel.Text = Translator.get("MODNAME started.").Replace("MODNAME", m.name);
Process.Start("explorer", o.ToString() + @"\Better-CrewLink.exe");
}
else if (m.id == "Challenger" || m.id == "ChallengerBeta")
else if (m.id == "ChallengerBeta")
{
if (!ModManager.silent)
ModManagerUI.StatusLabel.Text = Translator.get("MODNAME started.").Replace("MODNAME", m.name);
Process.Start("explorer", ModManager.appDataPath + @"\mods\" + m.id + @"\Among Us.exe");
} else
}
else if (m.id == "Challenger")
{
ModWorker.openOrInstallChall();
return;
}
else
{
if (!ConfigManager.config.multipleGames && isGameOpen()) return;

Expand Down Expand Up @@ -244,6 +249,51 @@ public static void startMod(Mod m)
Utils.log("Start mod " + m.name + " END", "ModWorker");
}

public static void openOrInstallChall()
{
if (ModList.isChallengerInstalled())
{
Process.Start("explorer", "steam://rungameid/2160150");
}
else
{
Process.Start("explorer", "steam://run/2160150");
BackgroundWorker backgroundWorkerChall = new BackgroundWorker();
backgroundWorkerChall.WorkerReportsProgress = true;

backgroundWorkerChall.DoWork += new DoWorkEventHandler(ModWorker.backgroundWorkerChall_DoWork);
backgroundWorkerChall.RunWorkerCompleted += new RunWorkerCompletedEventHandler(ModWorker.backgroundWorkerChall_RunWorkerCompleted);
backgroundWorkerChall.ProgressChanged += new ProgressChangedEventHandler(ModWorker.backgroundWorkerChall_ProgressChanged);
backgroundWorkerChall.RunWorkerAsync();
}
}

public static void backgroundWorkerChall_DoWork(object sender, DoWorkEventArgs e)
{
var backgroundWorker = sender as BackgroundWorker;

Boolean installed = false;
while (!installed)
{
if (ModList.isChallengerInstalled())
{
installed = true;
}
}
backgroundWorker.ReportProgress(100);
}

private static void backgroundWorkerChall_ProgressChanged(object sender, ProgressChangedEventArgs e)
{

}

private static void backgroundWorkerChall_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
ModManagerUI.reloadMods();
}


public static void dataSave(Mod mod)
{
List<string> tdata = new List<string>() { };
Expand Down Expand Up @@ -347,7 +397,9 @@ public static void installAnyMod(Mod m)
Utils.log("Install mod " + m.name + " START", "ModWorker");
if (m.id == "Challenger")
{
ModWorker.installChallenger(true);
Utils.debug("tst");
ModWorker.openOrInstallChall();
//ModWorker.installChallenger(true);
}
else if(m.id == "ChallengerBeta")
{
Expand Down Expand Up @@ -602,6 +654,13 @@ public static void UninstallMod(Mod m)
backgroundWorkerUnBcl.ProgressChanged += new ProgressChangedEventHandler(backgroundWorkerUnBcl_ProgressChanged);
backgroundWorkerUnBcl.RunWorkerAsync();
return;
} else if (m.id == "Challenger") {
BackgroundWorker backgroundWorkerUnChall = new BackgroundWorker();
backgroundWorkerUnChall.WorkerReportsProgress = true;
backgroundWorkerUnChall.DoWork += new DoWorkEventHandler(backgroundWorkerUnChall_DoWork);
backgroundWorkerUnChall.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorkerUnChall_RunWorkerCompleted);
backgroundWorkerUnChall.ProgressChanged += new ProgressChangedEventHandler(backgroundWorkerUnChall_ProgressChanged);
backgroundWorkerUnChall.RunWorkerAsync();
} else
{
string modPath = ModManager.appDataPath + @"\mods\" + m.id;
Expand All @@ -621,22 +680,43 @@ public static void UninstallMod(Mod m)
Utils.log("Uninstall mod " + m.name + " END", "ModWorker");
}

private static void backgroundWorkerUnBcl_DoWork(object sender, DoWorkEventArgs e)
private static void backgroundWorkerUnChall_DoWork(object sender, DoWorkEventArgs e)
{
var backgroundWorker = sender as BackgroundWorker;

/*
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.CreateNoWindow = true;
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C winget uninstall BetterCrewLink.BetterCrewLink";
process.StartInfo = startInfo;
process.Start();*/
object uninsPath = Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 2160150", "QuietUninstallString", null);
if (uninsPath != null)
{
Process.Start(new ProcessStartInfo("cmd", $"/c" + uninsPath.ToString()) { CreateNoWindow = true });

Boolean installed = true;
while (installed)
{
installed = false;
if (ModList.isChallengerInstalled())
{
installed = true;
}
}
finished = true;
}

backgroundWorker.ReportProgress(100);
}

private static void backgroundWorkerUnChall_ProgressChanged(object sender, ProgressChangedEventArgs e)
{

}

private static void backgroundWorkerUnChall_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
ModManagerUI.reloadMods();
}

private static void backgroundWorkerUnBcl_DoWork(object sender, DoWorkEventArgs e)
{
var backgroundWorker = sender as BackgroundWorker;

object uninsPath = Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\03ceac78-9166-585d-b33a-90982f435933", "QuietUninstallString", null);
if (uninsPath != null)
Expand Down

0 comments on commit f686ed4

Please sign in to comment.