From 147e48a1f23fc32cac1338c528ac8e048ef5ef8f Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Mon, 22 May 2023 11:09:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=A4=8D=E5=8A=A0=E5=85=A5=E6=88=BF?= =?UTF-8?q?=E9=97=B4=E4=B8=8D=E5=86=8D=E5=8F=8D=E5=A4=8D=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=88=BF=E9=97=B4=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/builtin/room.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/game/builtin/room.go b/game/builtin/room.go index 4acb17b..85549f5 100644 --- a/game/builtin/room.go +++ b/game/builtin/room.go @@ -83,15 +83,18 @@ func (slf *Room[PlayerID, Player]) ChangeOwner(id PlayerID) { // Join 控制玩家加入到该房间 func (slf *Room[PlayerID, Player]) Join(player Player) error { - if slf.players.Size() >= slf.playerLimit && slf.playerLimit > 0 { + exist := slf.players.Exist(player.GetID()) + if !exist && slf.players.Size() >= slf.playerLimit && slf.playerLimit > 0 { return ErrRoomPlayerLimit } - log.Debug("Room.Join", zap.Any("guid", slf.GetGuid()), zap.Any("player", player.GetID())) slf.players.Set(player.GetID(), player) - if slf.players.Size() == 1 && !slf.noMaster { - slf.owner = player.GetID() + if !exist { + log.Debug("Room.Join", zap.Any("guid", slf.GetGuid()), zap.Any("player", player.GetID())) + if slf.players.Size() == 1 && !slf.noMaster { + slf.owner = player.GetID() + } + slf.OnPlayerJoinRoomEvent(player) } - slf.OnPlayerJoinRoomEvent(player) return nil }