From 32c6bb713d39b4be5b4f7f55c4c1345b480432e0 Mon Sep 17 00:00:00 2001 From: insomnious Date: Wed, 14 Aug 2024 08:24:25 +0100 Subject: [PATCH] version bump, changelog. hotfixes --- CHANGELOG.md | 7 +++++++ app/package.json | 2 +- extensions/gamebryo-plugin-management | 2 +- .../gamemode_management/types/IGameStored.ts | 4 ++++ src/extensions/nexus_integration/eventHandlers.ts | 10 ++++++---- .../nexus_integration/util/checkModsVersion.ts | 3 ++- src/extensions/nexus_integration/util/convertGameId.ts | 6 +++--- src/main.ts | 1 + 8 files changed, 25 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df4daa2ba..60dbfae0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Common Changelog](https://common-changelog.org/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.12.2] - 2024-08-14 + +- Fixed inability to update mods that are tagged as compatibleDownloads. ([#16231](https://github.com/Nexus-Mods/Vortex/issues/16231)) +- Fixed downloads/installation stalling when Vortex is in background. +- **plugin-management**: Removed non-relevant loot messages from inlined view + ## [1.12.1] - 2024-08-12 - Fixed extension installation not executing from downloads page. ([#16197](https://github.com/Nexus-Mods/Vortex/issues/16197)) @@ -466,6 +472,7 @@ _Yanked due to critical issue found with file overrides_ - When providing feedback, users are treated as logged out if using OAuth - Changelog dashlet was incorrectly displaying markdown +[1.12.2]: https://github.com/Nexus-Mods/Vortex/releases/tag/v1.12.2 [1.12.1]: https://github.com/Nexus-Mods/Vortex/releases/tag/v1.12.1 [1.12.0]: https://github.com/Nexus-Mods/Vortex/releases/tag/v1.12.0 [1.12.0-beta.5]: https://github.com/Nexus-Mods/Vortex/releases/tag/v1.12.0-beta.5 diff --git a/app/package.json b/app/package.json index 135d5b190..df1db8da1 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "vortex", - "version": "1.12.1", + "version": "1.12.2", "productName": "Vortex", "description": "Vortex", "author": "Black Tree Gaming Ltd.", diff --git a/extensions/gamebryo-plugin-management b/extensions/gamebryo-plugin-management index 73096bdce..85e96146e 160000 --- a/extensions/gamebryo-plugin-management +++ b/extensions/gamebryo-plugin-management @@ -1 +1 @@ -Subproject commit 73096bdce890c0b30acde0659f2fe2f35a91ccbd +Subproject commit 85e96146eba595beda377756cd4661b819457a68 diff --git a/src/extensions/gamemode_management/types/IGameStored.ts b/src/extensions/gamemode_management/types/IGameStored.ts index c75910ba0..374d6a7b4 100644 --- a/src/extensions/gamemode_management/types/IGameStored.ts +++ b/src/extensions/gamemode_management/types/IGameStored.ts @@ -25,3 +25,7 @@ export interface IGameStored { contributed?: string; final?: boolean; } + +export interface IGameStoredExt extends IGameStored { + downloadGameId?: string; +} \ No newline at end of file diff --git a/src/extensions/nexus_integration/eventHandlers.ts b/src/extensions/nexus_integration/eventHandlers.ts index ebc17871f..89c41059c 100644 --- a/src/extensions/nexus_integration/eventHandlers.ts +++ b/src/extensions/nexus_integration/eventHandlers.ts @@ -1,7 +1,8 @@ +/* eslint-disable */ import { setDownloadModInfo } from '../../actions'; import { IExtensionApi, StateChangeCallback } from '../../types/IExtensionContext'; import { IDownload, IModTable, IState } from '../../types/IState'; -import { ArgumentInvalid, DataInvalid, ProcessCanceled, UserCanceled } from '../../util/CustomErrors'; +import { DataInvalid, ProcessCanceled, UserCanceled } from '../../util/CustomErrors'; import Debouncer from '../../util/Debouncer'; import * as fs from '../../util/fs'; import { log } from '../../util/log'; @@ -15,7 +16,7 @@ import { toPromise, truthy } from '../../util/util'; import { resolveCategoryName } from '../category_management'; import { AlreadyDownloaded, DownloadIsHTML } from '../download_management/DownloadManager'; import { SITE_ID } from '../gamemode_management/constants'; -import {IGameStored} from '../gamemode_management/types/IGameStored'; +import { IGameStoredExt } from '../gamemode_management/types/IGameStored'; import { setUpdatingMods } from '../mod_management/actions/session'; import { IModListItem } from '../news_dashlet/types'; @@ -223,7 +224,7 @@ function getFileId(download: IDownload): number { } function downloadFile(api: IExtensionApi, nexus: Nexus, - game: IGameStored, modId: number, fileId: number, + game: IGameStoredExt, modId: number, fileId: number, fileName?: string, allowInstall?: boolean): Promise { const state: IState = api.getState(); @@ -279,7 +280,8 @@ export function onModUpdate(api: IExtensionApi, nexus: Nexus) { return; } - downloadFile(api, nexus, game, modId, fileId, undefined, false) + const downloadGameId = (game !== undefined) && (game.id !== gameId) ? gameId : game.id; + downloadFile(api, nexus, { ...game, downloadGameId }, modId, fileId, undefined, false) .catch(AlreadyDownloaded, err => { const state = api.getState(); const downloads = state.persistent.downloads.files; diff --git a/src/extensions/nexus_integration/util/checkModsVersion.ts b/src/extensions/nexus_integration/util/checkModsVersion.ts index 874244f26..bb3f18987 100644 --- a/src/extensions/nexus_integration/util/checkModsVersion.ts +++ b/src/extensions/nexus_integration/util/checkModsVersion.ts @@ -1,3 +1,4 @@ +/* eslint-disable */ import { IExtensionApi } from '../../../types/IExtensionContext'; import { log } from '../../../util/log'; import { getSafe } from '../../../util/storeHelper'; @@ -104,7 +105,7 @@ export function checkModVersion(store: Redux.Store, nexus: NexusT, const gameId = getSafe(mod.attributes, ['downloadGame'], undefined) || gameMode; const game = gameById(store.getState(), gameId); const fallBackGameId = gameId === 'site' - ? 'site' : undefined; + ? 'site' : gameId; return Promise.resolve(nexus.getModFiles(nexusModId, nexusGameId(game, fallBackGameId))) .then(result => updateFileAttributes(store.dispatch, gameMode, mod, result)) diff --git a/src/extensions/nexus_integration/util/convertGameId.ts b/src/extensions/nexus_integration/util/convertGameId.ts index 35ddf2505..3ec1c6b31 100644 --- a/src/extensions/nexus_integration/util/convertGameId.ts +++ b/src/extensions/nexus_integration/util/convertGameId.ts @@ -1,9 +1,9 @@ import { inspect } from 'util'; import { IGame } from '../../../types/IGame'; -import { IGameStored } from '../../../types/IState'; import { log } from '../../../util/log'; import { truthy } from '../../../util/util'; import { SITE_ID } from '../../gamemode_management/constants'; +import { IGameStored, IGameStoredExt } from '../../gamemode_management/types/IGameStored'; /** * get the nexus page id for a game @@ -88,7 +88,7 @@ export function convertNXMIdReverse(knownGames: IGameStored[], input: string): s /** * get the nxm link id for a game */ -export function toNXMId(game: IGameStored, gameId: string): string { +export function toNXMId(game: IGameStoredExt, gameId: string): string { // this is a bit of a workaround since "site" isn't and shouldn't be an // entry in the list of games (here or on the site) if (game === null) { @@ -100,7 +100,7 @@ export function toNXMId(game: IGameStored, gameId: string): string { } else if (game.details.nexusPageId !== undefined) { return game.details.nexusPageId; } - gameId = game.id; + gameId = game.downloadGameId || game.id; } const gameIdL = gameId.toLowerCase(); if (gameIdL === 'skyrimse') { diff --git a/src/main.ts b/src/main.ts index ef9621206..f7ae20ef0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -177,6 +177,7 @@ async function main(): Promise { } app.commandLine.appendSwitch('disable-features', 'WidgetLayering'); + app.commandLine.appendSwitch('disable-features', 'UseEcoQoSForBackgroundProcess'); // --run has to be evaluated *before* we request the single instance lock! if (mainArgs.run !== undefined) {