mirror of
https://github.com/modrinth/code.git
synced 2026-08-31 03:55:59 +00:00
fix: browse page not respecting instance source via wid param
This commit is contained in:
@@ -90,6 +90,9 @@ const {
|
||||
effectiveServerWorldId,
|
||||
serverContextServerData,
|
||||
serverContextWorldName,
|
||||
serverContextWorldGameVersion,
|
||||
serverContextWorldLoader,
|
||||
serverContextWorldLoaderVersion,
|
||||
serverContentProjectIds,
|
||||
queuedServerInstallProjectIds,
|
||||
queuedServerInstallCount,
|
||||
@@ -296,10 +299,10 @@ const serverContextFilters = computed(() => {
|
||||
const pt = projectType.value
|
||||
|
||||
if (pt !== 'modpack') {
|
||||
const gameVersion = serverContextServerData.value.mc_version
|
||||
const gameVersion = serverContextWorldGameVersion.value
|
||||
if (gameVersion) filters.push({ type: 'game_version', option: gameVersion })
|
||||
|
||||
const platform = serverContextServerData.value.loader?.toLowerCase()
|
||||
const platform = serverContextWorldLoader.value?.toLowerCase().replaceAll('_', '')
|
||||
if (platform && ['fabric', 'forge', 'quilt', 'neoforge'].includes(platform))
|
||||
filters.push({ type: 'mod_loader', option: platform })
|
||||
if (platform && ['paper', 'purpur'].includes(platform))
|
||||
@@ -334,6 +337,14 @@ const combinedProvidedFilters = computed(() =>
|
||||
isServerContext.value ? serverContextFilters.value : instanceFilters.value,
|
||||
)
|
||||
|
||||
const serverContentProjectType = computed<ProjectType | null>(() => {
|
||||
const loader = serverContextWorldLoader.value?.toLowerCase()
|
||||
if (!loader) return null
|
||||
if (loader === 'paper' || loader === 'purpur') return 'plugin'
|
||||
if (loader === 'vanilla') return 'datapack'
|
||||
return 'mod'
|
||||
})
|
||||
|
||||
const {
|
||||
serverPings,
|
||||
contextMenuRef,
|
||||
@@ -477,6 +488,21 @@ function resetInstanceContext() {
|
||||
breadcrumbs.setContext(null)
|
||||
}
|
||||
|
||||
watch(
|
||||
[isServerContext, isSetupServerContext, projectType, serverContentProjectType],
|
||||
([serverContext, setupServerContext, currentProjectType, targetProjectType]) => {
|
||||
if (!serverContext || setupServerContext || !targetProjectType) return
|
||||
if (!['mod', 'plugin', 'datapack'].includes(currentProjectType)) return
|
||||
if (currentProjectType === targetProjectType) return
|
||||
|
||||
router.replace({
|
||||
path: `/browse/${targetProjectType}`,
|
||||
query: route.query,
|
||||
})
|
||||
},
|
||||
{ immediate: true },
|
||||
)
|
||||
|
||||
watch(
|
||||
() => route.params.projectType as ProjectType,
|
||||
async (newType) => {
|
||||
@@ -562,9 +588,9 @@ const installContext = computed(() => {
|
||||
if (isServerContext.value && serverContextServerData.value) {
|
||||
return {
|
||||
name: serverContextWorldName.value ?? formatMessage(messages.worldFallbackName),
|
||||
loader: serverContextServerData.value.loader ?? '',
|
||||
loaderVersion: serverContextServerData.value.loader_version ?? '',
|
||||
gameVersion: serverContextServerData.value.mc_version ?? '',
|
||||
loader: serverContextWorldLoader.value ?? '',
|
||||
loaderVersion: serverContextWorldLoaderVersion.value ?? '',
|
||||
gameVersion: serverContextWorldGameVersion.value ?? '',
|
||||
serverId: serverIdQuery.value,
|
||||
upstream: serverContextServerData.value.upstream,
|
||||
iconSrc: null as string | null,
|
||||
@@ -639,8 +665,8 @@ function getCurrentSelectedInstallPreferences(projectTypeValue: string) {
|
||||
function getServerInstallTargetPreferences(contentType: BrowseInstallContentType) {
|
||||
return getTargetInstallPreferences(
|
||||
{
|
||||
gameVersion: serverContextServerData.value?.mc_version,
|
||||
loader: serverContextServerData.value?.loader,
|
||||
gameVersion: serverContextWorldGameVersion.value,
|
||||
loader: serverContextWorldLoader.value,
|
||||
},
|
||||
contentType,
|
||||
)
|
||||
|
||||
@@ -65,6 +65,9 @@ export interface ServerInstallContentContext {
|
||||
effectiveServerWorldId: ComputedRef<string | null>
|
||||
serverContextServerData: Ref<Archon.Servers.v0.Server | null>
|
||||
serverContextWorldName: ComputedRef<string | null>
|
||||
serverContextWorldGameVersion: ComputedRef<string | null>
|
||||
serverContextWorldLoader: ComputedRef<string | null>
|
||||
serverContextWorldLoaderVersion: ComputedRef<string | null>
|
||||
serverContentProjectIds: Ref<Set<string>>
|
||||
queuedServerInstallProjectIds: ComputedRef<Set<string>>
|
||||
queuedServerInstallCount: ComputedRef<number>
|
||||
@@ -283,6 +286,21 @@ export function createServerInstallContent(opts: {
|
||||
return serverFull.worlds.find((world) => world.is_active) ?? serverFull.worlds[0] ?? null
|
||||
})
|
||||
const serverContextWorldName = computed(() => serverContextWorld.value?.name ?? null)
|
||||
const serverContextWorldGameVersion = computed(() => {
|
||||
const worldGameVersion = serverContextWorld.value?.content?.game_version
|
||||
if (worldIdQuery.value) return worldGameVersion ?? null
|
||||
return worldGameVersion ?? serverContextServerData.value?.mc_version ?? null
|
||||
})
|
||||
const serverContextWorldLoader = computed(() => {
|
||||
const worldLoader = serverContextWorld.value?.content?.modloader
|
||||
if (worldIdQuery.value) return worldLoader ?? null
|
||||
return worldLoader ?? serverContextServerData.value?.loader ?? null
|
||||
})
|
||||
const serverContextWorldLoaderVersion = computed(() => {
|
||||
const worldLoaderVersion = serverContextWorld.value?.content?.modloader_version
|
||||
if (worldIdQuery.value) return worldLoaderVersion ?? null
|
||||
return worldLoaderVersion ?? serverContextServerData.value?.loader_version ?? null
|
||||
})
|
||||
const serverBackUrl = computed(() => {
|
||||
const sid = serverIdQuery.value
|
||||
if (!sid) return '/hosting/manage'
|
||||
@@ -688,6 +706,9 @@ export function createServerInstallContent(opts: {
|
||||
effectiveServerWorldId,
|
||||
serverContextServerData,
|
||||
serverContextWorldName,
|
||||
serverContextWorldGameVersion,
|
||||
serverContextWorldLoader,
|
||||
serverContextWorldLoaderVersion,
|
||||
serverContentProjectIds,
|
||||
queuedServerInstallProjectIds,
|
||||
queuedServerInstallCount,
|
||||
|
||||
Reference in New Issue
Block a user