@@ -135,7 +135,6 @@ import {
135135// import { LegacyShopUpgrades } from './types/LegacySynergism';
136136
137137import i18next from 'i18next'
138- import localforage from 'localforage'
139138import { BlueberryUpgrade , blueberryUpgradeData , updateLoadoutHoverClasses } from './BlueberryUpgrades'
140139import { DOMCacheGetOrSet } from './Cache/DOM'
141140import { lastUpdated , prod , testing , version } from './Config'
@@ -174,6 +173,8 @@ import { changeSubTab, changeTab, Tabs } from './Tabs'
174173import { settingAnnotation , toggleIconSet , toggleTheme } from './Themes'
175174import { clearTimeout , clearTimers , setInterval , setTimeout } from './Timers'
176175import type { PlayerSave } from './types/LegacySynergism'
176+ import { getSaveString , safeLocalStorage , setSave } from './ImportExport'
177+ import { patchUrlMappings } from '@discord/embedded-app-sdk'
177178
178179export const player : Player = {
179180 firstPlayed : new Date ( ) . toISOString ( ) ,
@@ -1515,15 +1516,12 @@ export const saveSynergy = async (button?: boolean): Promise<boolean> => {
15151516 const save = btoa ( JSON . stringify ( p ) )
15161517
15171518 if ( save !== null ) {
1518- const saveBlob = new Blob ( [ save ] , { type : 'text/plain' } )
1519-
15201519 // Should prevent overwritting of localforage that is currently used
15211520 if ( ! saveCheck . canSave ) {
15221521 return false
15231522 }
15241523
1525- localStorage . setItem ( 'Synergysave2' , save )
1526- await localforage . setItem < Blob > ( 'Synergysave2' , saveBlob )
1524+ await setSave ( save )
15271525 } else {
15281526 await Alert ( i18next . t ( 'testing.errorSaving' ) )
15291527 return false
@@ -1539,10 +1537,7 @@ export const saveSynergy = async (button?: boolean): Promise<boolean> => {
15391537}
15401538
15411539const loadSynergy = async ( ) => {
1542- const save = ( await localforage . getItem < Blob > ( 'Synergysave2' ) )
1543- ?? localStorage . getItem ( 'Synergysave2' )
1544-
1545- const saveString = typeof save === 'string' ? save : await save ?. text ( )
1540+ const saveString = await getSaveString ( )
15461541 const data = saveString
15471542 ? ( JSON . parse ( atob ( saveString ) ) as PlayerSave & Record < string , unknown > )
15481543 : null
@@ -6194,13 +6189,10 @@ export const reloadShit = async (reset = false) => {
61946189 setTimeout ( res , 0 )
61956190 } )
61966191
6197- const save = ( await localforage . getItem < Blob > ( 'Synergysave2' ) )
6198- ?? localStorage . getItem ( 'Synergysave2' )
6192+ const saveString = await getSaveString ( )
61996193
6200- const saveObject = typeof save === 'string' ? save : await save ?. text ( )
6201-
6202- if ( saveObject ) {
6203- const dec = LZString . decompressFromBase64 ( saveObject )
6194+ if ( saveString ) {
6195+ const dec = LZString . decompressFromBase64 ( saveString )
62046196 const isLZString = dec !== ''
62056197
62066198 if ( isLZString ) {
@@ -6214,10 +6206,8 @@ export const reloadShit = async (reset = false) => {
62146206 return Alert ( i18next . t ( 'save.loadFailed' ) )
62156207 }
62166208
6217- localStorage . clear ( )
6218- const blob = new Blob ( [ saveString ] , { type : 'text/plain' } )
6219- localStorage . setItem ( 'Synergysave2' , saveString )
6220- await localforage . setItem < Blob > ( 'Synergysave2' , blob )
6209+ safeLocalStorage . clear ( )
6210+ await setSave ( saveString )
62216211 await Alert ( i18next . t ( 'main.transferredFromLZ' ) )
62226212 }
62236213
@@ -6284,9 +6274,9 @@ export const reloadShit = async (reset = false) => {
62846274
62856275 setInterval ( cacheReinitialize , 15000 )
62866276
6287- if ( localStorage . getItem ( 'pleaseStar' ) === null ) {
6277+ if ( safeLocalStorage . getItem ( 'pleaseStar' ) === null ) {
62886278 void Alert ( i18next . t ( 'main.starRepo' ) )
6289- localStorage . setItem ( 'pleaseStar' , '' )
6279+ safeLocalStorage . setItem ( 'pleaseStar' , '' )
62906280 }
62916281
62926282 // All versions of Chrome and Firefox supported by the game have this API,
@@ -6309,7 +6299,7 @@ export const reloadShit = async (reset = false) => {
63096299 }
63106300
63116301 const saveType = DOMCacheGetOrSet ( 'saveType' ) as HTMLInputElement
6312- saveType . checked = localStorage . getItem ( 'copyToClipboard' ) !== null
6302+ saveType . checked = safeLocalStorage . getItem ( 'copyToClipboard' ) !== null
63136303}
63146304
63156305function playerNeedsReminderToExport ( ) {
@@ -6319,7 +6309,16 @@ function playerNeedsReminderToExport () {
63196309}
63206310
63216311window . addEventListener ( 'load' , async ( ) => {
6322- await i18nInit ( )
6312+ if ( location . host . endsWith ( '.discordsays.com' ) ) {
6313+ patchUrlMappings ( [
6314+ {
6315+ prefix : '/' ,
6316+ target : 'discord-activities-suck.synergism-cus.pages.dev/'
6317+ }
6318+ ] )
6319+ }
6320+
6321+ await i18nInit ( ) . catch ( ( e ) => console . error ( 'error caught' , e ) )
63236322
63246323 const ver = DOMCacheGetOrSet ( 'versionnumber' )
63256324 const addZero = ( n : number ) => `${ n } ` . padStart ( 2 , '0' )
@@ -6349,7 +6348,7 @@ window.addEventListener('load', async () => {
63496348 corruptionButtonsAdd ( )
63506349 corruptionLoadoutTableCreate ( )
63516350
6352- handleLogin ( ) . catch ( console . error )
6351+ handleLogin ( ) . catch ( ( e ) => console . error ( 'caught error' , e ) )
63536352} )
63546353
63556354window . addEventListener ( 'unload' , ( ) => {
0 commit comments