重复加入房间不再反复触发加入房间事件

This commit is contained in:
kercylan98 2023-05-22 11:09:13 +08:00
parent 1616352bb9
commit 147e48a1f2
1 changed files with 8 additions and 5 deletions

View File

@ -83,15 +83,18 @@ func (slf *Room[PlayerID, Player]) ChangeOwner(id PlayerID) {
// Join 控制玩家加入到该房间 // Join 控制玩家加入到该房间
func (slf *Room[PlayerID, Player]) Join(player Player) error { 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 return ErrRoomPlayerLimit
} }
log.Debug("Room.Join", zap.Any("guid", slf.GetGuid()), zap.Any("player", player.GetID()))
slf.players.Set(player.GetID(), player) slf.players.Set(player.GetID(), player)
if !exist {
log.Debug("Room.Join", zap.Any("guid", slf.GetGuid()), zap.Any("player", player.GetID()))
if slf.players.Size() == 1 && !slf.noMaster { if slf.players.Size() == 1 && !slf.noMaster {
slf.owner = player.GetID() slf.owner = player.GetID()
} }
slf.OnPlayerJoinRoomEvent(player) slf.OnPlayerJoinRoomEvent(player)
}
return nil return nil
} }