1
Fork 0
mirror of https://github.com/thegeneralist01/Scene-Manager-DevRepo synced 2026-01-11 15:40:29 +01:00

Added RNUI version checker.

This commit is contained in:
Rich Dunne 2020-10-18 19:39:53 -06:00
parent 277a169cdf
commit 360bfadf0d

View file

@ -1,4 +1,7 @@
using System; using System;
using System.ComponentModel.Design.Serialization;
using System.Drawing.Text;
using System.IO;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Windows.Forms; using System.Windows.Forms;
@ -12,42 +15,72 @@ namespace SceneManager
{ {
internal static void Main() internal static void Main()
{ {
AppDomain.CurrentDomain.DomainUnload += MyTerminationHandler; if (CheckRNUIVersion())
Settings.LoadSettings(); {
GetAssemblyVersion(); AppDomain.CurrentDomain.DomainUnload += MyTerminationHandler;
MenuManager.InstantiateMenus(); Settings.LoadSettings();
GetAssemblyVersion();
MenuManager.InstantiateMenus();
DisplayHintsToOpenMenu(); DisplayHintsToOpenMenu();
GameFiber UserInputFiber = new GameFiber(() => GetUserInput.LoopForUserInput()); GameFiber UserInputFiber = new GameFiber(() => GetUserInput.LoopForUserInput());
UserInputFiber.Start(); UserInputFiber.Start();
}
else
{
Game.UnloadActivePlugin();
return;
}
void GetAssemblyVersion()
{
string version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
Logger.Log($"Scene Manager V{version} is ready.");
}
} }
private static bool CheckRNUIVersion()
private static void GetAssemblyVersion()
{ {
Assembly assembly = Assembly.GetExecutingAssembly(); var directory = Directory.GetCurrentDirectory();
System.Diagnostics.FileVersionInfo fvi = System.Diagnostics.FileVersionInfo.GetVersionInfo(assembly.Location); var exists = File.Exists(directory + @"\RAGENativeUI.dll");
var version = fvi.FileVersion; if (!exists)
Logger.Log($"Scene Manager V{version} is ready."); {
Logger.Log($"RNUI was not found in the user's GTA V directory.");
Game.DisplayNotification($"~o~Scene Manager ~r~[Error]\n~w~RAGENativeUI.dll was not found in your GTA V directory. Please install RAGENativeUI and try again.");
return false;
}
var userVersion = Assembly.LoadFrom(directory + @"\RAGENativeUI.dll").GetName().Version;
Version requiredMinimumVersion = new Version("1.7.0.0");
if(userVersion >= requiredMinimumVersion)
{
Logger.Log($"User's RNUI version: {userVersion}");
return true;
}
else
{
Game.DisplayNotification($"~o~Scene Manager~r~[Error]\n~w~ Your RAGENativeUI.dll version is below 1.7, please update RAGENativeUI and try again.");
return false;
}
} }
private static void DisplayHintsToOpenMenu() private static void DisplayHintsToOpenMenu()
{ {
if (Settings.ModifierKey == Keys.None && Settings.ModifierButton == ControllerButtons.None) if (Settings.ModifierKey == Keys.None && Settings.ModifierButton == ControllerButtons.None)
{ {
Hints.Display($"~o~Scene Manager\n~y~[Hint]~w~ To open the menu, press the ~b~{Settings.ToggleKey} key ~w~or ~b~{Settings.ToggleButton} button"); Hints.Display($"~o~Scene Manager ~y~[Hint]\n~w~ To open the menu, press the ~b~{Settings.ToggleKey} key ~w~or ~b~{Settings.ToggleButton} button");
} }
else if (Settings.ModifierKey == Keys.None) else if (Settings.ModifierKey == Keys.None)
{ {
Hints.Display($"~o~Scene Manager\n~y~[Hint]~w~ To open the menu, press the ~b~{Settings.ToggleKey} key ~w~or ~b~{Settings.ModifierButton} ~w~+ ~b~{Settings.ToggleButton} buttons"); Hints.Display($"~o~Scene Manager ~y~[Hint]\n~w~ To open the menu, press the ~b~{Settings.ToggleKey} key ~w~or ~b~{Settings.ModifierButton} ~w~+ ~b~{Settings.ToggleButton} buttons");
} }
else if (Settings.ModifierButton == ControllerButtons.None) else if (Settings.ModifierButton == ControllerButtons.None)
{ {
Hints.Display($"~o~Scene Manager\n~y~[Hint]~w~ To open the menu, press ~b~{Settings.ModifierKey} ~w~+ ~b~{Settings.ToggleKey} ~w~or the ~b~{Settings.ToggleButton} button"); Hints.Display($"~o~Scene Manager ~y~[Hint]\n~w~ To open the menu, press ~b~{Settings.ModifierKey} ~w~+ ~b~{Settings.ToggleKey} ~w~or the ~b~{Settings.ToggleButton} button");
} }
else else
{ {
Hints.Display($"~o~Scene Manager\n~y~[Hint]~w~ To open the menu, press the ~b~{Settings.ModifierKey} ~w~+ ~b~{Settings.ToggleKey} keys ~w~or ~b~{Settings.ModifierButton} ~w~+ ~b~{Settings.ToggleButton} buttons"); Hints.Display($"~o~Scene Manager ~y~[Hint]\n~w~ To open the menu, press the ~b~{Settings.ModifierKey} ~w~+ ~b~{Settings.ToggleKey} keys ~w~or ~b~{Settings.ModifierButton} ~w~+ ~b~{Settings.ToggleButton} buttons");
} }
} }
@ -74,7 +107,7 @@ namespace SceneManager
PathMainMenu.paths.Clear(); PathMainMenu.paths.Clear();
Logger.Log($"Plugin has shut down."); Logger.Log($"Plugin has shut down.");
Game.DisplayNotification($"~o~Scene Manager\n~r~[Notice]~w~ The plugin has shut down."); Game.DisplayNotification($"~o~Scene Manager ~r~[Terminated]\n~w~ The plugin has shut down.");
} }
} }
} }