fix: strip runtime filters to be authoratative (#6635)

This commit is contained in:
Calum H.
2026-07-06 17:39:17 +00:00
committed by GitHub
parent 76320f227f
commit 1cce1eb248
3 changed files with 32 additions and 4 deletions
+8 -2
View File
@@ -22,6 +22,8 @@ import {
preferencesDiffer, preferencesDiffer,
provideBrowseManager, provideBrowseManager,
requestInstall, requestInstall,
stripServerRuntimeInstallFilters,
stripServerRuntimeInstallOverrides,
useBrowseSearch, useBrowseSearch,
useDebugLogger, useDebugLogger,
useVIntl, useVIntl,
@@ -762,11 +764,15 @@ function getCardActions(
project: projectResult, project: projectResult,
contentType, contentType,
mode: isModpack ? 'immediate' : 'queue', mode: isModpack ? 'immediate' : 'queue',
selectedFilters: isModpack ? [] : searchState.currentFilters.value, selectedFilters: isModpack
? []
: stripServerRuntimeInstallFilters(searchState.currentFilters.value),
providedFilters: isModpack ? [] : combinedProvidedFilters.value, providedFilters: isModpack ? [] : combinedProvidedFilters.value,
overriddenProvidedFilterTypes: isModpack overriddenProvidedFilterTypes: isModpack
? [] ? []
: searchState.overriddenProvidedFilterTypes.value, : stripServerRuntimeInstallOverrides(
searchState.overriddenProvidedFilterTypes.value,
),
targetPreferences: getServerInstallTargetPreferences(contentType), targetPreferences: getServerInstallTargetPreferences(contentType),
getProjectVersions: getInstallProjectVersions, getProjectVersions: getInstallProjectVersions,
queue: serverInstallQueue, queue: serverInstallQueue,
@@ -22,6 +22,8 @@ import {
readStoredServerInstallQueue, readStoredServerInstallQueue,
removePendingServerContentInstall, removePendingServerContentInstall,
requestInstall, requestInstall,
stripServerRuntimeInstallFilters,
stripServerRuntimeInstallOverrides,
useVIntl, useVIntl,
writePendingServerContentInstallBaseline, writePendingServerContentInstallBaseline,
writeStoredServerInstallQueue, writeStoredServerInstallQueue,
@@ -604,11 +606,15 @@ export function useServerInstallContent({
project, project,
contentType, contentType,
mode: isModpack ? 'immediate' : 'queue', mode: isModpack ? 'immediate' : 'queue',
selectedFilters: isModpack ? [] : browseSearchState.currentFilters.value, selectedFilters: isModpack
? []
: stripServerRuntimeInstallFilters(browseSearchState.currentFilters.value),
providedFilters: isModpack ? [] : serverFilters.value, providedFilters: isModpack ? [] : serverFilters.value,
overriddenProvidedFilterTypes: isModpack overriddenProvidedFilterTypes: isModpack
? [] ? []
: browseSearchState.overriddenProvidedFilterTypes.value, : stripServerRuntimeInstallOverrides(
browseSearchState.overriddenProvidedFilterTypes.value,
),
targetPreferences: getServerInstallTargetPreferences(contentType), targetPreferences: getServerInstallTargetPreferences(contentType),
getProjectVersions: getInstallProjectVersions, getProjectVersions: getInstallProjectVersions,
queue: serverInstallQueue, queue: serverInstallQueue,
@@ -388,6 +388,22 @@ export function getLoaderFilterTypes(contentType: string) {
return [] return []
} }
const SERVER_RUNTIME_INSTALL_FILTER_TYPES = new Set([
'game_version',
'mod_loader',
'plugin_loader',
'plugin_platform',
'datapack_loader',
])
export function stripServerRuntimeInstallFilters(filters: readonly FilterValue[]) {
return filters.filter((filter) => !SERVER_RUNTIME_INSTALL_FILTER_TYPES.has(filter.type))
}
export function stripServerRuntimeInstallOverrides(filterTypes: readonly string[]) {
return filterTypes.filter((type) => !SERVER_RUNTIME_INSTALL_FILTER_TYPES.has(type))
}
/** /**
* Merges user-selected filters with target-provided filters for install decisions. * Merges user-selected filters with target-provided filters for install decisions.
* *