diff --git a/apps/app-frontend/src/pages/Browse.vue b/apps/app-frontend/src/pages/Browse.vue index 5a02136b45..0eeede917a 100644 --- a/apps/app-frontend/src/pages/Browse.vue +++ b/apps/app-frontend/src/pages/Browse.vue @@ -22,6 +22,8 @@ import { preferencesDiffer, provideBrowseManager, requestInstall, + stripServerRuntimeInstallFilters, + stripServerRuntimeInstallOverrides, useBrowseSearch, useDebugLogger, useVIntl, @@ -762,11 +764,15 @@ function getCardActions( project: projectResult, contentType, mode: isModpack ? 'immediate' : 'queue', - selectedFilters: isModpack ? [] : searchState.currentFilters.value, + selectedFilters: isModpack + ? [] + : stripServerRuntimeInstallFilters(searchState.currentFilters.value), providedFilters: isModpack ? [] : combinedProvidedFilters.value, overriddenProvidedFilterTypes: isModpack ? [] - : searchState.overriddenProvidedFilterTypes.value, + : stripServerRuntimeInstallOverrides( + searchState.overriddenProvidedFilterTypes.value, + ), targetPreferences: getServerInstallTargetPreferences(contentType), getProjectVersions: getInstallProjectVersions, queue: serverInstallQueue, diff --git a/apps/frontend/src/composables/use-server-install-content.ts b/apps/frontend/src/composables/use-server-install-content.ts index fba51994e6..7b7a5531b4 100644 --- a/apps/frontend/src/composables/use-server-install-content.ts +++ b/apps/frontend/src/composables/use-server-install-content.ts @@ -22,6 +22,8 @@ import { readStoredServerInstallQueue, removePendingServerContentInstall, requestInstall, + stripServerRuntimeInstallFilters, + stripServerRuntimeInstallOverrides, useVIntl, writePendingServerContentInstallBaseline, writeStoredServerInstallQueue, @@ -604,11 +606,15 @@ export function useServerInstallContent({ project, contentType, mode: isModpack ? 'immediate' : 'queue', - selectedFilters: isModpack ? [] : browseSearchState.currentFilters.value, + selectedFilters: isModpack + ? [] + : stripServerRuntimeInstallFilters(browseSearchState.currentFilters.value), providedFilters: isModpack ? [] : serverFilters.value, overriddenProvidedFilterTypes: isModpack ? [] - : browseSearchState.overriddenProvidedFilterTypes.value, + : stripServerRuntimeInstallOverrides( + browseSearchState.overriddenProvidedFilterTypes.value, + ), targetPreferences: getServerInstallTargetPreferences(contentType), getProjectVersions: getInstallProjectVersions, queue: serverInstallQueue, diff --git a/packages/ui/src/layouts/shared/browse-tab/composables/install-logic.ts b/packages/ui/src/layouts/shared/browse-tab/composables/install-logic.ts index b7e2d7410e..fe39fb2e2b 100644 --- a/packages/ui/src/layouts/shared/browse-tab/composables/install-logic.ts +++ b/packages/ui/src/layouts/shared/browse-tab/composables/install-logic.ts @@ -388,6 +388,22 @@ export function getLoaderFilterTypes(contentType: string) { 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. *