From f1906b4c0df83c827a7d462228b991faaeadf63a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 9 Sep 2023 19:52:55 +0800 Subject: [PATCH] 1 --- server/hallserver/common/types.go | 1 + server/hallserver/listener/handlermgr.go | 4 ++-- server/hallserver/player/player.go | 4 ++++ server/hallserver/room/room.go | 13 +------------ server/hallserver/room/roommgr.go | 16 ++++++++++++++++ 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/server/hallserver/common/types.go b/server/hallserver/common/types.go index 8a83beb2..3e7ac6f2 100644 --- a/server/hallserver/common/types.go +++ b/server/hallserver/common/types.go @@ -21,6 +21,7 @@ type RoomMgr interface { type Player interface { GetAccountId() string GetRoom() Room + SetRoom(Room) SendMsg(rspMsg proto.Message) } diff --git a/server/hallserver/listener/handlermgr.go b/server/hallserver/listener/handlermgr.go index fb3f5e96..b3f066b9 100644 --- a/server/hallserver/listener/handlermgr.go +++ b/server/hallserver/listener/handlermgr.go @@ -19,9 +19,9 @@ func (this *HandlerMgr) Init() { cs.RegHandlerId(int(cs.CMMessageIdE__CMReconnect), constant.PLAYER_MGR_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMCreateRoom), constant.ROOM_MGR_HANDLER_ID) + cs.RegHandlerId(int(cs.CMMessageIdE__CMJoinRoom), constant.ROOM_MGR_HANDLER_ID) + cs.RegHandlerId(int(cs.CMMessageIdE__CMRoomList), constant.ROOM_MGR_HANDLER_ID) - cs.RegHandlerId(int(cs.CMMessageIdE__CMRoomList), constant.ROOM_HANDLER_ID) - cs.RegHandlerId(int(cs.CMMessageIdE__CMJoinRoom), constant.ROOM_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMDisbandRoom), constant.ROOM_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMLeaveRoom), constant.ROOM_HANDLER_ID) cs.RegHandlerId(int(cs.CMMessageIdE__CMModifyRoom), constant.ROOM_HANDLER_ID) diff --git a/server/hallserver/player/player.go b/server/hallserver/player/player.go index 7bc6ed33..752a9678 100644 --- a/server/hallserver/player/player.go +++ b/server/hallserver/player/player.go @@ -28,6 +28,10 @@ func (this *player) GetRoom() common.Room { return this.room } +func (this *player) SetRoom(room common.Room) { + this.room = room +} + func (this *player) init(req *pendingLoginRequest){ this.socket = req.hdr.GetSocket() this.accountId = req.msg.GetAccountId() diff --git a/server/hallserver/room/room.go b/server/hallserver/room/room.go index c7aeea7b..3fbdc825 100644 --- a/server/hallserver/room/room.go +++ b/server/hallserver/room/room.go @@ -24,23 +24,12 @@ func (this *room) init(roomId int32, owner common.Player) { this.members = map[string]*member{ owner.GetAccountId(): this.owner, } + this.owner.hum.SetRoom(this) } func (this *room) OnPlayerOffline(hum common.Player) { } -func (this *room) CMRoomList(hdr *f5.MsgHdr, msg *cs.CMRoomList) { - hum := hdr.Context.(common.Player) - rspMsg := cs.SMRoomList{} - hum.SendMsg(&rspMsg) -} - -func (this *room) CMJoinRoom(hdr *f5.MsgHdr, msg *cs.CMJoinRoom) { - hum := hdr.Context.(common.Player) - rspMsg := cs.SMJoinRoom{} - hum.SendMsg(&rspMsg) -} - func (this *room) CMDisbandRoom(hdr *f5.MsgHdr, msg *cs.CMDisbandRoom) { hum := hdr.Context.(common.Player) rspMsg := cs.SMDisbandRoom{} diff --git a/server/hallserver/room/roommgr.go b/server/hallserver/room/roommgr.go index f6605b60..fb0b40ef 100644 --- a/server/hallserver/room/roommgr.go +++ b/server/hallserver/room/roommgr.go @@ -51,6 +51,22 @@ func (this *roomMgr) CMCreateRoom(hdr *f5.MsgHdr, msg *cs.CMCreateRoom) { hum.SendMsg(rspMsg) } +func (this *roomMgr) CMJoinRoom(hdr *f5.MsgHdr, msg *cs.CMJoinRoom) { + hum := hdr.Context.(common.Player) + rspMsg := cs.SMJoinRoom{} + if hum.GetRoom() != nil { + hum.SendMsg(&rspMsg) + return + } + hum.SendMsg(&rspMsg) +} + +func (this *roomMgr) CMRoomList(hdr *f5.MsgHdr, msg *cs.CMRoomList) { + hum := hdr.Context.(common.Player) + rspMsg := cs.SMRoomList{} + hum.SendMsg(&rspMsg) +} + func (this *roomMgr) genRoomIdx() int32 { this.currRoomId++ return this.currRoomId