From 2038117c3b01b15bd4137fb35c49f70902025dfe Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Fri, 5 May 2023 17:55:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=88=BF=E4=B8=BB=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/builtin/room.go | 7 +++++++ game/room.go | 2 ++ 2 files changed, 9 insertions(+) diff --git a/game/builtin/room.go b/game/builtin/room.go index efe24c0..1327252 100644 --- a/game/builtin/room.go +++ b/game/builtin/room.go @@ -57,6 +57,13 @@ func (slf *Room[PlayerID, Player]) IsOwner(id PlayerID) bool { return !slf.noMaster && slf.owner == id } +func (slf *Room[PlayerID, Player]) ChangeOwner(id PlayerID) { + if slf.noMaster || slf.owner == id { + return + } + slf.owner = id +} + func (slf *Room[PlayerID, Player]) Join(player Player) error { if slf.players.Size() >= slf.playerLimit && slf.playerLimit > 0 { return ErrWorldPlayerLimit diff --git a/game/room.go b/game/room.go index 61cf54c..e62be66 100644 --- a/game/room.go +++ b/game/room.go @@ -18,6 +18,8 @@ type Room[PlayerID comparable, P Player[PlayerID]] interface { IsExistPlayer(id PlayerID) bool // IsOwner 检查玩家是否是房主 IsOwner(id PlayerID) bool + // ChangeOwner 设置玩家为房主 + ChangeOwner(id PlayerID) // Join 使特定玩家加入房间 Join(player P) error