From 3d37da29fe1189059c06ea393ffb2f5637bc59e5 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Thu, 22 Feb 2024 17:19:45 -0600 Subject: [PATCH] Fix issue where updating to v0.6.0 would duplicate library items and break some games Playnite doesn't allow the editing of IDs. This fix removes the original game entry and adds the migrated one as a new game. Install status and directory are maintained. --- .../ImportController.cs | 18 ------------------ .../LANCommanderLibraryPlugin.cs | 5 ++++- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/LANCommander.Playnite.Extension/ImportController.cs b/LANCommander.Playnite.Extension/ImportController.cs index 46a81ab5..dd261903 100644 --- a/LANCommander.Playnite.Extension/ImportController.cs +++ b/LANCommander.Playnite.Extension/ImportController.cs @@ -109,24 +109,6 @@ namespace LANCommander.PlaynitePlugin game.Name += " - Update Available"; } - if (!game.IsInstalled && String.IsNullOrWhiteSpace(game.InstallDirectory)) - { - try - { - // Check for existing manifest - var possibleInstallDirectory = Path.Combine(Plugin.Settings.InstallDirectory, game.Name.SanitizeFilename()); - - var existingManifest = ManifestHelper.Read(possibleInstallDirectory, game.Id); - - if (existingManifest != null) - { - game.IsInstalled = true; - game.InstallDirectory = possibleInstallDirectory; - } - } - catch { } - } - #region Play Sessions if (playSessions.Count() > 0) { diff --git a/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs b/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs index 12fddb0c..71f92c7f 100644 --- a/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs +++ b/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs @@ -676,9 +676,12 @@ namespace LANCommander.PlaynitePlugin { try { + var originalId = game.Id; + game.Id = Guid.Parse(game.GameId); - PlayniteApi.Database.Games.Update(game); + PlayniteApi.Database.Games.Remove(originalId); + PlayniteApi.Database.Games.Add(game); } catch (Exception ex) {