From e2ae95f6a308e723ae8f01c0b4fbfbf9d8625a8b Mon Sep 17 00:00:00 2001 From: zombieb Date: Tue, 25 Mar 2025 23:08:28 -0400 Subject: [PATCH] give myself something to do tomorrow Matchmaking base --- src/data/live/instances.ts | 18 +++++++++++++++--- src/routes/account/account.ts | 8 ++------ src/routes/match/player.ts | 4 ++++ 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/data/live/instances.ts b/src/data/live/instances.ts index 28caf61..ce0ed4d 100644 --- a/src/data/live/instances.ts +++ b/src/data/live/instances.ts @@ -1,6 +1,6 @@ import Logging from "@proxnet/undead-logging"; import Profile from "../profiles.ts"; -import { IntegratedRoomScene } from "../content/roomtypes.ts"; +import { IntegratedRoomScene, RoomDetails } from "../content/roomtypes.ts"; const log = new Logging("Instances"); @@ -22,6 +22,16 @@ export interface RoomInstance { } +interface InstanceOptions { + + Room: RoomDetails, + SceneIndex?: number, + EventId?: number, + Name?: string, + Private?: boolean + +} + const instancePlayers: Map> = new Map(); /** * `Map` @@ -91,8 +101,10 @@ class InstancesBase { return this.getInstancePlayers(instance).size < instance.maxCapacity; } - // add, remove, check for, get profile(s) in instances - // synchronize profile.#instance with the profile's current instance (profile.setInstance(RoomInstance)?) + createInstance(options: InstanceOptions) { + // todo: use room data to create room instance + } + setPlayerInstance(player: Profile, instance: RoomInstance) { const currentInstance = player.getInstance(); if (currentInstance === instance) return; diff --git a/src/routes/account/account.ts b/src/routes/account/account.ts index fb7dd63..bd040e5 100644 --- a/src/routes/account/account.ts +++ b/src/routes/account/account.ts @@ -36,7 +36,7 @@ route.router.post("/create", value: await newAcc.export(), }); }, - + ); route.router.get("/bulk", @@ -59,11 +59,7 @@ route.router.get("/bulk", ); return; } else { - rs.json( - [await Profile.getExportAccount(id)].filter((val) => - val !== null - ), - ); + rs.json([await Profile.getExportAccount(id)].filter((val) => val !== null)); return; } diff --git a/src/routes/match/player.ts b/src/routes/match/player.ts index 6ecb120..d8840bd 100644 --- a/src/routes/match/player.ts +++ b/src/routes/match/player.ts @@ -21,6 +21,10 @@ route.router.post('/login', (_rq, rs) => { // temporary rs.sendStatus(200); + // check for existing login + // set login lock + // init presence + // use device_class from token request }, ) \ No newline at end of file