From 08045088e612009ccad91eb120c835365e552b06 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Wed, 2 Aug 2023 16:17:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20room.Helper=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=80=9A=E8=BF=87=20BroadcastExcept=20=E5=90=91=E8=A2=AB?= =?UTF-8?q?=E6=8E=92=E9=99=A4=E8=A1=A8=E8=BE=BE=E5=BC=8F=E5=91=BD=E4=B8=AD?= =?UTF-8?q?=E5=A4=96=E7=9A=84=E7=8E=A9=E5=AE=B6=E5=B9=BF=E6=92=AD=E6=B6=88?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/room/helper.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/game/room/helper.go b/game/room/helper.go index b384fc3..101405c 100644 --- a/game/room/helper.go +++ b/game/room/helper.go @@ -89,6 +89,17 @@ func (slf *Helper[PID, P, R]) BroadcastSeat(handle func(player P), except ...PID } } +// BroadcastExcept 向房间中的所有玩家广播消息,根据特定表达式排除指定玩家 +// - 当 except 返回 true 时,排除该玩家 +func (slf *Helper[PID, P, R]) BroadcastExcept(handle func(player P) bool, except func(player P) bool) { + for _, player := range slf.GetPlayers() { + if except(player) { + continue + } + handle(player) + } +} + // SetPlayerLimit 设置房间中的玩家数量上限 func (slf *Helper[PID, P, R]) SetPlayerLimit(limit int) { slf.m.SetPlayerLimit(slf.room.GetGuid(), limit)