GuessWhoIAmS/src/api/room/ApiJoin.ts
2023-09-15 11:13:21 +08:00

25 lines
688 B
TypeScript

import { ApiCall, BaseConnection } from "tsrpc";
import Room from "../../component/Room/Room";
import { ReqJoin, ResJoin } from "../../shared/protocols/room/PtlJoin";
import { ServiceType } from "../../shared/protocols/serviceProto";
export default async function (call: ApiCall<ReqJoin, ResJoin>) {
const { roomId } = call.req;
const conn: BaseConnection<ServiceType> = call.conn;
const room: Room = Room.GetRoom(roomId);
if (room) {
if (room.ConnCount() >= 2) {
call.error("房間已滿");
return;
}
room.Join(conn);
conn.Room = room;
call.succ(room.ConnCount());
if (room.ConnCount() >= 2) {
room.GotoGame();
}
} else {
call.error("roomId 錯誤");
}
}