roomJoinHandler.ts 628 Bytes
import { ServerInboundMessage, ServerResponse } from "../../../common";
import { Connection } from "../../connection/Connection";
import { Room } from "../../room/Room";
import { RoomManager } from "../../room/RoomManager";
import { User } from "../../user/User";

export function roomJoinHandler(
  connection: Connection,
  message: ServerInboundMessage<"joinRoom">,
  scope: Room
): ServerResponse<"joinRoom"> {
  const room = RoomManager.instance().get(message.uuid);
  if (room !== undefined) {
    room.connect(user);
    return { ok: user.room !== undefined, result: user.room?.getInfo() };
  }
  return { ok: false };
}