25 lines
661 B
TypeScript
25 lines
661 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.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 錯誤');
|
||
|
}
|
||
|
}
|