From 360f07d9aefe3a746932db9cc8763e0411329dc1 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Tue, 30 May 2023 15:08:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=A9=E5=AE=B6ID=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=8C=E6=88=BF=E9=97=B4=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/builtin/room.go | 13 +++++++------ game/player.go | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/game/builtin/room.go b/game/builtin/room.go index 85549f5..25cf689 100644 --- a/game/builtin/room.go +++ b/game/builtin/room.go @@ -83,15 +83,16 @@ func (slf *Room[PlayerID, Player]) ChangeOwner(id PlayerID) { // Join 控制玩家加入到该房间 func (slf *Room[PlayerID, Player]) Join(player Player) error { - exist := slf.players.Exist(player.GetID()) + playerId := player.GetID() + exist := slf.players.Exist(playerId) if !exist && slf.players.Size() >= slf.playerLimit && slf.playerLimit > 0 { return ErrRoomPlayerLimit } - slf.players.Set(player.GetID(), player) + slf.players.Set(playerId, player) if !exist { - log.Debug("Room.Join", zap.Any("guid", slf.GetGuid()), zap.Any("player", player.GetID())) + log.Debug("Room.Join", zap.Any("guid", slf.GetGuid()), zap.Any("player", playerId)) if slf.players.Size() == 1 && !slf.noMaster { - slf.owner = player.GetID() + slf.owner = playerId } slf.OnPlayerJoinRoomEvent(player) } @@ -104,9 +105,9 @@ func (slf *Room[PlayerID, Player]) Leave(id PlayerID) { if !exist { return } - log.Debug("Room.Leave", zap.Any("guid", slf.GetGuid()), zap.Any("player", player.GetID())) + log.Debug("Room.Leave", zap.Any("guid", slf.GetGuid()), zap.Any("player", id)) slf.OnPlayerLeaveRoomEvent(player) - slf.players.Delete(player.GetID()) + slf.players.Delete(id) } // KickOut 以某种原因踢出特定玩家 diff --git a/game/player.go b/game/player.go index 1e11608..5970467 100644 --- a/game/player.go +++ b/game/player.go @@ -4,6 +4,8 @@ import "github.com/kercylan98/minotaur/server" // Player 玩家 type Player[ID comparable] interface { + // GetID 获取玩家ID + GetID() ID // UseConn 指定连接 UseConn(conn *server.Conn) // Close 关闭玩家并且释放其资源