From d73fd8bf5bf589a4a391c867e980761fadb647ce Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 29 Jul 2024 03:44:10 +0900 Subject: feat: partially implement watching --- backend/game/hub.go | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'backend/game/hub.go') diff --git a/backend/game/hub.go b/backend/game/hub.go index d4a9231..770d257 100644 --- a/backend/game/hub.go +++ b/backend/game/hub.go @@ -121,6 +121,14 @@ func (hub *gameHub) run() { }, } } + for watcher := range hub.watchers { + watcher.s2cMessages <- &watcherMessageS2CStart{ + Type: watcherMessageTypeS2CStart, + Data: watcherMessageS2CStartPayload{ + StartAt: int(startAt.Unix()), + }, + } + } err := hub.q.UpdateGameStartedAt(hub.ctx, db.UpdateGameStartedAtParams{ GameID: int32(hub.game.gameID), StartedAt: pgtype.Timestamp{ @@ -151,9 +159,27 @@ func (hub *gameHub) run() { Type: playerMessageTypeS2CExecResult, Data: playerMessageS2CExecResultPayload{ Score: &score, - Status: api.Success, + Status: api.GamePlayerMessageS2CExecResultPayloadStatusSuccess, }, } + for watcher := range hub.watchers { + watcher.s2cMessages <- &watcherMessageS2CCode{ + Type: watcherMessageTypeS2CCode, + Data: watcherMessageS2CCodePayload{ + PlayerId: message.client.playerID, + Code: code, + }, + } + watcher.s2cMessages <- &watcherMessageS2CExecResult{ + Type: watcherMessageTypeS2CExecResult, + Data: watcherMessageS2CExecResultPayload{ + PlayerId: message.client.playerID, + Score: &score, + Stdout: "", + Stderr: "", + }, + } + } default: log.Fatalf("unexpected message type: %T", message.message) } -- cgit v1.2.3-70-g09d2