From a496dfb391ceb95b18c7cc5ab18b9af9627b163e Mon Sep 17 00:00:00 2001 From: spartacus04 Date: Sun, 24 Mar 2024 20:34:36 +0100 Subject: [PATCH] Add SEO | Add apply to server button --- README.md | 46 ++++++++++++------------ bun.lockb | Bin 175238 -> 179137 bytes package.json | 2 ++ src/app.html | 3 ++ src/lib/components/OutputModal.svelte | 25 +++++++++++++ src/routes/+page.svelte | 46 ++++++++++++++++++++---- src/routes/config/+page.svelte | 4 +++ src/routes/documentation/+layout.svelte | 7 +++- src/routes/documentation/+page.svelte | 1 - 9 files changed, 102 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 5ce67661..15c97ca5 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,36 @@ -# create-svelte +# Jukebox Extended Reborn | Web UI -Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte). +>The webui allows the user to configure the plugin in the browser with ease -## Creating a project +### Features -If you're seeing this, you've probably already done this step. Congrats! +- Disc management +- Resource pack merging +- Apply discs and resourcepack directly on the server +- Remote configuration +- Documentation for both users and developers +- Desktop app for faster disc management -```bash -# create a new project in the current directory -npm create svelte@latest +### How to run -# create a new project in my-app -npm create svelte@latest my-app -``` - -## Developing +You can either open the https://spartacus04.github.io/jext-reborn/ webpage or build it yourself locally. -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: +##### Building locally -```bash -npm run dev +First git clone the repo: -# or start the server and open the app in a new browser tab -npm run dev -- --open +``` +git clone https://github.com/spartacus04/jext-reborn +git checkout gh-pages ``` -## Building - -To create a production version of your app: +Then install the dependencies (here i'm using bun, you can use any node package manager): -```bash -npm run build ``` +bun install +``` + +You can run a live preview by running `bun run dev` or you can build the website by running `bun run build` -You can preview the production build with `npm run preview`. +You can run a live preview of the desktop app by running `bun run tauri dev` (note: this requires rust), or you can build it by running `bun run tauri build` -> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. diff --git a/bun.lockb b/bun.lockb index b7a9d78ad7a21cbd3f21e87f2a365ccbbb45c1bd..0fac3e0044afc8decf84902a64940c1b666d837e 100755 GIT binary patch delta 30946 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 w+041Mz>% delta 28471 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 + + + %sveltekit.head% diff --git a/src/lib/components/OutputModal.svelte b/src/lib/components/OutputModal.svelte index 0e4cc198..ed99af39 100644 --- a/src/lib/components/OutputModal.svelte +++ b/src/lib/components/OutputModal.svelte @@ -14,6 +14,7 @@ import { fade } from 'svelte/transition'; import default_icon from '$lib/assets/default_icon.png'; import ForgeProgressBar from "./ForgeProgressBar.svelte"; + import { fetchAuthed, isLoggedIn } from "$lib/login"; const modalStore = getModalStore(); @@ -91,6 +92,27 @@ bedrockRp = rp; }); + const applyToServer = async () => { + try { + const javaResponse = await fetchAuthed('discs/apply', { + method: 'POST', + body: await javaRp?.arrayBuffer() + }); + + if(javaResponse.status != 200) { + throw new Error('Could not apply resourcepack'); + } + + const bedrockResponse = await fetchAuthed('discs/applygeyser', { + method: 'POST', + body: await bedrockRp?.arrayBuffer() + }) + + } catch(e) { + alert(e); + } + } + window.onresize = () => { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); @@ -108,6 +130,9 @@ -3px -3px 0 #000, 3px -3px 0 #000;">Your resourcepack is ready
+ {#if isLoggedIn()} + Apply to your JEXT server! + {/if} saveAs(javaRp, 'resourcepack.zip')}>Download Resource Pack for Minecraft: Java Edition saveAs(bedrockRp, 'resourcepack-geysermc.mcpack')}> {#if bedrockRp == undefined} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 2066d09d..db2c39c2 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,5 +1,5 @@ + + JEXT Resourcepack Manager + + + Import a JEXT resource pack

or

+ Import from plugin API +

or

Create a new disc
diff --git a/src/routes/config/+page.svelte b/src/routes/config/+page.svelte index 43bc2ffd..9a81154c 100644 --- a/src/routes/config/+page.svelte +++ b/src/routes/config/+page.svelte @@ -127,6 +127,10 @@ }) + + JEXT Config Manager + + {#await fetchPageSettings()}
diff --git a/src/routes/documentation/+layout.svelte b/src/routes/documentation/+layout.svelte index c543c2fe..baa8dc29 100644 --- a/src/routes/documentation/+layout.svelte +++ b/src/routes/documentation/+layout.svelte @@ -119,7 +119,12 @@ {/if}
- + + + JEXT Documentation + + +
\ No newline at end of file diff --git a/src/routes/documentation/+page.svelte b/src/routes/documentation/+page.svelte index 4b32bfaa..b9f8e27c 100644 --- a/src/routes/documentation/+page.svelte +++ b/src/routes/documentation/+page.svelte @@ -4,5 +4,4 @@ export let data: PageData; - {@html data.props?.html} \ No newline at end of file