fix wrong cache hit on local dev
This commit is contained in:
parent
51c1346456
commit
2c0b99ffdb
2 changed files with 26 additions and 17 deletions
|
|
@ -1,4 +1,9 @@
|
|||
import { versionsByMinecraftVersion } from 'minecraft-data'
|
||||
import minecraftInitialDataJson from '../generated/minecraft-initial-data.json'
|
||||
import { AuthenticatedAccount } from './react/ServersListProvider'
|
||||
import { setLoadingScreenStatus } from './utils'
|
||||
import { downloadSoundsIfNeeded } from './soundSystem'
|
||||
import { miscUiState } from './globalState'
|
||||
|
||||
export type ConnectOptions = {
|
||||
server?: string
|
||||
|
|
@ -17,3 +22,22 @@ export type ConnectOptions = {
|
|||
authenticatedAccount?: AuthenticatedAccount | true
|
||||
peerOptions?: any
|
||||
}
|
||||
|
||||
export const downloadNeededDataOnConnect = async (version: string) => {
|
||||
// todo expose cache
|
||||
const initialDataVersion = Object.keys(minecraftInitialDataJson)[0]!
|
||||
if (version === initialDataVersion) {
|
||||
// ignore cache hit
|
||||
versionsByMinecraftVersion.pc[initialDataVersion]!.dataVersion!++
|
||||
}
|
||||
setLoadingScreenStatus(`Loading data for ${version}`)
|
||||
if (!document.fonts.check('1em mojangles')) {
|
||||
// todo instead re-render signs on load
|
||||
await document.fonts.load('1em mojangles').catch(() => {
|
||||
console.error('Failed to load font, signs wont be rendered correctly')
|
||||
})
|
||||
}
|
||||
await window._MC_DATA_RESOLVER.promise // ensure data is loaded
|
||||
await downloadSoundsIfNeeded()
|
||||
miscUiState.loadedDataVersion = version
|
||||
}
|
||||
|
|
|
|||
19
src/index.ts
19
src/index.ts
|
|
@ -93,7 +93,7 @@ import { saveToBrowserMemory } from './react/PauseScreen'
|
|||
import { ViewerWrapper } from 'prismarine-viewer/viewer/lib/viewerWrapper'
|
||||
import './devReload'
|
||||
import './water'
|
||||
import { ConnectOptions } from './connect'
|
||||
import { ConnectOptions, downloadNeededDataOnConnect } from './connect'
|
||||
import { ref, subscribe } from 'valtio'
|
||||
import { signInMessageState } from './react/SignInMessageProvider'
|
||||
import { updateAuthenticatedAccountData, updateLoadedServerData } from './react/ServersListProvider'
|
||||
|
|
@ -395,22 +395,7 @@ async function connect (connectOptions: ConnectOptions) {
|
|||
throw new Error('Microsoft authentication is only supported on 1.19.4 - 1.20.6 (at least for now)')
|
||||
}
|
||||
|
||||
// todo expose cache
|
||||
const lastVersion = supportedVersions.at(-1)
|
||||
if (version === lastVersion) {
|
||||
// ignore cache hit
|
||||
versionsByMinecraftVersion.pc[lastVersion]!['dataVersion']!++
|
||||
}
|
||||
setLoadingScreenStatus(`Loading data for ${version}`)
|
||||
if (!document.fonts.check('1em mojangles')) {
|
||||
// todo instead re-render signs on load
|
||||
await document.fonts.load('1em mojangles').catch(() => {
|
||||
console.error('Failed to load font, signs wont be rendered correctly')
|
||||
})
|
||||
}
|
||||
await window._MC_DATA_RESOLVER.promise // ensure data is loaded
|
||||
await downloadSoundsIfNeeded()
|
||||
miscUiState.loadedDataVersion = version
|
||||
await downloadNeededDataOnConnect(version)
|
||||
try {
|
||||
await resourcepackReload(version)
|
||||
} catch (err) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue