private void solveDependencies() { Log.Info("Solving package dependencies"); UnmetDependency[] unmetDependencies; if (!DependencySolver.Solve(PackageManager.Packages.ToArray(), out unmetDependencies)) { unmetDependencies = DependencySolver.FirstLevelUnmetDependencies(unmetDependencies); unmetDependencies.ToList().ForEach(unmetDependency => Log.Error(unmetDependency.ToString())); Log.Error("Please resolve issues and restart the game"); Console.ReadLine(); } try { PackageManager.Sort(); } catch (Exception exception) { Log.Error("Unable to sort packages in order to fulfill dependencies"); Log.Exception(exception); Log.Error("Please resolve issues and restart the game"); Console.ReadLine(); } }
internal void Sort() { Packages = DependencySolver.Sort(Packages.ToArray()).ToList(); }
private void loadPackages() { unsubscribeEvents(OnClientHotReload); unsubscribeEvents(OnEditorHotReload); unsubscribeEvents(OnMenuHotReload); unsubscribeEvents(OnServerHotReload); unsubscribeEvents(OnAgosGuiInitialized); unsubscribeEvents(OnGameClientActivated); unsubscribeEvents(OnGameClientDeactivated); unsubscribeEvents(OnGameClientInitialized); unsubscribeEvents(OnGameClientUnload); unsubscribeEvents(OnGameClientUpdate); unsubscribeEvents(OnGameEditorInitialized); unsubscribeEvents(OnGameEditorUnload); unsubscribeEvents(OnGameEditorUpdate); unsubscribeEvents(OnGameMenuInitialized); unsubscribeEvents(OnGameServerInitialized); unsubscribeEvents(OnGameServerUnload); unsubscribeEvents(OnGameServerUpdate); Console.WriteLine($"[{nameof(PluginManager)}] Looking for packages"); PackageManager.ScanForPackages(); PackageManager.Packages.ForEach(package => Console.WriteLine($"[{nameof(PluginManager)}] Loaded {package.ToString()}")); Console.WriteLine($"[{nameof(PluginManager)}] Solving dependencies"); var unmetDependencies = DependencySolver.Solve(PackageManager.Packages.ToArray()); if (unmetDependencies.Length > 0) { unmetDependencies = DependencySolver.GetRelevantUnmetDependencies(unmetDependencies); Console.ForegroundColor = ConsoleColor.Red; unmetDependencies.ToList().ForEach(unmetDependency => Console.WriteLine($"[{nameof(PluginManager)}] {unmetDependency.ToString()}")); Console.WriteLine($"[{nameof(PluginManager)}] Please resolve issues and restart the game"); Console.ResetColor(); while (true) { Console.ReadLine(); } } try { PackageManager.Sort(); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"[{nameof(PluginManager)}] Could not sort dependencies"); Console.WriteLine(ex.Message); Console.WriteLine($"[{nameof(PluginManager)}] Please resolve issues and restart the game"); Console.ResetColor(); while (true) { Console.ReadLine(); } } }