Fix #319 keep unknown files when importing and downloading a project

This commit is contained in:
Misode
2024-10-04 15:30:35 +02:00
parent 394beeab16
commit 5d08f15006
5 changed files with 23 additions and 9 deletions
@@ -50,10 +50,15 @@ export function ProjectCreation({ onClose }: Props) {
try {
const data = await parseSource(entry[1], 'json')
project.files!.push({ ...file, data })
return
} catch (e) {
console.error(`Failed parsing ${file.type} ${file.id}: ${message(e)}`)
console.warn(`Failed parsing ${file.type} ${file.id}: ${message(e)}`)
}
}
if (project.unknownFiles === undefined) {
project.unknownFiles = []
}
project.unknownFiles.push({ path: entry[0], data: entry[1] })
}))
projectUpdater.current(project)
onClose()
@@ -77,6 +77,9 @@ export function ProjectPanel({ onRename, onCreate, onDeleteProject }: Props) {
if (path === 'pack.mcmeta') hasPack = true
return [[path, stringifySource(file.data)]] as [string, string][]
})
project.unknownFiles?.forEach(({ path, data }) => {
entries.push([path, data])
})
if (!hasPack) {
const pack_format = config.versions.find(v => v.id === version)!.pack_format
entries.push(['pack.mcmeta', stringifySource({ pack: { pack_format, description: '' } })])
+6
View File
@@ -13,6 +13,7 @@ export type Project = {
namespace?: string,
version?: VersionId,
files: ProjectFile[],
unknownFiles?: UnknownFile[],
}
export const DRAFT_PROJECT: Project = {
name: 'Drafts',
@@ -26,6 +27,11 @@ export type ProjectFile = {
data: any,
}
export type UnknownFile = {
path: string,
data: string,
}
export const FilePatterns = [
'worldgen/[a-z_]+',
'tags/worldgen/[a-z_]+',