From 44b88687dd4db7e5ae8af370d869224aab3c8c79 Mon Sep 17 00:00:00 2001 From: CWX Date: Fri, 7 Feb 2025 22:06:33 +0000 Subject: [PATCH] finish off mod side in gameController --- Libraries/Core/Controllers/GameController.cs | 55 +++++++++----------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/Libraries/Core/Controllers/GameController.cs b/Libraries/Core/Controllers/GameController.cs index fd12b2b3..e77d0ec7 100644 --- a/Libraries/Core/Controllers/GameController.cs +++ b/Libraries/Core/Controllers/GameController.cs @@ -5,6 +5,7 @@ using Core.Models.Eft.Game; using Core.Models.Eft.Profile; using Core.Models.Enums; using Core.Models.Spt.Config; +using Core.Models.Spt.Mod; using Core.Models.Utils; using Core.Servers; using Core.Services; @@ -469,39 +470,31 @@ public class GameController( /// Profile to add mod details to private void SaveActiveModsToProfile(SptProfile fullProfile) { - // Add empty mod array if undefined fullProfile.SptData!.Mods ??= []; + var mods = _applicationContext?.GetLatestValue(ContextVariableType.LOADED_MOD_ASSEMBLIES).GetValue>(); - // Get active mods - _logger.Error("NOT IMPLEMENTED - _preSptModLoader SaveActiveModsToProfile()"); - //var activeMods = _preSptModLoader.GetImportedModDetails(); // TODO: IMPLEMENT _preSptModLoader - // var activeMods = new Dictionary(); - // foreach (var modKvP in activeMods) - // { - // var modDetails = modKvP.Value; - // if ( - // fullProfile.SptData.Mods.Any( - // (mod) => - // mod.Author == modDetails.Author && - // mod.Name == modDetails.Name && - // mod.Version == modDetails.Version - // )) - // { - // // Exists already, skip - // continue; - // } - // - // fullProfile.SptData.Mods.Add( - // new ModDetails - // { - // Author = modDetails.Author, - // DateAdded = _timeUtil.GetTimeStamp(), - // Name = modDetails.Name, - // Version = modDetails.Version, - // Url = modDetails.Url, - // } - // ); - // } + foreach (var mod in mods) + { + if ( + fullProfile.SptData.Mods.Any( + m => + m.Author == mod.PackageJson.Author && m.Version == mod.PackageJson.Version && m.Name == mod.PackageJson.Name + ) + ) + { + // exists already, skip + continue; + } + + fullProfile.SptData.Mods.Add(new ModDetails() + { + Author = mod.PackageJson.Author, + Version = mod.PackageJson.Version, + Name = mod.PackageJson.Name, + Url = mod.PackageJson.Url, + DateAdded = _timeUtil.GetTimeStamp() + }); + } } ///