Skip to content

Commit 95f7ca7

Browse files
committed
Account for deprecated.json translation info file
1 parent 944dc89 commit 95f7ca7

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/app/services/DataFetcher.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import config from '../Config.js'
33
import { Store } from '../Store.js'
44
import { message } from '../Utils.js'
55
import type { BlockStateRegistry, VersionId } from './Schemas.js'
6+
import { checkVersion } from './Schemas.js'
67

78
const CACHE_NAME = 'misode-v2'
89
const CACHE_LATEST_VERSION = 'cached_latest_version'
@@ -124,6 +125,9 @@ export async function fetchItemComponents(versionId: VersionId) {
124125
console.debug(`[fetchItemComponents] ${versionId}`)
125126
const version = config.versions.find(v => v.id === versionId)!
126127
const result = new Map<string, Map<string, unknown>>()
128+
if (!checkVersion(versionId, '1.20.5')) {
129+
return result
130+
}
127131
try {
128132
const data = await cachedFetch<Record<string, Record<string, unknown>>>(`${mcmeta(version, 'summary')}/item_components/data.min.json`)
129133
for (const [id, components] of Object.entries(data)) {
@@ -267,11 +271,28 @@ async function loadImage(src: string) {
267271
}
268272
*/
269273

274+
interface DeprecatedInfo {
275+
removed: string[]
276+
renamed: Record<string, string>
277+
}
278+
270279
export async function fetchLanguage(versionId: VersionId, lang: string = 'en_us') {
271280
const version = config.versions.find(v => v.id === versionId)!
272281
await validateCache(version)
273282
try {
274-
return await cachedFetch<Record<string, string>>(`${mcmeta(version, 'assets')}/assets/minecraft/lang/${lang}.json`)
283+
const translations = await cachedFetch<Record<string, string>>(`${mcmeta(version, 'assets')}/assets/minecraft/lang/${lang}.json`)
284+
if (checkVersion(versionId, '1.21.2')) {
285+
const deprecated = await cachedFetch<DeprecatedInfo>(`${mcmeta(version, 'assets')}/assets/minecraft/lang/deprecated.json`)
286+
for (const key of deprecated.removed) {
287+
delete translations[key]
288+
}
289+
for (const [oldKey, newKey] of Object.entries(deprecated.renamed)) {
290+
const value = translations[oldKey]
291+
delete translations[oldKey]
292+
translations[newKey] = value
293+
}
294+
}
295+
return translations
275296
} catch (e) {
276297
throw new Error(`Error occured while fetching language: ${message(e)}`)
277298
}

0 commit comments

Comments
 (0)