重复加入房间不再反复触发加入房间事件
This commit is contained in:
parent
1616352bb9
commit
147e48a1f2
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue