Skip to content

Commit

Permalink
fix: Mcbbs modpack preview cannot show
Browse files Browse the repository at this point in the history
  • Loading branch information
ci010 committed May 29, 2023
1 parent 0d5cc89 commit 9301167
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 11 deletions.
25 changes: 19 additions & 6 deletions xmcl-keystone-ui/src/components/StepperModpackContent.vue
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<template>
<div class="flex flex-col h-full overflow-auto">
<StepperModpackContentCurseforge
v-if="!!curseforgeFiles"
:files="curseforgeFiles || []"
v-if="curseforgeFiles.length > 0"
:files="curseforgeFiles"
/>
<InstanceManifestFileTree
v-else-if="ftbFiles.length > 0 || modrinthFiles.length > 0"
v-if="ftbFiles.length > 0 || modrinthFiles.length > 0 || mcbbsAddonFiles.length > 0"
:value="[]"
/>
</div>
</template>
<script lang="ts" setup>
import { FTBFile } from '@xmcl/runtime-api'
import { FTBFile, ModpackFileInfoAddon, ModpackFileInfoCurseforge } from '@xmcl/runtime-api'
import { Template } from '../composables/instanceAdd'
import { InstanceFileNode, provideFileNodes } from '../composables/instanceFiles'
import InstanceManifestFileTree from './InstanceManifestFileTree.vue'
Expand All @@ -24,7 +24,11 @@ const props = defineProps<{
shown: Boolean
}>()
const curseforgeFiles = computed(() => props.modpack?.source.type === 'curseforge' ? props.modpack.source.resource.metadata['curseforge-modpack'].files : undefined)
const mcbbsFiles = computed(() => props.modpack?.source.type === 'mcbbs' ? props.modpack.source.resource.metadata['mcbbs-modpack'].files ?? [] : [])
const mcbbsAddonFiles = computed(() => mcbbsFiles.value.filter((f): f is ModpackFileInfoAddon => f.type === 'addon'))
const mcbbsCurseforgeFiles = computed(() => mcbbsFiles.value.filter((f): f is ModpackFileInfoCurseforge => f.type === 'curse'))
const curseforgeFiles = computed(() => props.modpack?.source.type === 'curseforge' ? props.modpack.source.resource.metadata['curseforge-modpack'].files : mcbbsCurseforgeFiles.value)
const ftbFiles = computed(() => props.modpack?.source.type === 'ftb' ? props.modpack.source.manifest.files : [])
Expand All @@ -45,11 +49,20 @@ provideFileNodes(computed(() => {
size: file.fileSize ?? 0,
}
}
function getMcbbsNode(file: ModpackFileInfoAddon): InstanceFileNode {
return {
id: file.path,
name: basename(file.path),
size: 0,
}
}
if (ftbFiles.value.length > 0) {
return ftbFiles.value.map(getFTBNode)
} else {
} else if (modrinthFiles.value.length > 0) {
return modrinthFiles.value.map(getNode)
} else {
return mcbbsAddonFiles.value.map(getMcbbsNode)
}
}))
Expand Down
8 changes: 3 additions & 5 deletions xmcl-keystone-ui/src/composables/instanceAdd.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,17 @@ export function useAllTemplate(data: InstanceData) {
}
const all = [] as Array<Template>
all.push(...resources.value.map((modpack) => {
if (isCurseforgeModpackResource(modpack)) {
return getCurseforgeTemplate(modpack)
} else if (isMcbbsModpackResource(modpack)) {
if (isMcbbsModpackResource(modpack)) {
return getMcbbsTemplate(modpack)
} else if (isCurseforgeModpackResource(modpack)) {
return getCurseforgeTemplate(modpack)
} else if (isModrinthModpackResource(modpack)) {
return getModrinthTemplate(modpack)
} else if (isRawModpackResource(modpack)) {
return getModpackTemplate(modpack)
}
return undefined
}).filter((v): v is Template => !!v))
// const ftb = await getAllCachedModpackVersions()
// all.push(...ftb.filter(f => f.name && f.targets).map(getFtbTemplate))

for (const c of peerState.connections) {
if (c.sharing) {
Expand Down

0 comments on commit 9301167

Please sign in to comment.