Skip to content

Commit

Permalink
feat: room 包新增房间创建事件
Browse files Browse the repository at this point in the history
  • Loading branch information
kercylan98 committed Jul 29, 2023
1 parent cee067e commit 87c6695
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
15 changes: 15 additions & 0 deletions game/room/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ type (
PlayerSeatSetEventHandle[PID comparable, P game.Player[PID], R Room] func(room R, player P, seat int)
// PlayerSeatCancelEventHandle 玩家座位取消事件处理函数
PlayerSeatCancelEventHandle[PID comparable, P game.Player[PID], R Room] func(room R, player P, seat int)
// RoomCreateEventHandle 房间创建事件处理函数
RoomCreateEventHandle[PID comparable, P game.Player[PID], R Room] func(room R, helper *Helper[PID, P, R])
)

func newEvent[PID comparable, P game.Player[PID], R Room]() *event[PID, P, R] {
Expand Down Expand Up @@ -55,6 +57,7 @@ type event[PID comparable, P game.Player[PID], R Room] struct {
playerSeatSetEventRoomHandles map[int64][]PlayerSeatSetEventHandle[PID, P, R]
playerSeatCancelEventHandles []PlayerSeatCancelEventHandle[PID, P, R]
playerSeatCancelEventRoomHandles map[int64][]PlayerSeatCancelEventHandle[PID, P, R]
roomCreateEventHandles []RoomCreateEventHandle[PID, P, R]
}

func (slf *event[PID, P, R]) unReg(guid int64) {
Expand Down Expand Up @@ -249,3 +252,15 @@ func (slf *event[PID, P, R]) OnPlayerSeatCancelEvent(room R, player P, seat int)
handle(room, player, seat)
}
}

// RegRoomCreateEvent 房间创建时将立即执行被注册的事件处理函数
func (slf *event[PID, P, R]) RegRoomCreateEvent(handle RoomCreateEventHandle[PID, P, R]) {
slf.roomCreateEventHandles = append(slf.roomCreateEventHandles, handle)
}

// OnRoomCreateEvent 房间创建时将立即执行被注册的事件处理函数
func (slf *event[PID, P, R]) OnRoomCreateEvent(room R, helper *Helper[PID, P, R]) {
for _, handle := range slf.roomCreateEventHandles {
handle(room, helper)
}
}
1 change: 1 addition & 0 deletions game/room/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ func (slf *Manager[PID, P, R]) CreateRoom(room R, options ...Option[PID, P, R])
option(roomInfo)
}
slf.rooms.Set(room.GetGuid(), roomInfo)
slf.OnRoomCreateEvent(room, slf.GetHelper(room))
}

// ReleaseRoom 释放房间
Expand Down

0 comments on commit 87c6695

Please sign in to comment.