From 85286a2443bd82fc345bfa36cad63eb2ae24b042 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 13 Sep 2023 12:56:12 +0800 Subject: [PATCH] 1 --- server/hallserver/proto/cs_proto.proto | 3 ++- server/hallserver/room/room.go | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/server/hallserver/proto/cs_proto.proto b/server/hallserver/proto/cs_proto.proto index e40cade2..d3c892e7 100644 --- a/server/hallserver/proto/cs_proto.proto +++ b/server/hallserver/proto/cs_proto.proto @@ -225,7 +225,8 @@ message CMDisbandRoom message SMDisbandRoom { - + optional int32 errcode = 1; //错误码 0:成功 1:权限不足 + optional string errmsg = 2; //错误描述 } //退出房间 diff --git a/server/hallserver/room/room.go b/server/hallserver/room/room.go index a57a43d8..d898342d 100644 --- a/server/hallserver/room/room.go +++ b/server/hallserver/room/room.go @@ -141,6 +141,12 @@ func (this *room) OnPlayerOffline(hum common.Player) { func (this *room) CMDisbandRoom(hdr *f5.MsgHdr, msg *cs.CMDisbandRoom) { hum := hdr.Context.(common.Player) rspMsg := &cs.SMDisbandRoom{} + if !this.isOwner(hum) { + rspMsg.Errcode = proto.Int32(1) + rspMsg.Errmsg = proto.String("insufficient permissions") + hum.SendMsg(rspMsg) + return + } if this.roomState == ROOM_INIT_STATE { this.doDisband(1) } @@ -311,3 +317,7 @@ func (this *room) canStart() bool { } return alreadyNum >- ROOM_MIN_START_TEAM_NUM } + +func (this *room) isOwner(hum common.Player) bool { + return this.owner.hum.GetAccountId() == hum.GetAccountId() +}