1
0
mirror of https://github.com/zumbiepig/MineXLauncher.git synced 2025-06-08 08:14:48 +00:00

test offline and pwa

This commit is contained in:
zumbiepig 2024-08-18 20:31:12 -07:00
parent ab0ea362b9
commit acb6902814
12 changed files with 786 additions and 74 deletions

View File

@ -0,0 +1,21 @@
import { readdirSync, statSync, writeFileSync } from 'fs';
import { join } from 'path';
const directoryPath = join(import.meta.dirname, 'public'); // Adjust the path to your assets folder
function getFiles(dir, files_) {
files_ = files_ || [];
const files = readdirSync(dir);
for (let i in files) {
const name = dir + '/' + files[i];
if (statSync(name).isDirectory()) {
getFiles(name, files_);
} else {
files_.push(name.replace(`${import.meta.dirname}/public`, '')); // Adjust the path to match your public folder
}
}
return files_;
}
const cacheAssets = getFiles(directoryPath);
writeFileSync(join(import.meta.dirname, '/public/cacheAssets.json'), JSON.stringify(cacheAssets, null, 2));

View File

@ -5,8 +5,9 @@
"main": "./server.js", "main": "./server.js",
"scripts": { "scripts": {
"start": "node ./server.js", "start": "node ./server.js",
"build": "npm run build:clean && npm run build:compile && npm run build:obfuscate", "build": "npm run build:clean && npm run build:generateCacheAssetsList && npm run build:compile && npm run build:obfuscate",
"build:clean": "rimraf ./public/resources/scripts", "build:clean": "rimraf ./public/resources/scripts ./public/cacheAssets.json",
"build:generateCacheAssetsList": "node ./generateCacheAssetsList.js",
"build:compile": "tsc", "build:compile": "tsc",
"build:obfuscate": "javascript-obfuscator ./public/resources/scripts --output ./public/resources/scripts --options-preset high-obfuscation", "build:obfuscate": "javascript-obfuscator ./public/resources/scripts --output ./public/resources/scripts --options-preset high-obfuscation",
"lint": "eslint ./src", "lint": "eslint ./src",

685
public/cacheAssets.json Normal file
View File

@ -0,0 +1,685 @@
[
"/404.html",
"/game/offline/clients/Astra_Client.html",
"/game/offline/clients/EaglerForge.html",
"/game/offline/clients/Resent_Client.html",
"/game/offline/clients/Shadow_Client.html",
"/game/offline/clients/Starlike_Client.html",
"/game/offline/main/EaglercraftL_1.9.html",
"/game/offline/main/EaglercraftX_1.8.html",
"/game/offline/main/Eaglercraft_1.2.5.html",
"/game/offline/main/Eaglercraft_1.5.html",
"/game/offline/main/Eaglercraft_Indev.html",
"/game/offline/main/Eaglercraft_a1.2.6.html",
"/game/offline/main/Eaglercraft_b1.3.html",
"/game/offline/main/Eaglercraft_b1.7.3.html",
"/game/offline/mobile/EaglerPocketMobile_1.8.8.html",
"/game/web/clients/astra/assets.epk",
"/game/web/clients/astra/classes.js",
"/game/web/clients/astra/index.html",
"/game/web/clients/astra/lang/af_ZA.lang",
"/game/web/clients/astra/lang/ar_SA.lang",
"/game/web/clients/astra/lang/ast_ES.lang",
"/game/web/clients/astra/lang/az_AZ.lang",
"/game/web/clients/astra/lang/bg_BG.lang",
"/game/web/clients/astra/lang/ca_ES.lang",
"/game/web/clients/astra/lang/cs_CZ.lang",
"/game/web/clients/astra/lang/cy_GB.lang",
"/game/web/clients/astra/lang/da_DK.lang",
"/game/web/clients/astra/lang/de_DE.lang",
"/game/web/clients/astra/lang/el_GR.lang",
"/game/web/clients/astra/lang/en_AU.lang",
"/game/web/clients/astra/lang/en_CA.lang",
"/game/web/clients/astra/lang/en_GB.lang",
"/game/web/clients/astra/lang/en_PT.lang",
"/game/web/clients/astra/lang/eo_UY.lang",
"/game/web/clients/astra/lang/es_AR.lang",
"/game/web/clients/astra/lang/es_ES.lang",
"/game/web/clients/astra/lang/es_MX.lang",
"/game/web/clients/astra/lang/es_UY.lang",
"/game/web/clients/astra/lang/es_VE.lang",
"/game/web/clients/astra/lang/et_EE.lang",
"/game/web/clients/astra/lang/eu_ES.lang",
"/game/web/clients/astra/lang/fa_IR.lang",
"/game/web/clients/astra/lang/fi_FI.lang",
"/game/web/clients/astra/lang/fil_PH.lang",
"/game/web/clients/astra/lang/fr_CA.lang",
"/game/web/clients/astra/lang/fr_FR.lang",
"/game/web/clients/astra/lang/ga_IE.lang",
"/game/web/clients/astra/lang/gl_ES.lang",
"/game/web/clients/astra/lang/gv_IM.lang",
"/game/web/clients/astra/lang/he_IL.lang",
"/game/web/clients/astra/lang/hi_IN.lang",
"/game/web/clients/astra/lang/hr_HR.lang",
"/game/web/clients/astra/lang/hu_HU.lang",
"/game/web/clients/astra/lang/hy_AM.lang",
"/game/web/clients/astra/lang/id_ID.lang",
"/game/web/clients/astra/lang/is_IS.lang",
"/game/web/clients/astra/lang/it_IT.lang",
"/game/web/clients/astra/lang/ja_JP.lang",
"/game/web/clients/astra/lang/ka_GE.lang",
"/game/web/clients/astra/lang/ko_KR.lang",
"/game/web/clients/astra/lang/kw_GB.lang",
"/game/web/clients/astra/lang/la_LA.lang",
"/game/web/clients/astra/lang/lb_LU.lang",
"/game/web/clients/astra/lang/lt_LT.lang",
"/game/web/clients/astra/lang/lv_LV.lang",
"/game/web/clients/astra/lang/mi_NZ.lang",
"/game/web/clients/astra/lang/ms_MY.lang",
"/game/web/clients/astra/lang/mt_MT.lang",
"/game/web/clients/astra/lang/nds_DE.lang",
"/game/web/clients/astra/lang/nl_NL.lang",
"/game/web/clients/astra/lang/nn_NO.lang",
"/game/web/clients/astra/lang/no_NO.lang",
"/game/web/clients/astra/lang/oc_FR.lang",
"/game/web/clients/astra/lang/pl_PL.lang",
"/game/web/clients/astra/lang/pt_BR.lang",
"/game/web/clients/astra/lang/pt_PT.lang",
"/game/web/clients/astra/lang/qya_AA.lang",
"/game/web/clients/astra/lang/ro_RO.lang",
"/game/web/clients/astra/lang/ru_RU.lang",
"/game/web/clients/astra/lang/se_NO.lang",
"/game/web/clients/astra/lang/sk_SK.lang",
"/game/web/clients/astra/lang/sl_SI.lang",
"/game/web/clients/astra/lang/sr_SP.lang",
"/game/web/clients/astra/lang/sv_SE.lang",
"/game/web/clients/astra/lang/th_TH.lang",
"/game/web/clients/astra/lang/tlh_AA.lang",
"/game/web/clients/astra/lang/tr_TR.lang",
"/game/web/clients/astra/lang/uk_UA.lang",
"/game/web/clients/astra/lang/val_ES.lang",
"/game/web/clients/astra/lang/vi_VN.lang",
"/game/web/clients/astra/lang/zh_CN.lang",
"/game/web/clients/astra/lang/zh_TW.lang",
"/game/web/clients/eaglerforge/ModAPI.js",
"/game/web/clients/eaglerforge/ModGUI.js",
"/game/web/clients/eaglerforge/ModLoader.js",
"/game/web/clients/eaglerforge/assets.epk",
"/game/web/clients/eaglerforge/classes.js",
"/game/web/clients/eaglerforge/index.html",
"/game/web/clients/eaglerforge/lang/af_ZA.lang",
"/game/web/clients/eaglerforge/lang/ar_SA.lang",
"/game/web/clients/eaglerforge/lang/ast_ES.lang",
"/game/web/clients/eaglerforge/lang/az_AZ.lang",
"/game/web/clients/eaglerforge/lang/bg_BG.lang",
"/game/web/clients/eaglerforge/lang/ca_ES.lang",
"/game/web/clients/eaglerforge/lang/cs_CZ.lang",
"/game/web/clients/eaglerforge/lang/cy_GB.lang",
"/game/web/clients/eaglerforge/lang/da_DK.lang",
"/game/web/clients/eaglerforge/lang/de_DE.lang",
"/game/web/clients/eaglerforge/lang/el_GR.lang",
"/game/web/clients/eaglerforge/lang/en_AU.lang",
"/game/web/clients/eaglerforge/lang/en_CA.lang",
"/game/web/clients/eaglerforge/lang/en_GB.lang",
"/game/web/clients/eaglerforge/lang/en_PT.lang",
"/game/web/clients/eaglerforge/lang/eo_UY.lang",
"/game/web/clients/eaglerforge/lang/es_AR.lang",
"/game/web/clients/eaglerforge/lang/es_ES.lang",
"/game/web/clients/eaglerforge/lang/es_MX.lang",
"/game/web/clients/eaglerforge/lang/es_UY.lang",
"/game/web/clients/eaglerforge/lang/es_VE.lang",
"/game/web/clients/eaglerforge/lang/et_EE.lang",
"/game/web/clients/eaglerforge/lang/eu_ES.lang",
"/game/web/clients/eaglerforge/lang/fa_IR.lang",
"/game/web/clients/eaglerforge/lang/fi_FI.lang",
"/game/web/clients/eaglerforge/lang/fil_PH.lang",
"/game/web/clients/eaglerforge/lang/fr_CA.lang",
"/game/web/clients/eaglerforge/lang/fr_FR.lang",
"/game/web/clients/eaglerforge/lang/ga_IE.lang",
"/game/web/clients/eaglerforge/lang/gl_ES.lang",
"/game/web/clients/eaglerforge/lang/gv_IM.lang",
"/game/web/clients/eaglerforge/lang/he_IL.lang",
"/game/web/clients/eaglerforge/lang/hi_IN.lang",
"/game/web/clients/eaglerforge/lang/hr_HR.lang",
"/game/web/clients/eaglerforge/lang/hu_HU.lang",
"/game/web/clients/eaglerforge/lang/hy_AM.lang",
"/game/web/clients/eaglerforge/lang/id_ID.lang",
"/game/web/clients/eaglerforge/lang/is_IS.lang",
"/game/web/clients/eaglerforge/lang/it_IT.lang",
"/game/web/clients/eaglerforge/lang/ja_JP.lang",
"/game/web/clients/eaglerforge/lang/ka_GE.lang",
"/game/web/clients/eaglerforge/lang/ko_KR.lang",
"/game/web/clients/eaglerforge/lang/kw_GB.lang",
"/game/web/clients/eaglerforge/lang/la_LA.lang",
"/game/web/clients/eaglerforge/lang/lb_LU.lang",
"/game/web/clients/eaglerforge/lang/lt_LT.lang",
"/game/web/clients/eaglerforge/lang/lv_LV.lang",
"/game/web/clients/eaglerforge/lang/mi_NZ.lang",
"/game/web/clients/eaglerforge/lang/ms_MY.lang",
"/game/web/clients/eaglerforge/lang/mt_MT.lang",
"/game/web/clients/eaglerforge/lang/nds_DE.lang",
"/game/web/clients/eaglerforge/lang/nl_NL.lang",
"/game/web/clients/eaglerforge/lang/nn_NO.lang",
"/game/web/clients/eaglerforge/lang/no_NO.lang",
"/game/web/clients/eaglerforge/lang/oc_FR.lang",
"/game/web/clients/eaglerforge/lang/pl_PL.lang",
"/game/web/clients/eaglerforge/lang/pt_BR.lang",
"/game/web/clients/eaglerforge/lang/pt_PT.lang",
"/game/web/clients/eaglerforge/lang/qya_AA.lang",
"/game/web/clients/eaglerforge/lang/ro_RO.lang",
"/game/web/clients/eaglerforge/lang/ru_RU.lang",
"/game/web/clients/eaglerforge/lang/se_NO.lang",
"/game/web/clients/eaglerforge/lang/sk_SK.lang",
"/game/web/clients/eaglerforge/lang/sl_SI.lang",
"/game/web/clients/eaglerforge/lang/sr_SP.lang",
"/game/web/clients/eaglerforge/lang/sv_SE.lang",
"/game/web/clients/eaglerforge/lang/th_TH.lang",
"/game/web/clients/eaglerforge/lang/tlh_AA.lang",
"/game/web/clients/eaglerforge/lang/tr_TR.lang",
"/game/web/clients/eaglerforge/lang/uk_UA.lang",
"/game/web/clients/eaglerforge/lang/val_ES.lang",
"/game/web/clients/eaglerforge/lang/vi_VN.lang",
"/game/web/clients/eaglerforge/lang/zh_CN.lang",
"/game/web/clients/eaglerforge/lang/zh_TW.lang",
"/game/web/clients/resent/assets.epk",
"/game/web/clients/resent/classes.js",
"/game/web/clients/resent/index.html",
"/game/web/clients/resent/lang/af_ZA.lang",
"/game/web/clients/resent/lang/ar_SA.lang",
"/game/web/clients/resent/lang/ast_ES.lang",
"/game/web/clients/resent/lang/az_AZ.lang",
"/game/web/clients/resent/lang/bg_BG.lang",
"/game/web/clients/resent/lang/ca_ES.lang",
"/game/web/clients/resent/lang/cs_CZ.lang",
"/game/web/clients/resent/lang/cy_GB.lang",
"/game/web/clients/resent/lang/da_DK.lang",
"/game/web/clients/resent/lang/de_DE.lang",
"/game/web/clients/resent/lang/el_GR.lang",
"/game/web/clients/resent/lang/en_AU.lang",
"/game/web/clients/resent/lang/en_CA.lang",
"/game/web/clients/resent/lang/en_GB.lang",
"/game/web/clients/resent/lang/en_PT.lang",
"/game/web/clients/resent/lang/eo_UY.lang",
"/game/web/clients/resent/lang/es_AR.lang",
"/game/web/clients/resent/lang/es_ES.lang",
"/game/web/clients/resent/lang/es_MX.lang",
"/game/web/clients/resent/lang/es_UY.lang",
"/game/web/clients/resent/lang/es_VE.lang",
"/game/web/clients/resent/lang/et_EE.lang",
"/game/web/clients/resent/lang/eu_ES.lang",
"/game/web/clients/resent/lang/fa_IR.lang",
"/game/web/clients/resent/lang/fi_FI.lang",
"/game/web/clients/resent/lang/fil_PH.lang",
"/game/web/clients/resent/lang/fr_CA.lang",
"/game/web/clients/resent/lang/fr_FR.lang",
"/game/web/clients/resent/lang/ga_IE.lang",
"/game/web/clients/resent/lang/gl_ES.lang",
"/game/web/clients/resent/lang/gv_IM.lang",
"/game/web/clients/resent/lang/he_IL.lang",
"/game/web/clients/resent/lang/hi_IN.lang",
"/game/web/clients/resent/lang/hr_HR.lang",
"/game/web/clients/resent/lang/hu_HU.lang",
"/game/web/clients/resent/lang/hy_AM.lang",
"/game/web/clients/resent/lang/id_ID.lang",
"/game/web/clients/resent/lang/is_IS.lang",
"/game/web/clients/resent/lang/it_IT.lang",
"/game/web/clients/resent/lang/ja_JP.lang",
"/game/web/clients/resent/lang/ka_GE.lang",
"/game/web/clients/resent/lang/ko_KR.lang",
"/game/web/clients/resent/lang/kw_GB.lang",
"/game/web/clients/resent/lang/la_LA.lang",
"/game/web/clients/resent/lang/lb_LU.lang",
"/game/web/clients/resent/lang/lt_LT.lang",
"/game/web/clients/resent/lang/lv_LV.lang",
"/game/web/clients/resent/lang/mi_NZ.lang",
"/game/web/clients/resent/lang/ms_MY.lang",
"/game/web/clients/resent/lang/mt_MT.lang",
"/game/web/clients/resent/lang/nds_DE.lang",
"/game/web/clients/resent/lang/nl_NL.lang",
"/game/web/clients/resent/lang/nn_NO.lang",
"/game/web/clients/resent/lang/no_NO.lang",
"/game/web/clients/resent/lang/oc_FR.lang",
"/game/web/clients/resent/lang/pl_PL.lang",
"/game/web/clients/resent/lang/pt_BR.lang",
"/game/web/clients/resent/lang/pt_PT.lang",
"/game/web/clients/resent/lang/qya_AA.lang",
"/game/web/clients/resent/lang/ro_RO.lang",
"/game/web/clients/resent/lang/ru_RU.lang",
"/game/web/clients/resent/lang/se_NO.lang",
"/game/web/clients/resent/lang/sk_SK.lang",
"/game/web/clients/resent/lang/sl_SI.lang",
"/game/web/clients/resent/lang/sr_SP.lang",
"/game/web/clients/resent/lang/sv_SE.lang",
"/game/web/clients/resent/lang/th_TH.lang",
"/game/web/clients/resent/lang/tlh_AA.lang",
"/game/web/clients/resent/lang/tr_TR.lang",
"/game/web/clients/resent/lang/uk_UA.lang",
"/game/web/clients/resent/lang/val_ES.lang",
"/game/web/clients/resent/lang/vi_VN.lang",
"/game/web/clients/resent/lang/zh_CN.lang",
"/game/web/clients/resent/lang/zh_TW.lang",
"/game/web/clients/shadow/assets.epk",
"/game/web/clients/shadow/classes.js",
"/game/web/clients/shadow/index.html",
"/game/web/clients/shadow/lang/af_ZA.lang",
"/game/web/clients/shadow/lang/ar_SA.lang",
"/game/web/clients/shadow/lang/ast_ES.lang",
"/game/web/clients/shadow/lang/az_AZ.lang",
"/game/web/clients/shadow/lang/bg_BG.lang",
"/game/web/clients/shadow/lang/ca_ES.lang",
"/game/web/clients/shadow/lang/cs_CZ.lang",
"/game/web/clients/shadow/lang/cy_GB.lang",
"/game/web/clients/shadow/lang/da_DK.lang",
"/game/web/clients/shadow/lang/de_DE.lang",
"/game/web/clients/shadow/lang/el_GR.lang",
"/game/web/clients/shadow/lang/en_AU.lang",
"/game/web/clients/shadow/lang/en_CA.lang",
"/game/web/clients/shadow/lang/en_GB.lang",
"/game/web/clients/shadow/lang/en_PT.lang",
"/game/web/clients/shadow/lang/eo_UY.lang",
"/game/web/clients/shadow/lang/es_AR.lang",
"/game/web/clients/shadow/lang/es_ES.lang",
"/game/web/clients/shadow/lang/es_MX.lang",
"/game/web/clients/shadow/lang/es_UY.lang",
"/game/web/clients/shadow/lang/es_VE.lang",
"/game/web/clients/shadow/lang/et_EE.lang",
"/game/web/clients/shadow/lang/eu_ES.lang",
"/game/web/clients/shadow/lang/fa_IR.lang",
"/game/web/clients/shadow/lang/fi_FI.lang",
"/game/web/clients/shadow/lang/fil_PH.lang",
"/game/web/clients/shadow/lang/fr_CA.lang",
"/game/web/clients/shadow/lang/fr_FR.lang",
"/game/web/clients/shadow/lang/ga_IE.lang",
"/game/web/clients/shadow/lang/gl_ES.lang",
"/game/web/clients/shadow/lang/gv_IM.lang",
"/game/web/clients/shadow/lang/he_IL.lang",
"/game/web/clients/shadow/lang/hi_IN.lang",
"/game/web/clients/shadow/lang/hr_HR.lang",
"/game/web/clients/shadow/lang/hu_HU.lang",
"/game/web/clients/shadow/lang/hy_AM.lang",
"/game/web/clients/shadow/lang/id_ID.lang",
"/game/web/clients/shadow/lang/is_IS.lang",
"/game/web/clients/shadow/lang/it_IT.lang",
"/game/web/clients/shadow/lang/ja_JP.lang",
"/game/web/clients/shadow/lang/ka_GE.lang",
"/game/web/clients/shadow/lang/ko_KR.lang",
"/game/web/clients/shadow/lang/kw_GB.lang",
"/game/web/clients/shadow/lang/la_LA.lang",
"/game/web/clients/shadow/lang/lb_LU.lang",
"/game/web/clients/shadow/lang/lt_LT.lang",
"/game/web/clients/shadow/lang/lv_LV.lang",
"/game/web/clients/shadow/lang/mi_NZ.lang",
"/game/web/clients/shadow/lang/ms_MY.lang",
"/game/web/clients/shadow/lang/mt_MT.lang",
"/game/web/clients/shadow/lang/nds_DE.lang",
"/game/web/clients/shadow/lang/nl_NL.lang",
"/game/web/clients/shadow/lang/nn_NO.lang",
"/game/web/clients/shadow/lang/no_NO.lang",
"/game/web/clients/shadow/lang/oc_FR.lang",
"/game/web/clients/shadow/lang/pl_PL.lang",
"/game/web/clients/shadow/lang/pt_BR.lang",
"/game/web/clients/shadow/lang/pt_PT.lang",
"/game/web/clients/shadow/lang/qya_AA.lang",
"/game/web/clients/shadow/lang/ro_RO.lang",
"/game/web/clients/shadow/lang/ru_RU.lang",
"/game/web/clients/shadow/lang/se_NO.lang",
"/game/web/clients/shadow/lang/sk_SK.lang",
"/game/web/clients/shadow/lang/sl_SI.lang",
"/game/web/clients/shadow/lang/sr_SP.lang",
"/game/web/clients/shadow/lang/sv_SE.lang",
"/game/web/clients/shadow/lang/th_TH.lang",
"/game/web/clients/shadow/lang/tlh_AA.lang",
"/game/web/clients/shadow/lang/tr_TR.lang",
"/game/web/clients/shadow/lang/uk_UA.lang",
"/game/web/clients/shadow/lang/val_ES.lang",
"/game/web/clients/shadow/lang/vi_VN.lang",
"/game/web/clients/shadow/lang/zh_CN.lang",
"/game/web/clients/shadow/lang/zh_TW.lang",
"/game/web/clients/starlike/assets.epk",
"/game/web/clients/starlike/classes.js",
"/game/web/clients/starlike/index.html",
"/game/web/clients/starlike/lang/af_ZA.lang",
"/game/web/clients/starlike/lang/ar_SA.lang",
"/game/web/clients/starlike/lang/ast_ES.lang",
"/game/web/clients/starlike/lang/az_AZ.lang",
"/game/web/clients/starlike/lang/bg_BG.lang",
"/game/web/clients/starlike/lang/ca_ES.lang",
"/game/web/clients/starlike/lang/cs_CZ.lang",
"/game/web/clients/starlike/lang/cy_GB.lang",
"/game/web/clients/starlike/lang/da_DK.lang",
"/game/web/clients/starlike/lang/de_DE.lang",
"/game/web/clients/starlike/lang/el_GR.lang",
"/game/web/clients/starlike/lang/en_AU.lang",
"/game/web/clients/starlike/lang/en_CA.lang",
"/game/web/clients/starlike/lang/en_GB.lang",
"/game/web/clients/starlike/lang/en_PT.lang",
"/game/web/clients/starlike/lang/eo_UY.lang",
"/game/web/clients/starlike/lang/es_AR.lang",
"/game/web/clients/starlike/lang/es_ES.lang",
"/game/web/clients/starlike/lang/es_MX.lang",
"/game/web/clients/starlike/lang/es_UY.lang",
"/game/web/clients/starlike/lang/es_VE.lang",
"/game/web/clients/starlike/lang/et_EE.lang",
"/game/web/clients/starlike/lang/eu_ES.lang",
"/game/web/clients/starlike/lang/fa_IR.lang",
"/game/web/clients/starlike/lang/fi_FI.lang",
"/game/web/clients/starlike/lang/fil_PH.lang",
"/game/web/clients/starlike/lang/fr_CA.lang",
"/game/web/clients/starlike/lang/fr_FR.lang",
"/game/web/clients/starlike/lang/ga_IE.lang",
"/game/web/clients/starlike/lang/gl_ES.lang",
"/game/web/clients/starlike/lang/gv_IM.lang",
"/game/web/clients/starlike/lang/he_IL.lang",
"/game/web/clients/starlike/lang/hi_IN.lang",
"/game/web/clients/starlike/lang/hr_HR.lang",
"/game/web/clients/starlike/lang/hu_HU.lang",
"/game/web/clients/starlike/lang/hy_AM.lang",
"/game/web/clients/starlike/lang/id_ID.lang",
"/game/web/clients/starlike/lang/is_IS.lang",
"/game/web/clients/starlike/lang/it_IT.lang",
"/game/web/clients/starlike/lang/ja_JP.lang",
"/game/web/clients/starlike/lang/ka_GE.lang",
"/game/web/clients/starlike/lang/ko_KR.lang",
"/game/web/clients/starlike/lang/kw_GB.lang",
"/game/web/clients/starlike/lang/la_LA.lang",
"/game/web/clients/starlike/lang/lb_LU.lang",
"/game/web/clients/starlike/lang/lt_LT.lang",
"/game/web/clients/starlike/lang/lv_LV.lang",
"/game/web/clients/starlike/lang/mi_NZ.lang",
"/game/web/clients/starlike/lang/ms_MY.lang",
"/game/web/clients/starlike/lang/mt_MT.lang",
"/game/web/clients/starlike/lang/nds_DE.lang",
"/game/web/clients/starlike/lang/nl_NL.lang",
"/game/web/clients/starlike/lang/nn_NO.lang",
"/game/web/clients/starlike/lang/no_NO.lang",
"/game/web/clients/starlike/lang/oc_FR.lang",
"/game/web/clients/starlike/lang/pl_PL.lang",
"/game/web/clients/starlike/lang/pt_BR.lang",
"/game/web/clients/starlike/lang/pt_PT.lang",
"/game/web/clients/starlike/lang/qya_AA.lang",
"/game/web/clients/starlike/lang/ro_RO.lang",
"/game/web/clients/starlike/lang/ru_RU.lang",
"/game/web/clients/starlike/lang/se_NO.lang",
"/game/web/clients/starlike/lang/sk_SK.lang",
"/game/web/clients/starlike/lang/sl_SI.lang",
"/game/web/clients/starlike/lang/sr_SP.lang",
"/game/web/clients/starlike/lang/sv_SE.lang",
"/game/web/clients/starlike/lang/th_TH.lang",
"/game/web/clients/starlike/lang/tlh_AA.lang",
"/game/web/clients/starlike/lang/tr_TR.lang",
"/game/web/clients/starlike/lang/uk_UA.lang",
"/game/web/clients/starlike/lang/val_ES.lang",
"/game/web/clients/starlike/lang/vi_VN.lang",
"/game/web/clients/starlike/lang/zh_CN.lang",
"/game/web/clients/starlike/lang/zh_TW.lang",
"/game/web/main/1.5.2/assets.epk",
"/game/web/main/1.5.2/classes.js",
"/game/web/main/1.5.2/classes_server.js",
"/game/web/main/1.5.2/eagswebrtc.js",
"/game/web/main/1.5.2/index.html",
"/game/web/main/1.5.2/worker_bootstrap.js",
"/game/web/main/1.8.8/assets.epk",
"/game/web/main/1.8.8/classes.js",
"/game/web/main/1.8.8/index.html",
"/game/web/main/1.8.8/lang/af_ZA.lang",
"/game/web/main/1.8.8/lang/ar_SA.lang",
"/game/web/main/1.8.8/lang/ast_ES.lang",
"/game/web/main/1.8.8/lang/az_AZ.lang",
"/game/web/main/1.8.8/lang/bg_BG.lang",
"/game/web/main/1.8.8/lang/ca_ES.lang",
"/game/web/main/1.8.8/lang/cs_CZ.lang",
"/game/web/main/1.8.8/lang/cy_GB.lang",
"/game/web/main/1.8.8/lang/da_DK.lang",
"/game/web/main/1.8.8/lang/de_DE.lang",
"/game/web/main/1.8.8/lang/el_GR.lang",
"/game/web/main/1.8.8/lang/en_AU.lang",
"/game/web/main/1.8.8/lang/en_CA.lang",
"/game/web/main/1.8.8/lang/en_GB.lang",
"/game/web/main/1.8.8/lang/en_PT.lang",
"/game/web/main/1.8.8/lang/eo_UY.lang",
"/game/web/main/1.8.8/lang/es_AR.lang",
"/game/web/main/1.8.8/lang/es_ES.lang",
"/game/web/main/1.8.8/lang/es_MX.lang",
"/game/web/main/1.8.8/lang/es_UY.lang",
"/game/web/main/1.8.8/lang/es_VE.lang",
"/game/web/main/1.8.8/lang/et_EE.lang",
"/game/web/main/1.8.8/lang/eu_ES.lang",
"/game/web/main/1.8.8/lang/fa_IR.lang",
"/game/web/main/1.8.8/lang/fi_FI.lang",
"/game/web/main/1.8.8/lang/fil_PH.lang",
"/game/web/main/1.8.8/lang/fr_CA.lang",
"/game/web/main/1.8.8/lang/fr_FR.lang",
"/game/web/main/1.8.8/lang/ga_IE.lang",
"/game/web/main/1.8.8/lang/gl_ES.lang",
"/game/web/main/1.8.8/lang/gv_IM.lang",
"/game/web/main/1.8.8/lang/he_IL.lang",
"/game/web/main/1.8.8/lang/hi_IN.lang",
"/game/web/main/1.8.8/lang/hr_HR.lang",
"/game/web/main/1.8.8/lang/hu_HU.lang",
"/game/web/main/1.8.8/lang/hy_AM.lang",
"/game/web/main/1.8.8/lang/id_ID.lang",
"/game/web/main/1.8.8/lang/is_IS.lang",
"/game/web/main/1.8.8/lang/it_IT.lang",
"/game/web/main/1.8.8/lang/ja_JP.lang",
"/game/web/main/1.8.8/lang/ka_GE.lang",
"/game/web/main/1.8.8/lang/ko_KR.lang",
"/game/web/main/1.8.8/lang/kw_GB.lang",
"/game/web/main/1.8.8/lang/la_LA.lang",
"/game/web/main/1.8.8/lang/lb_LU.lang",
"/game/web/main/1.8.8/lang/lt_LT.lang",
"/game/web/main/1.8.8/lang/lv_LV.lang",
"/game/web/main/1.8.8/lang/mi_NZ.lang",
"/game/web/main/1.8.8/lang/ms_MY.lang",
"/game/web/main/1.8.8/lang/mt_MT.lang",
"/game/web/main/1.8.8/lang/nds_DE.lang",
"/game/web/main/1.8.8/lang/nl_NL.lang",
"/game/web/main/1.8.8/lang/nn_NO.lang",
"/game/web/main/1.8.8/lang/no_NO.lang",
"/game/web/main/1.8.8/lang/oc_FR.lang",
"/game/web/main/1.8.8/lang/pl_PL.lang",
"/game/web/main/1.8.8/lang/pt_BR.lang",
"/game/web/main/1.8.8/lang/pt_PT.lang",
"/game/web/main/1.8.8/lang/qya_AA.lang",
"/game/web/main/1.8.8/lang/ro_RO.lang",
"/game/web/main/1.8.8/lang/ru_RU.lang",
"/game/web/main/1.8.8/lang/se_NO.lang",
"/game/web/main/1.8.8/lang/sk_SK.lang",
"/game/web/main/1.8.8/lang/sl_SI.lang",
"/game/web/main/1.8.8/lang/sr_SP.lang",
"/game/web/main/1.8.8/lang/sv_SE.lang",
"/game/web/main/1.8.8/lang/th_TH.lang",
"/game/web/main/1.8.8/lang/tlh_AA.lang",
"/game/web/main/1.8.8/lang/tr_TR.lang",
"/game/web/main/1.8.8/lang/uk_UA.lang",
"/game/web/main/1.8.8/lang/val_ES.lang",
"/game/web/main/1.8.8/lang/vi_VN.lang",
"/game/web/main/1.8.8/lang/zh_CN.lang",
"/game/web/main/1.8.8/lang/zh_TW.lang",
"/game/web/main/1.9.4/assets.epk",
"/game/web/main/1.9.4/classes.js",
"/game/web/main/1.9.4/index.html",
"/game/web/main/1.9.4/lang/af_ZA.lang",
"/game/web/main/1.9.4/lang/ar_SA.lang",
"/game/web/main/1.9.4/lang/ast_ES.lang",
"/game/web/main/1.9.4/lang/az_AZ.lang",
"/game/web/main/1.9.4/lang/bg_BG.lang",
"/game/web/main/1.9.4/lang/ca_ES.lang",
"/game/web/main/1.9.4/lang/cs_CZ.lang",
"/game/web/main/1.9.4/lang/cy_GB.lang",
"/game/web/main/1.9.4/lang/da_DK.lang",
"/game/web/main/1.9.4/lang/de_DE.lang",
"/game/web/main/1.9.4/lang/el_GR.lang",
"/game/web/main/1.9.4/lang/en_AU.lang",
"/game/web/main/1.9.4/lang/en_CA.lang",
"/game/web/main/1.9.4/lang/en_GB.lang",
"/game/web/main/1.9.4/lang/en_PT.lang",
"/game/web/main/1.9.4/lang/eo_UY.lang",
"/game/web/main/1.9.4/lang/es_AR.lang",
"/game/web/main/1.9.4/lang/es_ES.lang",
"/game/web/main/1.9.4/lang/es_MX.lang",
"/game/web/main/1.9.4/lang/es_UY.lang",
"/game/web/main/1.9.4/lang/es_VE.lang",
"/game/web/main/1.9.4/lang/et_EE.lang",
"/game/web/main/1.9.4/lang/eu_ES.lang",
"/game/web/main/1.9.4/lang/fa_IR.lang",
"/game/web/main/1.9.4/lang/fi_FI.lang",
"/game/web/main/1.9.4/lang/fil_PH.lang",
"/game/web/main/1.9.4/lang/fr_CA.lang",
"/game/web/main/1.9.4/lang/fr_FR.lang",
"/game/web/main/1.9.4/lang/ga_IE.lang",
"/game/web/main/1.9.4/lang/gl_ES.lang",
"/game/web/main/1.9.4/lang/gv_IM.lang",
"/game/web/main/1.9.4/lang/he_IL.lang",
"/game/web/main/1.9.4/lang/hi_IN.lang",
"/game/web/main/1.9.4/lang/hr_HR.lang",
"/game/web/main/1.9.4/lang/hu_HU.lang",
"/game/web/main/1.9.4/lang/hy_AM.lang",
"/game/web/main/1.9.4/lang/id_ID.lang",
"/game/web/main/1.9.4/lang/is_IS.lang",
"/game/web/main/1.9.4/lang/it_IT.lang",
"/game/web/main/1.9.4/lang/ja_JP.lang",
"/game/web/main/1.9.4/lang/ka_GE.lang",
"/game/web/main/1.9.4/lang/ko_KR.lang",
"/game/web/main/1.9.4/lang/kw_GB.lang",
"/game/web/main/1.9.4/lang/la_LA.lang",
"/game/web/main/1.9.4/lang/lb_LU.lang",
"/game/web/main/1.9.4/lang/lt_LT.lang",
"/game/web/main/1.9.4/lang/lv_LV.lang",
"/game/web/main/1.9.4/lang/mi_NZ.lang",
"/game/web/main/1.9.4/lang/ms_MY.lang",
"/game/web/main/1.9.4/lang/mt_MT.lang",
"/game/web/main/1.9.4/lang/nds_DE.lang",
"/game/web/main/1.9.4/lang/nl_NL.lang",
"/game/web/main/1.9.4/lang/nn_NO.lang",
"/game/web/main/1.9.4/lang/no_NO.lang",
"/game/web/main/1.9.4/lang/oc_FR.lang",
"/game/web/main/1.9.4/lang/pl_PL.lang",
"/game/web/main/1.9.4/lang/pt_BR.lang",
"/game/web/main/1.9.4/lang/pt_PT.lang",
"/game/web/main/1.9.4/lang/qya_AA.lang",
"/game/web/main/1.9.4/lang/ro_RO.lang",
"/game/web/main/1.9.4/lang/ru_RU.lang",
"/game/web/main/1.9.4/lang/se_NO.lang",
"/game/web/main/1.9.4/lang/sk_SK.lang",
"/game/web/main/1.9.4/lang/sl_SI.lang",
"/game/web/main/1.9.4/lang/sr_SP.lang",
"/game/web/main/1.9.4/lang/sv_SE.lang",
"/game/web/main/1.9.4/lang/th_TH.lang",
"/game/web/main/1.9.4/lang/tlh_AA.lang",
"/game/web/main/1.9.4/lang/tr_TR.lang",
"/game/web/main/1.9.4/lang/uk_UA.lang",
"/game/web/main/1.9.4/lang/val_ES.lang",
"/game/web/main/1.9.4/lang/vi_VN.lang",
"/game/web/main/1.9.4/lang/zh_CN.lang",
"/game/web/main/1.9.4/lang/zh_TW.lang",
"/game/web/main/a1.2.6/index.html",
"/game/web/main/a1.2.6/js/app.js",
"/game/web/main/a1.2.6/resources.mc",
"/game/web/main/b1.3/assets.epk",
"/game/web/main/b1.3/classes.js",
"/game/web/main/b1.3/index.html",
"/game/web/main/b1.7.3/index.html",
"/game/web/main/b1.7.3/js/app.js",
"/game/web/main/b1.7.3/js/app.js.map",
"/game/web/main/b1.7.3/resources.mc",
"/game/web/main/classic/app.js",
"/game/web/main/classic/index.html",
"/game/web/main/classic/resources.mc",
"/game/web/main/indev/app.js",
"/game/web/main/indev/index.html",
"/game/web/main/indev/resources.mc",
"/game/web/main/infdev/app.js",
"/game/web/main/infdev/index.html",
"/game/web/main/infdev/resources.epk",
"/home/archive/index.html",
"/home/clients/index.html",
"/home/downloads/index.html",
"/home/game/index.html",
"/index.html",
"/manifest.json",
"/mobile/index.html",
"/mods/client/index.html",
"/mods/mods/index.html",
"/mods/resourcepacks/index.html",
"/offline.html",
"/resources/fonts/Minecraftia-Regular.ttf",
"/resources/images/backgrounds/themes/campfire.webp",
"/resources/images/backgrounds/themes/cherry-blossom.webp",
"/resources/images/backgrounds/themes/nether.webp",
"/resources/images/backgrounds/themes/overworld.webp",
"/resources/images/backgrounds/themes/retro.webp",
"/resources/images/backgrounds/themes/starfall.webp",
"/resources/images/backgrounds/themes/the-end.webp",
"/resources/images/covers/clients.webp",
"/resources/images/covers/eaglerforge.webp",
"/resources/images/covers/minecraft.webp",
"/resources/images/icons/clients/1.9.4.webp",
"/resources/images/icons/clients/all.webp",
"/resources/images/icons/clients/astra.webp",
"/resources/images/icons/clients/eagler.webp",
"/resources/images/icons/clients/eaglerforge.webp",
"/resources/images/icons/clients/eaglermobile.webp",
"/resources/images/icons/clients/eaglerpocketmobile.webp",
"/resources/images/icons/clients/resent.webp",
"/resources/images/icons/clients/shadow.webp",
"/resources/images/icons/clients/starlike.webp",
"/resources/images/icons/favicon.webp",
"/resources/images/icons/loading.webp",
"/resources/images/icons/minexlauncher.webp",
"/resources/images/icons/nav/game.webp",
"/resources/images/icons/nav/mods.webp",
"/resources/images/icons/nav/servers.webp",
"/resources/images/icons/nav/settings.webp",
"/resources/images/icons/nav/updates.webp",
"/resources/manifest/icons/any/192x192.webp",
"/resources/manifest/icons/any/512x512.webp",
"/resources/manifest/icons/maskable/2275x2275.webp",
"/resources/manifest/screenshots/home.webp",
"/resources/mods/data.json",
"/resources/mods/downloads/autoclicker.js",
"/resources/mods/downloads/autofish.js",
"/resources/mods/downloads/barebones-bossbars.zip",
"/resources/mods/downloads/barneys-music-mod.js",
"/resources/mods/downloads/blink.js",
"/resources/mods/downloads/blur.js",
"/resources/mods/downloads/burmod.js",
"/resources/mods/downloads/chat-commands-mod.js",
"/resources/mods/downloads/chat-shortcuts.js",
"/resources/mods/downloads/daggers.zip",
"/resources/mods/downloads/faithful-32x.zip",
"/resources/mods/downloads/fresheaglerui.js",
"/resources/mods/downloads/fullbright.js",
"/resources/mods/downloads/grapplehook.js",
"/resources/mods/downloads/jetpack.js",
"/resources/mods/downloads/low-on-fire.zip",
"/resources/mods/downloads/nofall.js",
"/resources/mods/downloads/semiautologin.js",
"/resources/mods/downloads/serified-font.zip",
"/resources/mods/downloads/speed-mod.js",
"/resources/mods/downloads/statshud.js",
"/resources/mods/downloads/xray.js",
"/resources/mods/icons/all.webp",
"/resources/mods/icons/autoclicker.webp",
"/resources/mods/icons/barebones-bossbars.webp",
"/resources/mods/icons/barneys-music-mod.webp",
"/resources/mods/icons/blur.webp",
"/resources/mods/icons/daggers.webp",
"/resources/mods/icons/faithful-32x.webp",
"/resources/mods/icons/fullbright.webp",
"/resources/mods/icons/grapplehook.webp",
"/resources/mods/icons/jetpack.webp",
"/resources/mods/icons/low-on-fire.webp",
"/resources/mods/icons/serified-font.webp",
"/resources/mods/icons/speed-mod.webp",
"/resources/mods/icons/statshud.webp",
"/resources/mods/icons/xray.webp",
"/resources/styles/eagler.css",
"/resources/styles/index.css",
"/resources/styles/mobile.css",
"/resources/styles/themes/campfire.css",
"/resources/styles/themes/cherry-blossom.css",
"/resources/styles/themes/default.css",
"/resources/styles/themes/hyperdark.css",
"/resources/styles/themes/light.css",
"/resources/styles/themes/nether.css",
"/resources/styles/themes/overworld.css",
"/resources/styles/themes/retro.css",
"/resources/styles/themes/starfall.css",
"/resources/styles/themes/the-end.css",
"/servers/index.html",
"/service-worker.js",
"/settings/index.html",
"/sw-register.js",
"/updates/index.html",
"/welcome.html"
]

View File

@ -9,7 +9,7 @@
<link rel="manifest" href="/manifest.json" /> <link rel="manifest" href="/manifest.json" />
<link rel="canonical" href="https://launcher.orionzleon.me/" /> <link rel="canonical" href="https://launcher.orionzleon.me/" />
<meta name="theme-color" content="#333" /> <meta name="theme-color" content="#333" />
<meta name="description" content="Custom launcher for Eaglercraft, which contains many versions and clients." /> <meta name="description" content="MineXLauncher is a custom launcher for Eaglercraft that has many versions and clients." />
<meta <meta
name="keywords" name="keywords"
content="minex, minexlauncher, launcher, custom launcher, modded minecraft, modded, minecraft, minecraft eaglercraft, eaglercraft, eaglercraftx, eaglercraftl, eagler, eaglerx, eaglerl, download, unblocked, minecraft versions, 1.2.5, 1.5.2, 1.5, 1.8, 1.8.8, 1.9, 1.9.4, 1.12, 1.3, 1.7.3, b1.3, b1.7.3, alpha, alpha 1.2.6, beta, beta 1.3, beta 1.7.3, a1.2.6, resent, shadow, client, resent client, shadow client, cracked, crack, cracked minecraft, hack, hacked, hacks, hacked client, hack client, free minecraft, pvp, minecraft download, offline, online, web, host, hosted, servers, multiplayer, custom launcher, skins, packs, textures, resource, mods, mod, mod download, pack download, texture download, texture pack download, fps, high fps, better fps, high fps, speed, fast, faster, lag, laggy, no lag, eaglerforge, forge, javascript, hack launcher, exploits, cheats, grief, griefing, mine" content="minex, minexlauncher, launcher, custom launcher, modded minecraft, modded, minecraft, minecraft eaglercraft, eaglercraft, eaglercraftx, eaglercraftl, eagler, eaglerx, eaglerl, download, unblocked, minecraft versions, 1.2.5, 1.5.2, 1.5, 1.8, 1.8.8, 1.9, 1.9.4, 1.12, 1.3, 1.7.3, b1.3, b1.7.3, alpha, alpha 1.2.6, beta, beta 1.3, beta 1.7.3, a1.2.6, resent, shadow, client, resent client, shadow client, cracked, crack, cracked minecraft, hack, hacked, hacks, hacked client, hack client, free minecraft, pvp, minecraft download, offline, online, web, host, hosted, servers, multiplayer, custom launcher, skins, packs, textures, resource, mods, mod, mod download, pack download, texture download, texture pack download, fps, high fps, better fps, high fps, speed, fast, faster, lag, laggy, no lag, eaglerforge, forge, javascript, hack launcher, exploits, cheats, grief, griefing, mine"
@ -18,7 +18,7 @@
<meta property="og:type" content="website" /> <meta property="og:type" content="website" />
<meta property="og:image" content="/resources/images/icons/favicon.webp" /> <meta property="og:image" content="/resources/images/icons/favicon.webp" />
<meta property="og:url" content="https://launcher.orionzleon.me/" /> <meta property="og:url" content="https://launcher.orionzleon.me/" />
<meta property="og:description" content="Custom launcher for Eaglercraft, which contains many versions and clients." /> <meta property="og:description" content="MineXLauncher is a custom launcher for Eaglercraft that has many versions and clients." />
<meta property="og:locale" content="en-US" /> <meta property="og:locale" content="en-US" />
<script src="/resources/scripts/google-tag.js"></script> <script src="/resources/scripts/google-tag.js"></script>
<script src="/sw-register.js"></script> <script src="/sw-register.js"></script>

View File

@ -1,7 +1,7 @@
{ {
"name": "MineXLauncher", "name": "MineXLauncher",
"short_name": "MineX", "short_name": "MineX",
"description": "Custom launcher for Eaglercraft, which contains many versions and clients.", "description": "MineXLauncher is a custom launcher for Eaglercraft that has many versions and clients.",
"id": "/", "id": "/",
"start_url": "/", "start_url": "/",
"theme_color": "#333", "theme_color": "#333",
@ -12,29 +12,28 @@
"categories": ["games"], "categories": ["games"],
"icons": [ "icons": [
{ {
"src": "/resources/images/icons/minexlauncher.webp", "src": "/resources/manifest/icons/any/192x192.webp",
"sizes": "192x192 512x512 2048x2048", "sizes": "192x192",
"type": "image/webp" "type": "image/webp"
}, },
{ {
"src": "/resources/manifest/icons/maskable-2275x2275.webp", "src": "/resources/manifest/icons/any/512x512.webp",
"sizes": "192x192 512x512 2275x2275", "sizes": "512x512",
"type": "image/webp"
},
{
"src": "/resources/manifest/icons/maskable/2275x2275.webp",
"sizes": "2275x2275",
"type": "image/webp", "type": "image/webp",
"purpose": "maskable" "purpose": "maskable"
} }
], ],
"screenshots": [ "screenshots": [
{ {
"src": "/resources/manifest/screenshots/desktop/later.webp", "src": "/resources/manifest/screenshots/home.webp",
"sizes": "1280x720", "sizes": "1366x768",
"type": "image/webp", "type": "image/webp",
"form_factor": "wide" "form_factor": "wide"
},
{
"src": "/resources/manifest/screenshots/mobile/later.webp",
"sizes": "1280x720",
"type": "image/webp",
"form_factor": "narrow"
} }
] ]
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 436 KiB

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 KiB

View File

@ -1,49 +1,34 @@
const cacheAssets = [ const cacheVersion = 'v1.5';
'/offline.html', const cacheName = `minexlauncher-${cacheVersion}`;
'/resources/images/icons/favicon.webp',
'/resources/scripts/google-tag.js',
'/resources/scripts/main.js',
'/resources/styles/mobile.css',
'/resources/styles/themes/default.css',
'/resources/styles/themes/light.css',
'/resources/styles/themes/hyperdark.css',
'/resources/styles/themes/overworld.css',
'/resources/styles/themes/nether.css',
'/resources/styles/themes/the-end.css',
'/resources/styles/themes/cherry-blossom.css',
'/resources/styles/themes/retro.css',
'/resources/styles/themes/starfall.css',
'/resources/styles/themes/campfire.css',
'/resources/images/backgrounds/themes/overworld.webp',
'/resources/images/backgrounds/themes/nether.webp',
'/resources/images/backgrounds/themes/the-end.webp',
'/resources/images/backgrounds/themes/cherry-blossom.webp',
'/resources/images/backgrounds/themes/retro.webp',
'/resources/images/backgrounds/themes/starfall.webp',
'/resources/images/backgrounds/themes/campfire.webp',
];
self.addEventListener('install', (event) => { self.addEventListener('install', (event) => {
event.waitUntil( event.waitUntil(
caches.delete('minexlauncher'), caches.open(cacheName).then(async (cache) => {
caches.open('minexlauncher').then(async (cache) => { const response = await fetch('/cacheAssets.json');
const cacheAssets = await response.json();
return await cache.addAll(cacheAssets); return await cache.addAll(cacheAssets);
}) })
); );
}); });
self.addEventListener('fetch', (event) => { self.addEventListener('activate', (event) => {
if (event.request.mode === 'navigate') { event.waitUntil(
event.respondWith( caches.keys().then((keyList) => {
fetch(event.request).catch(() => { return Promise.all(
return caches.match('/offline.html'); keyList.map((key) => {
}) if (key !== cacheName) {
); return caches.delete(key);
} else { }
event.respondWith( })
fetch(event.request).catch(() => { );
return caches.match(event.request); })
}) );
); });
}
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.open(cacheName).then(async (cache) => {
return (await cache.match(event.request)) || fetch(event.request);
})
);
}); });

View File

@ -1,5 +1,13 @@
interface BeforeInstallPromptEvent extends Event {
readonly platforms: string[];
readonly userChoice: Promise<{ outcome: 'accepted' | 'dismissed'; platform: string }>;
prompt(): Promise<{ outcome: 'accepted' | 'dismissed'; platform: string }>;
}
let selectedVersion: string | undefined; let selectedVersion: string | undefined;
const launcherVersion = '1.5'; const launcherVersion = '1.5';
// eslint-disable-next-line @typescript-eslint/no-unused-vars
let installPwaEvent: BeforeInstallPromptEvent;
const theme = { const theme = {
load: function (themeToLoad?: string) { load: function (themeToLoad?: string) {
@ -265,23 +273,22 @@ const detect = {
}, },
}; };
if (detect.mobile()) { if (window.location.pathname === '/') {
const link = document.createElement('link'); window.addEventListener('beforeinstallprompt', (event) => {
link.rel = 'stylesheet'; installPwaEvent = event as BeforeInstallPromptEvent;
link.href = '/resources/styles/mobile.css'; });
document.head.appendChild(link); } else {
} document.addEventListener('DOMContentLoaded', () => {
theme.load(); // @ts-expect-error 123
delete window.installPwaEvent;
if (window.location.pathname !== '/') {
document.addEventListener('DOMContentLoaded', function () {
const profileName = document.getElementById('profile-name'); const profileName = document.getElementById('profile-name');
if (profileName) { if (profileName) {
profileName.textContent = storage.local.get('username'); profileName.textContent = storage.local.get('username');
} }
}); });
document.addEventListener('DOMContentLoaded', function () { document.addEventListener('DOMContentLoaded', () => {
const lastVersion = storage.local.get('lastVersion'); const lastVersion = storage.local.get('lastVersion');
if (lastVersion !== null && lastVersion < launcherVersion) { if (lastVersion !== null && lastVersion < launcherVersion) {
alert(`MineXLauncher has been updated to v${launcherVersion}! alert(`MineXLauncher has been updated to v${launcherVersion}!
@ -292,3 +299,11 @@ Changes in v${launcherVersion}:
} }
}); });
} }
if (detect.mobile()) {
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = '/resources/styles/mobile.css';
document.head.appendChild(link);
}
theme.load();

View File

@ -1,5 +1,5 @@
if (window.location.pathname === '/settings/') { if (window.location.pathname === '/settings/') {
document.addEventListener('DOMContentLoaded', function () { document.addEventListener('DOMContentLoaded', () => {
const profileName = document.getElementById('profile-name'); const profileName = document.getElementById('profile-name');
const usernameInput = document.getElementById('username-input') as HTMLInputElement; const usernameInput = document.getElementById('username-input') as HTMLInputElement;
const themeSelect = document.getElementById('theme-select') as HTMLSelectElement; const themeSelect = document.getElementById('theme-select') as HTMLSelectElement;
@ -7,7 +7,7 @@ if (window.location.pathname === '/settings/') {
usernameInput.placeholder = storage.local.get('username') ?? ''; usernameInput.placeholder = storage.local.get('username') ?? '';
themeSelect.value = storage.local.get('theme') ?? ''; themeSelect.value = storage.local.get('theme') ?? '';
usernameInput.addEventListener('input', function () { usernameInput.addEventListener('input', () => {
let username = usernameInput.value.replace(/[^A-Za-z0-9]/g, '_').substring(0, 16); let username = usernameInput.value.replace(/[^A-Za-z0-9]/g, '_').substring(0, 16);
usernameInput.value = username; usernameInput.value = username;
while (username.length < 3) { while (username.length < 3) {
@ -19,28 +19,28 @@ if (window.location.pathname === '/settings/') {
} }
}); });
themeSelect.addEventListener('change', function () { themeSelect.addEventListener('change', () => {
theme.set(themeSelect.value); theme.set(themeSelect.value);
}); });
}); });
} }
if (window.location.pathname === '/welcome.html') { if (window.location.pathname === '/welcome.html') {
document.addEventListener('DOMContentLoaded', function () { document.addEventListener('DOMContentLoaded', () => {
const setupForm = document.getElementById('setup-form') as HTMLFormElement; const setupForm = document.getElementById('setup-form') as HTMLFormElement;
const usernameInput = document.getElementById('username-input') as HTMLInputElement; const usernameInput = document.getElementById('username-input') as HTMLInputElement;
const themeSelect = document.getElementById('theme-select') as HTMLSelectElement; const themeSelect = document.getElementById('theme-select') as HTMLSelectElement;
usernameInput.addEventListener('input', function () { usernameInput.addEventListener('input', () => {
const username = usernameInput.value.replace(/[^A-Za-z0-9]/g, '_').substring(0, 16); const username = usernameInput.value.replace(/[^A-Za-z0-9]/g, '_').substring(0, 16);
usernameInput.value = username; usernameInput.value = username;
}); });
themeSelect.addEventListener('change', function () { themeSelect.addEventListener('change', () => {
theme.load(themeSelect.value); theme.load(themeSelect.value);
}); });
setupForm.addEventListener('submit', function (event) { setupForm.addEventListener('submit', (event) => {
event.preventDefault(); event.preventDefault();
let username = usernameInput.value.replace(/[^A-Za-z0-9]/g, '_').substring(0, 16); let username = usernameInput.value.replace(/[^A-Za-z0-9]/g, '_').substring(0, 16);
@ -56,6 +56,12 @@ if (window.location.pathname === '/welcome.html') {
storage.local.set('username', username); storage.local.set('username', username);
storage.local.set('theme', themeSelect.value); storage.local.set('theme', themeSelect.value);
storage.local.set('lastVersion', launcherVersion); storage.local.set('lastVersion', launcherVersion);
try {
// @ts-expect-error 123
window.top?.installPwaEvent.prompt();
} catch (error) {
console.warn('Failed to prompt PWA install:', error);
}
// @ts-expect-error 123 // @ts-expect-error 123
window.top.location.href = '/'; window.top.location.href = '/';
} }