From db4ab9cb0b2e860b2d8e3e79c36cf28a30b34eba Mon Sep 17 00:00:00 2001 From: lukas <67807954+lukasabbe@users.noreply.github.com> Date: Tue, 24 Mar 2026 17:08:45 +0100 Subject: [PATCH] Route skins thru backend --- src/routes/+page.svelte | 4 +++- src/routes/api/get-skin/[id]/+server.ts | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 src/routes/api/get-skin/[id]/+server.ts diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 58cb1f9..e2b920c 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -142,7 +142,9 @@ let cases: { when: string; model: { type: string; model: string } }[] = []; for (const profile of data.data) { - const image = await fetch(profile.MinecraftSkinData.skinUrl); + const image = await fetch( + `/api/get-skin/${profile.MinecraftSkinData.skinUrl.split('texture/')[1]}` + ); const imageBlob = await image.blob(); texturesFolder.file(`${profile.MinecraftUsername}.png`, imageBlob); const { height } = await getImageDimensions(imageBlob); diff --git a/src/routes/api/get-skin/[id]/+server.ts b/src/routes/api/get-skin/[id]/+server.ts new file mode 100644 index 0000000..f426085 --- /dev/null +++ b/src/routes/api/get-skin/[id]/+server.ts @@ -0,0 +1,11 @@ +export async function GET({ params }) { + const { id } = params; + const skinImage = await fetch(`http://textures.minecraft.net/texture/${id}`); + const skinBuffer = await skinImage.arrayBuffer(); + const skinData = Buffer.from(skinBuffer); + return new Response(skinData, { + headers: { + 'Content-Type': 'image/png' + } + }); +}