GuessWhoIAmS/src/api/room/ApiJoin.ts

25 lines
661 B
TypeScript
Raw Normal View History

2023-09-02 22:33:40 +08:00
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.GetRoom(roomId)
if (room) {
if (room.ConnCount() >= 2) {
call.error('房間已滿');
return;
}
room.Join(conn)
conn.Room = room
call.succ(0)
if (room.ConnCount() >= 2) {
room.GotoGame();
}
} else {
call.error('roomId 錯誤');
}
}