merge both repos! atempt 1 by making the file system the same!

This commit is contained in:
RezHackXYZ 2025-05-29 13:11:49 +05:30
parent badb303ea6
commit 2fe58ee6be
No known key found for this signature in database
128 changed files with 2320 additions and 4285 deletions

View file

@ -0,0 +1,47 @@
<script>
import { joinGame } from "./logic/joinGame.js";
import { Checking } from "./logic/JoinGameData.svelte.js";
let pin;
let name;
</script>
<div class="bg-grey-900 flex h-full items-center justify-center">
<div
class="flex flex-col items-center justify-center gap-1 rounded-lg bg-gray-900 p-7 shadow-lg"
>
<h1 class="m-[0] mb-3 text-5xl">Join a game here</h1>
<input
placeholder="Enter game pin"
class="rounded-lg bg-gray-800 p-2 text-center text-white"
bind:value={pin}
/>
<input
placeholder="Enter your name"
bind:value={name}
class="rounded-lg bg-gray-800 p-2 text-center text-white"
/>
{#if Checking.v}
<button
class="mt-2 cursor-pointer rounded-full bg-gray-700 p-2 transition-all hover:scale-110 hover:-rotate-10"
>
Checking if pin is valid...
</button>
{:else}
<button
class="mt-2 cursor-pointer rounded-full bg-green-700 p-2 transition-all hover:scale-110 hover:-rotate-10"
on:click={() => {
if (!pin || !name) {
alert("Please fill in the game pin and your name.");
} else {
joinGame(pin, name);
}
}}
>
Join game
</button>{/if}
</div>
</div>

View file

@ -0,0 +1,19 @@
import { supabase } from "$lib/supabase";
export async function addPlayer(name, gamePin) {
const { data, error } = await supabase
.from("players")
.insert({
gameid: gamePin,
score: 0,
playername: name,
})
.select("id");
if (error) {
alert("Failed to join game: " + error.message + "\n\nPlease try again.");
return;
}
return data[0].id;
}

View file

@ -0,0 +1,3 @@
export let Checking = $state({
v: false,
});

View file

@ -0,0 +1,19 @@
import { addPlayer } from "./InsertPlayerInDB.js";
import { validateGamePin } from "./validateGamePin.js";
import { Checking } from "./JoinGameData.svelte.js";
export async function joinGame(pin, name) {
Checking.v = true;
if (!(await validateGamePin(pin))) {
alert("Invalid game pin. Please try again.");
Checking.v = false;
return;
}
let id = await addPlayer(name, pin);
Checking.v = false;
window.location.href = `./play?gamepin=${pin}&name=${name}&playerid=${id}`;
}

View file

@ -0,0 +1,11 @@
import { supabase } from '$lib/supabase';
export async function validateGamePin(pin) {
const { data, error } = await supabase
.from('games')
.select('gamepin')
.eq('gamepin', Number(pin))
.maybeSingle();
return data !== null && !error;
}