roomJoinHandler.ts 581 Bytes
import { Connection } from "../../connection/Connection";
import { RoomManager } from "../../room/RoomManager";
import { User } from "../../user/User";
import { MessageResponse, RoomInfoMessage, RoomJoinMessage } from "../types";

export function roomJoinHandler(
  user: User,
  message: RoomJoinMessage
): MessageResponse<RoomInfoMessage> {
  const room = RoomManager.instance().get(message.uuid);
  if (room !== undefined) {
    const roomInfoMessage = room.connect(user);
    return { ok: roomInfoMessage !== undefined, result: roomInfoMessage };
  }
  return { ok: false };
}