From b0a03d94c86eb5acc5f66861649a0be6b1551123 Mon Sep 17 00:00:00 2001 From: zumbiepig <121742281+zumbiepig@users.noreply.github.com> Date: Sat, 17 Aug 2024 10:43:32 -0700 Subject: [PATCH] . --- public/index.html | 1 + public/manifest.json | 19 ++ public/mods/client/index.html | 2 +- public/mods/mods/index.html | 2 +- public/mods/resourcepacks/index.html | 2 +- public/resources/data/mods.json | 226 ------------------ .../images/icons/minexlauncher-192x192.webp | Bin 0 -> 11562 bytes .../images/icons/minexlauncher-512x512.webp | Bin 0 -> 31826 bytes public/resources/mods/data.json | 183 ++++++++++++++ .../mods/{ => downloads}/autoclicker.js | 0 .../{autofishmod.js => downloads/autofish.js} | 0 .../downloads}/barebones-bossbars.zip | Bin .../barneys-music-mod.js} | 0 .../mods/{blinkmod.js => downloads/blink.js} | 0 public/resources/mods/{ => downloads}/blur.js | 0 .../resources/mods/{ => downloads}/burmod.js | 0 .../chat-commands-mod.js} | 0 .../chat-shortcuts.js} | 0 .../downloads}/daggers.zip | Bin .../downloads}/faithful-32x.zip | Bin .../fresheaglerui.js} | 0 .../mods/{ => downloads}/fullbright.js | 0 .../grapplehook.js} | 0 .../resources/mods/{ => downloads}/jetpack.js | 0 .../downloads}/low-on-fire.zip | Bin .../{nofallmod.js => downloads/nofall.js} | 0 .../semiautologin.js} | 0 .../downloads}/serified-font.zip | Bin .../{speedmod.js => downloads/speed-mod.js} | 0 .../mods/{ => downloads}/statshud.js | 0 .../mods/{xraymod.js => downloads/xray.js} | 0 .../icons/mods => mods/icons}/all.webp | Bin .../mods => mods/icons}/autoclicker.webp | Bin .../icons}/barebones-bossbars.webp | Bin .../icons/barneys-music-mod.webp} | Bin .../icons/mods => mods/icons}/blur.webp | Bin .../resourcepacks => mods/icons}/daggers.webp | Bin .../icons}/faithful-32x.webp | Bin .../icons/mods => mods/icons}/fullbright.webp | Bin .../icons/grapplehook.webp} | Bin .../icons/mods => mods/icons}/jetpack.webp | Bin .../icons}/low-on-fire.webp | Bin .../icons}/serified-font.webp | Bin .../icons/speed-mod.webp} | Bin .../icons/mods => mods/icons}/statshud.webp | Bin .../xraymod.webp => mods/icons/xray.webp} | Bin public/service-worker.js | 28 +-- src/resources/scripts/mods/mods.ts | 36 +-- src/resources/scripts/mods/resourcepacks.ts | 40 +--- 49 files changed, 234 insertions(+), 305 deletions(-) create mode 100644 public/manifest.json delete mode 100644 public/resources/data/mods.json create mode 100644 public/resources/images/icons/minexlauncher-192x192.webp create mode 100644 public/resources/images/icons/minexlauncher-512x512.webp create mode 100644 public/resources/mods/data.json rename public/resources/mods/{ => downloads}/autoclicker.js (100%) rename public/resources/mods/{autofishmod.js => downloads/autofish.js} (100%) rename public/resources/{resourcepacks => mods/downloads}/barebones-bossbars.zip (100%) rename public/resources/mods/{barneysmusicmod.js => downloads/barneys-music-mod.js} (100%) rename public/resources/mods/{blinkmod.js => downloads/blink.js} (100%) rename public/resources/mods/{ => downloads}/blur.js (100%) rename public/resources/mods/{ => downloads}/burmod.js (100%) rename public/resources/mods/{chatcmd.js => downloads/chat-commands-mod.js} (100%) rename public/resources/mods/{chatshortcutsmod.js => downloads/chat-shortcuts.js} (100%) rename public/resources/{resourcepacks => mods/downloads}/daggers.zip (100%) rename public/resources/{resourcepacks => mods/downloads}/faithful-32x.zip (100%) rename public/resources/mods/{freshui.js => downloads/fresheaglerui.js} (100%) rename public/resources/mods/{ => downloads}/fullbright.js (100%) rename public/resources/mods/{graplehookmod.js => downloads/grapplehook.js} (100%) rename public/resources/mods/{ => downloads}/jetpack.js (100%) rename public/resources/{resourcepacks => mods/downloads}/low-on-fire.zip (100%) rename public/resources/mods/{nofallmod.js => downloads/nofall.js} (100%) rename public/resources/mods/{autologin.js => downloads/semiautologin.js} (100%) rename public/resources/{resourcepacks => mods/downloads}/serified-font.zip (100%) rename public/resources/mods/{speedmod.js => downloads/speed-mod.js} (100%) rename public/resources/mods/{ => downloads}/statshud.js (100%) rename public/resources/mods/{xraymod.js => downloads/xray.js} (100%) rename public/resources/{images/icons/mods => mods/icons}/all.webp (100%) rename public/resources/{images/icons/mods => mods/icons}/autoclicker.webp (100%) rename public/resources/{images/icons/resourcepacks => mods/icons}/barebones-bossbars.webp (100%) rename public/resources/{images/icons/mods/barneysmusicmod.webp => mods/icons/barneys-music-mod.webp} (100%) rename public/resources/{images/icons/mods => mods/icons}/blur.webp (100%) rename public/resources/{images/icons/resourcepacks => mods/icons}/daggers.webp (100%) rename public/resources/{images/icons/resourcepacks => mods/icons}/faithful-32x.webp (100%) rename public/resources/{images/icons/mods => mods/icons}/fullbright.webp (100%) rename public/resources/{images/icons/mods/graplehookmod.webp => mods/icons/grapplehook.webp} (100%) rename public/resources/{images/icons/mods => mods/icons}/jetpack.webp (100%) rename public/resources/{images/icons/resourcepacks => mods/icons}/low-on-fire.webp (100%) rename public/resources/{images/icons/resourcepacks => mods/icons}/serified-font.webp (100%) rename public/resources/{images/icons/mods/speedmod.webp => mods/icons/speed-mod.webp} (100%) rename public/resources/{images/icons/mods => mods/icons}/statshud.webp (100%) rename public/resources/{images/icons/mods/xraymod.webp => mods/icons/xray.webp} (100%) diff --git a/public/index.html b/public/index.html index f605899..79dc0cb 100644 --- a/public/index.html +++ b/public/index.html @@ -6,6 +6,7 @@ MineXLauncher + diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..74daff1 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,19 @@ +{ + "name": "MineXLauncher", + "icons": [ + { + "src": "/resources/images/icons/minexlauncher-192x192.webp", + "sizes": "192x192", + "type": "image/webp" + }, + { + "src": "/resources/images/icons/minexlauncher-512x512.webp", + "sizes": "512x512", + "type": "image/webp" + } + ], + "start_url": "/", + "display": "standalone", + "background_color": "#333", + "theme_color": "#333" +} diff --git a/public/mods/client/index.html b/public/mods/client/index.html index 230d662..e259416 100644 --- a/public/mods/client/index.html +++ b/public/mods/client/index.html @@ -47,7 +47,7 @@
diff --git a/public/mods/mods/index.html b/public/mods/mods/index.html index 294179b..8ca0879 100644 --- a/public/mods/mods/index.html +++ b/public/mods/mods/index.html @@ -48,7 +48,7 @@
diff --git a/public/mods/resourcepacks/index.html b/public/mods/resourcepacks/index.html index 8406880..afe8bfa 100644 --- a/public/mods/resourcepacks/index.html +++ b/public/mods/resourcepacks/index.html @@ -48,7 +48,7 @@
diff --git a/public/resources/data/mods.json b/public/resources/data/mods.json deleted file mode 100644 index aa0419a..0000000 --- a/public/resources/data/mods.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "mods": [ - { - "modId": "burmod", - "displayName": "Burmod WIP", - "description": "client for eaglerforge (v0.2)", - "icon": "/resources/images/icons/mods/all.webp", - "author": "Murturtle", - "authorLink": "https://github.com/Murturtle", - "repoLink": "https://github.com/Murturtle/Burmod", - "downloadLink": "/resources/mods/burmod.js" - }, - { - "modId": "statshud", - "displayName": "StatsHud", - "author": "Neverflagastralis", - "authorLink": "https://github.com/AstralisLLC", - "description": "An all-new StatsHud, soon to be updated with customization functionality!", - "icon": "/resources/images/icons/mods/statshud.webp", - "repoLink": "https://github.com/AstralisLLC/EaglerForge-Mods/blob/main/StatsHudV3.js", - "downloadLink": "/resources/mods/statshud.js" - }, - { - "modId": "freshui", - "displayName": "FreshEaglerUI", - "author": "Murturtle", - "authorLink": "https://github.com/Murturtle", - "description": "Makes the UIs slide in and re works the main screen!", - "icon": "/resources/images/icons/mods/all.webp", - "repoLink": "https://github.com/Murturtle/MursMods/blob/main/FreshEaglerUI.js", - "downloadLink": "/resources/mods/freshui.js" - }, - { - "modId": "chatcmd", - "displayName": "Chat commands mod", - "author": "Neverflagastralis", - "authorLink": "https://github.com/AstralisLLC", - "description": "An open source mod with a built in customizable bug reports system!", - "icon": "/resources/images/icons/mods/all.webp", - "repoLink": "https://github.com/AstralisLLC/EaglerForge-Mods/blob/main/chat%20utils.js", - "downloadLink": "/resources/mods/chatcmd.js" - }, - { - "modId": "autologin", - "displayName": "SemiAutoLogin", - "author": "Murturtle", - "authorLink": "https://github.com/Murturtle", - "description": "Press L to login without typing!", - "icon": "/resources/images/icons/mods/all.webp", - "repoLink": "https://github.com/Murturtle/MursMods/blob/main/SemiAutoLogin.js", - "downloadLink": "/resources/mods/autologin.js" - }, - { - "modId": "blur", - "displayName": "Blur", - "author": "Murturtle", - "authorLink": "https://github.com/Murturtle", - "description": "Makes your fps 5 when unfocused!", - "icon": "/resources/images/icons/mods/blur.webp", - "repoLink": "https://github.com/Murturtle/MursMods/blob/main/Blur.js", - "downloadLink": "/resources/mods/blur.js" - }, - { - "modId": "jetpack", - "displayName": "Jetpack", - "author": "radmanplays", - "authorLink": "https://github.com/radmanplays", - "description": "allows you to fly as if you had a jetpack. keybind(hold): h", - "icon": "/resources/images/icons/mods/jetpack.webp", - "repoLink": "https://github.com/radmanplays/eaglerreborn-plugins/blob/main/jetpack-ef.js", - "downloadLink": "/resources/mods/jetpack.js" - }, - { - "modId": "barneysmusicmod", - "displayName": "Barney's Music Mod", - "author": "BarneyTheGod", - "authorLink": "https://github.com/BarneyCompiler", - "description": "Plays a users music through a direct mp3 link. Saves music through Local Browser storage.", - "icon": "/resources/images/icons/mods/barneysmusicmod.webp", - "repoLink": "https://github.com/BarneyCompiler/barneysmods/blob/main/Barneys%20Music%20Player", - "downloadLink": "/resources/mods/barneysmusicmod.js" - }, - { - "modId": "blinkmod", - "displayName": "Blink", - "author": "radmanplays", - "authorLink": "https://github.com/radmanplays", - "description": "use by typing the .blinkon and .blinkoff commands and sending it", - "icon": "/resources/images/icons/mods/all.webp", - "repoLink": "https://github.com/radmanplays/eaglerreborn-plugins", - "downloadLink": "/resources/mods/blinkmod.js" - }, - { - "modId": "graplehookmod", - "displayName": "GrappleHook", - "author": "radmanplays", - "authorLink": "https://github.com/radmanplays", - "description": "grappling hook mod. how to use: 1.grab a fishing rod 2.use the fishing rod 3.grappling hook! ", - "icon": "/resources/images/icons/mods/graplehookmod.webp", - "repoLink": "https://github.com/radmanplays/eaglerreborn-plugins", - "downloadLink": "/resources/mods/graplehookmod.js" - }, - { - "modId": "xraymod", - "displayName": "Xray", - "author": "radmanplays", - "authorLink": "https://github.com/radmanplays", - "description": "simple xray mod. its recommended to use this with Fullbright. keybind: x", - "icon": "/resources/images/icons/mods/xraymod.webp", - "repoLink": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/Xray.js", - "downloadLink": "/resources/mods/xraymod.js" - }, - { - "modId": "fullbright", - "displayName": "Fullbright", - "author": "radmanplays", - "authorLink": "https://github.com/radmanplays", - "description": "full bright mod for eaglerforge. keybind(enabled by default): f", - "icon": "/resources/images/icons/mods/fullbright.webp", - "repoLink": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/fullbright.js", - "downloadLink": "/resources/mods/fullbright.js" - }, - { - "modId": "autoclicker", - "displayName": "Autoclicker", - "author": "radmanplays", - "authorLink": "https://github.com/radmanplays", - "description": "this mod clicks for you", - "icon": "/resources/images/icons/mods/autoclicker.webp", - "repoLink": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/autoclicker.js", - "downloadLink": "/resources/mods/autoclicker.js" - }, - { - "modId": "speedmod", - "displayName": "Speed Mod", - "author": "radmanplays", - "authorLink": "https://github.com/radmanplays", - "description": "makes you faster", - "icon": "/resources/images/icons/mods/speedmod.webp", - "repoLink": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/Speed.js", - "downloadLink": "/resources/mods/speedmod.js" - }, - { - "modId": "chatshortcutsmod", - "displayName": "Chat Shortcuts", - "author": "radmanplays", - "authorLink": "https://github.com/radmanplays", - "description": "shortcuts: {health}, {pos}, {name}, {me}, {x}, {y}, {z}, {level}, {walked}, {chunk}", - "icon": "/resources/images/icons/mods/all.webp", - "repoLink": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/ChatShortcuts.js", - "downloadLink": "/resources/mods/chatshortcutsmod.js" - }, - { - "modId": "nofallmod", - "displayName": "NoFall", - "author": "radmanplays", - "authorLink": "https://github.com/radmanplays", - "description": "makes you not take fall damage", - "icon": "/resources/images/icons/mods/all.webp", - "repoLink": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/NoFall.js", - "downloadLink": "/resources/mods/nofallmod.js" - }, - { - "modId": "autofishmod", - "displayName": "AutoFish", - "author": "radmanplays", - "authorLink": "https://github.com/radmanplays", - "description": "fishes for you. just throw a fishing rod in water to use this mod", - "icon": "/resources/images/icons/mods/all.webp", - "repoLink": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/AutoFish.js", - "downloadLink": "/resources/mods/autofishmod.js" - } - ], - "resourcepacks": [ - { - "modId": "barebones-bossbars", - "displayName": "Barebones Bossbars", - "author": "vexcenot", - "authorLink": "https://modrinth.com/user/vexcenot", - "description": "simplistic per-mob icons and colors to decorate boss bars with", - "icon": "/resources/images/icons/resourcepacks/barebones-bossbars.webp", - "repoLink": "https://modrinth.com/resourcepack/barebones-bossbars", - "downloadLink": "/resources/resourcepacks/barebones-bossbars.zip" - }, - { - "modId": "daggers", - "displayName": "Daggers", - "author": "devin", - "authorLink": "https://modrinth.com/user/devin", - "description": "Shorter swords for better visibility.", - "icon": "/resources/images/icons/resourcepacks/daggers.webp", - "repoLink": "https://modrinth.com/resourcepack/daggers", - "downloadLink": "/resources/resourcepacks/daggers.zip" - }, - { - "modId": "faithful-32x", - "displayName": "Faithful (32x)", - "author": "Faithful-Resource-Pack", - "authorLink": "https://modrinth.com/user/Faithful-Resource-Pack", - "description": "The original Minecraft texture feel, with double the resolution and double the fun!", - "icon": "/resources/images/icons/resourcepacks/faithful-32x.webp", - "repoLink": "https://modrinth.com/resourcepack/faithful-32x", - "downloadLink": "/resources/resourcepacks/faithful-32x.zip" - }, - { - "modId": "low-on-fire", - "displayName": "Low On Fire", - "author": "Haikis", - "authorLink": "https://modrinth.com/user/Haikis", - "description": "Low fire on your screen! Vanilla Friendly", - "icon": "/resources/images/icons/resourcepacks/low-on-fire.webp", - "repoLink": "https://modrinth.com/resourcepack/low-on-fire", - "downloadLink": "/resources/resourcepacks/low-on-fire.zip" - }, - { - "modId": "serified-font", - "displayName": "Serified Font", - "author": "bebebea_loste", - "authorLink": "https://modrinth.com/user/bebebea_loste", - "description": "My take on a fancier Minecraft typeface", - "icon": "/resources/images/icons/resourcepacks/serified-font.webp", - "repoLink": "https://modrinth.com/resourcepack/serified-font", - "downloadLink": "/resources/resourcepacks/serified-font.zip" - } - ] -} diff --git a/public/resources/images/icons/minexlauncher-192x192.webp b/public/resources/images/icons/minexlauncher-192x192.webp new file mode 100644 index 0000000000000000000000000000000000000000..f73f0cc2b12c8c44f75bca283adbedcfca302a29 GIT binary patch literal 11562 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 A^Z)<= literal 0 HcmV?d00001 diff --git a/public/resources/mods/data.json b/public/resources/mods/data.json new file mode 100644 index 0000000..db2bb52 --- /dev/null +++ b/public/resources/mods/data.json @@ -0,0 +1,183 @@ +{ + "mods": [ + { + "id": "burmod", + "name": "Burmod", + "description": "client for eaglerforge (v0.2)", + "author": "Murturtle", + "authorLink": "https://github.com/Murturtle", + "source": "https://github.com/Murturtle/Burmod" + }, + { + "id": "statshud", + "name": "StatsHud", + "description": "An all-new StatsHud, soon to be updated with customization functionality!", + "author": "Neverflagastralis", + "authorLink": "https://github.com/AstralisLLC", + "source": "https://github.com/AstralisLLC/EaglerForge-Mods/blob/main/StatsHudV3.js" + }, + { + "id": "fresheaglerui", + "name": "FreshEaglerUI", + "description": "Makes the UIs slide in and re works the main screen!", + "author": "Murturtle", + "authorLink": "https://github.com/Murturtle", + "source": "https://github.com/Murturtle/MursMods/blob/main/FreshEaglerUI.js" + }, + { + "id": "chat-commands-mod", + "name": "Chat commands mod", + "description": "An open source mod with a built in customizable bug reports system!", + "author": "Neverflagastralis", + "authorLink": "https://github.com/AstralisLLC", + "source": "https://github.com/AstralisLLC/EaglerForge-Mods/blob/main/chat%20utils.js" + }, + { + "id": "semiautologin", + "name": "SemiAutoLogin", + "description": "Press L to login without typing!", + "author": "Murturtle", + "authorLink": "https://github.com/Murturtle", + "source": "https://github.com/Murturtle/MursMods/blob/main/SemiAutoLogin.js" + }, + { + "id": "blur", + "name": "Blur", + "description": "Makes your fps 5 when unfocused!", + "author": "Murturtle", + "authorLink": "https://github.com/Murturtle", + "source": "https://github.com/Murturtle/MursMods/blob/main/Blur.js" + }, + { + "id": "jetpack", + "name": "Jetpack", + "description": "allows you to fly as if you had a jetpack. keybind(hold): h", + "author": "radmanplays", + "authorLink": "https://github.com/radmanplays", + "source": "https://github.com/radmanplays/eaglerreborn-plugins/blob/main/jetpack-ef.js" + }, + { + "id": "barneys-music-mod", + "name": "Barney's Music Mod", + "description": "Plays a users music through a direct mp3 link. Saves music through Local Browser storage.", + "author": "BarneyTheGod", + "authorLink": "https://github.com/BarneyCompiler", + "source": "https://github.com/BarneyCompiler/barneysmods/blob/main/Barneys%20Music%20Player" + }, + { + "id": "blink", + "name": "Blink", + "description": "use by typing the .blinkon and .blinkoff commands and sending it", + "author": "radmanplays", + "authorLink": "https://github.com/radmanplays", + "source": "https://github.com/radmanplays/eaglerreborn-plugins" + }, + { + "id": "grapplehook", + "name": "GrappleHook", + "description": "grappling hook mod. how to use: 1.grab a fishing rod 2.use the fishing rod 3.grappling hook!", + "author": "radmanplays", + "authorLink": "https://github.com/radmanplays", + "source": "https://github.com/radmanplays/eaglerreborn-plugins" + }, + { + "id": "xray", + "name": "Xray", + "description": "simple xray mod. its recommended to use this with Fullbright. keybind: x", + "author": "radmanplays", + "authorLink": "https://github.com/radmanplays", + "source": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/Xray.js" + }, + { + "id": "fullbright", + "name": "Fullbright", + "description": "full bright mod for eaglerforge. keybind(enabled by default): f", + "author": "radmanplays", + "authorLink": "https://github.com/radmanplays", + "source": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/fullbright.js" + }, + { + "id": "autoclicker", + "name": "Autoclicker", + "description": "this mod clicks for you", + "author": "radmanplays", + "authorLink": "https://github.com/radmanplays", + "source": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/autoclicker.js" + }, + { + "id": "speed-mod", + "name": "Speed Mod", + "description": "makes you faster", + "author": "radmanplays", + "authorLink": "https://github.com/radmanplays", + "source": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/Speed.js" + }, + { + "id": "chat-shortcuts", + "name": "Chat Shortcuts", + "description": "shortcuts: {health}, {pos}, {name}, {me}, {x}, {y}, {z}, {level}, {walked}, {chunk}", + "author": "radmanplays", + "authorLink": "https://github.com/radmanplays", + "source": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/ChatShortcuts.js" + }, + { + "id": "nofall", + "name": "NoFall", + "description": "makes you not take fall damage", + "author": "radmanplays", + "authorLink": "https://github.com/radmanplays", + "source": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/NoFall.js" + }, + { + "id": "autofish", + "name": "AutoFish", + "description": "fishes for you. just throw a fishing rod in water to use this mod", + "author": "radmanplays", + "authorLink": "https://github.com/radmanplays", + "source": "https://github.com/EaglerRinth/eaglerrinth.github.io/blob/main/CommunityMods/AutoFish.js" + } + ], + + "resourcepacks": [ + { + "id": "barebones-bossbars", + "name": "Barebones Bossbars", + "description": "simplistic per-mob icons and colors to decorate boss bars with", + "author": "vexcenot", + "authorLink": "https://modrinth.com/user/vexcenot", + "source": "https://modrinth.com/resourcepack/barebones-bossbars" + }, + { + "id": "daggers", + "name": "Daggers", + "description": "Shorter swords for better visibility.", + "author": "devin", + "authorLink": "https://modrinth.com/user/devin", + "source": "https://modrinth.com/resourcepack/daggers" + }, + { + "id": "faithful-32x", + "name": "Faithful (32x)", + "description": "The original Minecraft texture feel, with double the resolution and double the fun!", + "author": "Faithful-Resource-Pack", + "authorLink": "https://modrinth.com/user/Faithful-Resource-Pack", + "source": "https://modrinth.com/resourcepack/faithful-32x" + }, + { + "id": "low-on-fire", + "name": "Low On Fire", + "description": "Low fire on your screen! Vanilla Friendly", + "author": "Haikis", + "authorLink": "https://modrinth.com/user/Haikis", + "source": "https://modrinth.com/resourcepack/low-on-fire" + }, + { + "id": "serified-font", + "name": "Serified Font", + "description": "My take on a fancier Minecraft typeface", + "author": "bebebea_loste", + "authorLink": "https://modrinth.com/user/bebebea_loste", + "source": "https://modrinth.com/resourcepack/serified-font" + } + ] +} diff --git a/public/resources/mods/autoclicker.js b/public/resources/mods/downloads/autoclicker.js similarity index 100% rename from public/resources/mods/autoclicker.js rename to public/resources/mods/downloads/autoclicker.js diff --git a/public/resources/mods/autofishmod.js b/public/resources/mods/downloads/autofish.js similarity index 100% rename from public/resources/mods/autofishmod.js rename to public/resources/mods/downloads/autofish.js diff --git a/public/resources/resourcepacks/barebones-bossbars.zip b/public/resources/mods/downloads/barebones-bossbars.zip similarity index 100% rename from public/resources/resourcepacks/barebones-bossbars.zip rename to public/resources/mods/downloads/barebones-bossbars.zip diff --git a/public/resources/mods/barneysmusicmod.js b/public/resources/mods/downloads/barneys-music-mod.js similarity index 100% rename from public/resources/mods/barneysmusicmod.js rename to public/resources/mods/downloads/barneys-music-mod.js diff --git a/public/resources/mods/blinkmod.js b/public/resources/mods/downloads/blink.js similarity index 100% rename from public/resources/mods/blinkmod.js rename to public/resources/mods/downloads/blink.js diff --git a/public/resources/mods/blur.js b/public/resources/mods/downloads/blur.js similarity index 100% rename from public/resources/mods/blur.js rename to public/resources/mods/downloads/blur.js diff --git a/public/resources/mods/burmod.js b/public/resources/mods/downloads/burmod.js similarity index 100% rename from public/resources/mods/burmod.js rename to public/resources/mods/downloads/burmod.js diff --git a/public/resources/mods/chatcmd.js b/public/resources/mods/downloads/chat-commands-mod.js similarity index 100% rename from public/resources/mods/chatcmd.js rename to public/resources/mods/downloads/chat-commands-mod.js diff --git a/public/resources/mods/chatshortcutsmod.js b/public/resources/mods/downloads/chat-shortcuts.js similarity index 100% rename from public/resources/mods/chatshortcutsmod.js rename to public/resources/mods/downloads/chat-shortcuts.js diff --git a/public/resources/resourcepacks/daggers.zip b/public/resources/mods/downloads/daggers.zip similarity index 100% rename from public/resources/resourcepacks/daggers.zip rename to public/resources/mods/downloads/daggers.zip diff --git a/public/resources/resourcepacks/faithful-32x.zip b/public/resources/mods/downloads/faithful-32x.zip similarity index 100% rename from public/resources/resourcepacks/faithful-32x.zip rename to public/resources/mods/downloads/faithful-32x.zip diff --git a/public/resources/mods/freshui.js b/public/resources/mods/downloads/fresheaglerui.js similarity index 100% rename from public/resources/mods/freshui.js rename to public/resources/mods/downloads/fresheaglerui.js diff --git a/public/resources/mods/fullbright.js b/public/resources/mods/downloads/fullbright.js similarity index 100% rename from public/resources/mods/fullbright.js rename to public/resources/mods/downloads/fullbright.js diff --git a/public/resources/mods/graplehookmod.js b/public/resources/mods/downloads/grapplehook.js similarity index 100% rename from public/resources/mods/graplehookmod.js rename to public/resources/mods/downloads/grapplehook.js diff --git a/public/resources/mods/jetpack.js b/public/resources/mods/downloads/jetpack.js similarity index 100% rename from public/resources/mods/jetpack.js rename to public/resources/mods/downloads/jetpack.js diff --git a/public/resources/resourcepacks/low-on-fire.zip b/public/resources/mods/downloads/low-on-fire.zip similarity index 100% rename from public/resources/resourcepacks/low-on-fire.zip rename to public/resources/mods/downloads/low-on-fire.zip diff --git a/public/resources/mods/nofallmod.js b/public/resources/mods/downloads/nofall.js similarity index 100% rename from public/resources/mods/nofallmod.js rename to public/resources/mods/downloads/nofall.js diff --git a/public/resources/mods/autologin.js b/public/resources/mods/downloads/semiautologin.js similarity index 100% rename from public/resources/mods/autologin.js rename to public/resources/mods/downloads/semiautologin.js diff --git a/public/resources/resourcepacks/serified-font.zip b/public/resources/mods/downloads/serified-font.zip similarity index 100% rename from public/resources/resourcepacks/serified-font.zip rename to public/resources/mods/downloads/serified-font.zip diff --git a/public/resources/mods/speedmod.js b/public/resources/mods/downloads/speed-mod.js similarity index 100% rename from public/resources/mods/speedmod.js rename to public/resources/mods/downloads/speed-mod.js diff --git a/public/resources/mods/statshud.js b/public/resources/mods/downloads/statshud.js similarity index 100% rename from public/resources/mods/statshud.js rename to public/resources/mods/downloads/statshud.js diff --git a/public/resources/mods/xraymod.js b/public/resources/mods/downloads/xray.js similarity index 100% rename from public/resources/mods/xraymod.js rename to public/resources/mods/downloads/xray.js diff --git a/public/resources/images/icons/mods/all.webp b/public/resources/mods/icons/all.webp similarity index 100% rename from public/resources/images/icons/mods/all.webp rename to public/resources/mods/icons/all.webp diff --git a/public/resources/images/icons/mods/autoclicker.webp b/public/resources/mods/icons/autoclicker.webp similarity index 100% rename from public/resources/images/icons/mods/autoclicker.webp rename to public/resources/mods/icons/autoclicker.webp diff --git a/public/resources/images/icons/resourcepacks/barebones-bossbars.webp b/public/resources/mods/icons/barebones-bossbars.webp similarity index 100% rename from public/resources/images/icons/resourcepacks/barebones-bossbars.webp rename to public/resources/mods/icons/barebones-bossbars.webp diff --git a/public/resources/images/icons/mods/barneysmusicmod.webp b/public/resources/mods/icons/barneys-music-mod.webp similarity index 100% rename from public/resources/images/icons/mods/barneysmusicmod.webp rename to public/resources/mods/icons/barneys-music-mod.webp diff --git a/public/resources/images/icons/mods/blur.webp b/public/resources/mods/icons/blur.webp similarity index 100% rename from public/resources/images/icons/mods/blur.webp rename to public/resources/mods/icons/blur.webp diff --git a/public/resources/images/icons/resourcepacks/daggers.webp b/public/resources/mods/icons/daggers.webp similarity index 100% rename from public/resources/images/icons/resourcepacks/daggers.webp rename to public/resources/mods/icons/daggers.webp diff --git a/public/resources/images/icons/resourcepacks/faithful-32x.webp b/public/resources/mods/icons/faithful-32x.webp similarity index 100% rename from public/resources/images/icons/resourcepacks/faithful-32x.webp rename to public/resources/mods/icons/faithful-32x.webp diff --git a/public/resources/images/icons/mods/fullbright.webp b/public/resources/mods/icons/fullbright.webp similarity index 100% rename from public/resources/images/icons/mods/fullbright.webp rename to public/resources/mods/icons/fullbright.webp diff --git a/public/resources/images/icons/mods/graplehookmod.webp b/public/resources/mods/icons/grapplehook.webp similarity index 100% rename from public/resources/images/icons/mods/graplehookmod.webp rename to public/resources/mods/icons/grapplehook.webp diff --git a/public/resources/images/icons/mods/jetpack.webp b/public/resources/mods/icons/jetpack.webp similarity index 100% rename from public/resources/images/icons/mods/jetpack.webp rename to public/resources/mods/icons/jetpack.webp diff --git a/public/resources/images/icons/resourcepacks/low-on-fire.webp b/public/resources/mods/icons/low-on-fire.webp similarity index 100% rename from public/resources/images/icons/resourcepacks/low-on-fire.webp rename to public/resources/mods/icons/low-on-fire.webp diff --git a/public/resources/images/icons/resourcepacks/serified-font.webp b/public/resources/mods/icons/serified-font.webp similarity index 100% rename from public/resources/images/icons/resourcepacks/serified-font.webp rename to public/resources/mods/icons/serified-font.webp diff --git a/public/resources/images/icons/mods/speedmod.webp b/public/resources/mods/icons/speed-mod.webp similarity index 100% rename from public/resources/images/icons/mods/speedmod.webp rename to public/resources/mods/icons/speed-mod.webp diff --git a/public/resources/images/icons/mods/statshud.webp b/public/resources/mods/icons/statshud.webp similarity index 100% rename from public/resources/images/icons/mods/statshud.webp rename to public/resources/mods/icons/statshud.webp diff --git a/public/resources/images/icons/mods/xraymod.webp b/public/resources/mods/icons/xray.webp similarity index 100% rename from public/resources/images/icons/mods/xraymod.webp rename to public/resources/mods/icons/xray.webp diff --git a/public/service-worker.js b/public/service-worker.js index cb45961..6a74a56 100644 --- a/public/service-worker.js +++ b/public/service-worker.js @@ -1,7 +1,5 @@ -const CACHE_NAME = 'minexlauncher'; -const OFFLINE_URL = '/offline.html'; -const ASSETS_TO_CACHE = [ - OFFLINE_URL, +const cacheAssets = [ + '/offline.html', '/resources/images/icons/favicon.webp', '/resources/scripts/google-tag.js', '/resources/scripts/main.js', @@ -27,23 +25,9 @@ const ASSETS_TO_CACHE = [ self.addEventListener('install', (event) => { event.waitUntil( - caches.delete(CACHE_NAME), - caches.open(CACHE_NAME).then(async (cache) => { - return await cache.addAll(ASSETS_TO_CACHE); - }) - ); -}); - -self.addEventListener('activate', (event) => { - event.waitUntil( - caches.keys().then((keyList) => { - return Promise.all( - keyList.map((key) => { - if (key !== CACHE_NAME) { - return caches.delete(key); - } - }) - ); + caches.delete('minexlauncher'), + caches.open('minexlauncher').then(async (cache) => { + return await cache.addAll(cacheAssets); }) ); }); @@ -52,7 +36,7 @@ self.addEventListener('fetch', (event) => { if (event.request.mode === 'navigate') { event.respondWith( fetch(event.request).catch(() => { - return caches.match(OFFLINE_URL); + return caches.match('/offline.html'); }) ); } else { diff --git a/src/resources/scripts/mods/mods.ts b/src/resources/scripts/mods/mods.ts index 2b74571..10ae5dd 100644 --- a/src/resources/scripts/mods/mods.ts +++ b/src/resources/scripts/mods/mods.ts @@ -1,29 +1,13 @@ document.addEventListener('DOMContentLoaded', async () => { - try { - const response = await fetch('/resources/data/mods.json'); - const data = await response.json(); - const modListElement = document.querySelector('.mod-list'); + const response = await fetch('/resources/mods/data.json'); + const data = await response.json(); + const modListElement = document.querySelector('.mod-list'); - data.mods.forEach(({ icon, author, description, displayName, authorLink, repoLink, downloadLink }) => { - const modItem = document.createElement('div'); - modItem.classList.add('mod-item'); - modItem.innerHTML = ` -

- -
-
-

${displayName}

-

By ${author}

-

${description}

- -
- `; - modListElement?.appendChild(modItem); - }); - } catch (error) { - console.error('Error fetching mods:', error); - } + // @ts-expect-error 123 + data.mods.forEach(({ id, name, description, author, authorLink, source }) => { + const div = document.createElement('div'); + div.classList.add('mod-item'); + div.innerHTML = `

${name}

By ${author}

${description}

`; + modListElement?.appendChild(div); + }); }); diff --git a/src/resources/scripts/mods/resourcepacks.ts b/src/resources/scripts/mods/resourcepacks.ts index ec9b099..0431a22 100644 --- a/src/resources/scripts/mods/resourcepacks.ts +++ b/src/resources/scripts/mods/resourcepacks.ts @@ -1,29 +1,13 @@ -document.addEventListener('DOMContentLoaded', function () { - fetch('/resources/data/mods.json') - .then((response) => response.json()) - .then((data: { resourcepacks: { [x: string]: string; icon: string; author: string; description: string }[] }) => { - const modListElement = document.querySelector('.mod-list'); - data.resourcepacks.forEach((mod: { [x: string]: string; icon: string; author: string; description: string }) => { - const modItem = document.createElement('div'); - modItem.classList.add('mod-item'); - modItem.innerHTML = ` -
- -
-
-

${mod['display-name'] ?? ''}

-

By ${mod.author}

-

${mod.description}

- -
- `; - modListElement?.appendChild(modItem); - }); - }) - .catch((error: unknown) => { - console.error('Error fetching resource packs:', error); - }); +document.addEventListener('DOMContentLoaded', async () => { + const response = await fetch('/resources/mods/data.json'); + const data = await response.json(); + const modListElement = document.querySelector('.mod-list'); + + // @ts-expect-error 123 + data.resourcepacks.forEach(({ id, name, description, author, authorLink, source }) => { + const div = document.createElement('div'); + div.classList.add('mod-item'); + div.innerHTML = `

${name}

By ${author}

${description}

`; + modListElement?.appendChild(div); + }); });