diff options
Diffstat (limited to 'backend/game')
| -rw-r--r-- | backend/game/hub.go | 25 | ||||
| -rw-r--r-- | backend/game/message.go | 4 |
2 files changed, 7 insertions, 22 deletions
diff --git a/backend/game/hub.go b/backend/game/hub.go index bb82170..719b216 100644 --- a/backend/game/hub.go +++ b/backend/game/hub.go @@ -7,7 +7,6 @@ import ( "time" "github.com/jackc/pgx/v5/pgtype" - "github.com/oapi-codegen/nullable" "github.com/nsfisis/iosdc-japan-2024-albatross/backend/api" "github.com/nsfisis/iosdc-japan-2024-albatross/backend/db" @@ -149,14 +148,6 @@ func (hub *gameHub) run() { // TODO: assert game state is gaming log.Printf("code: %v", message.message) code := msg.Data.Code - score := len(code) - message.client.s2cMessages <- &playerMessageS2CExecResult{ - Type: playerMessageTypeS2CExecResult, - Data: playerMessageS2CExecResultPayload{ - Score: nullable.NewNullableWithValue(score), - Status: api.GamePlayerMessageS2CExecResultPayloadStatusSuccess, - }, - } for watcher := range hub.watchers { watcher.s2cMessages <- &watcherMessageS2CCode{ Type: watcherMessageTypeS2CCode, @@ -165,15 +156,6 @@ func (hub *gameHub) run() { Code: code, }, } - watcher.s2cMessages <- &watcherMessageS2CExecResult{ - Type: watcherMessageTypeS2CExecResult, - Data: watcherMessageS2CExecResultPayload{ - PlayerID: message.client.playerID, - Score: nullable.NewNullableWithValue(score), - Stdout: "", - Stderr: "", - }, - } } case *playerMessageC2SSubmit: // TODO: assert game state is gaming @@ -188,6 +170,7 @@ func (hub *gameHub) run() { log.Printf("unexpected message type: %T", message.message) } case executionStatus := <-hub.testcaseExecution: + _ = executionStatus for player := range hub.players { player.s2cMessages <- &playerMessageS2CExecResult{ Type: playerMessageTypeS2CExecResult, @@ -197,6 +180,7 @@ func (hub *gameHub) run() { }, } } + // broadcast to watchers case <-ticker.C: if hub.game.state == gameStateStarting { if time.Now().After(*hub.game.startedAt) { @@ -220,8 +204,8 @@ func (hub *gameHub) run() { } hub.game.state = gameStateFinished hub.close() + return } - return } } } @@ -291,6 +275,7 @@ func NewGameHubs(q *db.Queries, taskQueue *taskqueue.Queue) *GameHubs { } func (hubs *GameHubs) Close() { + log.Println("closing all game hubs") for _, hub := range hubs.hubs { hub.close() } @@ -358,5 +343,5 @@ func (hubs *GameHubs) StartGame(gameID int) error { } func (hubs *GameHubs) C() chan string { - return hubs.hubs[4].testcaseExecution + return hubs.hubs[7].testcaseExecution } diff --git a/backend/game/message.go b/backend/game/message.go index d4007a3..1eedabd 100644 --- a/backend/game/message.go +++ b/backend/game/message.go @@ -10,7 +10,7 @@ import ( const ( playerMessageTypeS2CPrepare = "player:s2c:prepare" playerMessageTypeS2CStart = "player:s2c:start" - playerMessageTypeS2CExecResult = "player:s2c:execreslut" + playerMessageTypeS2CExecResult = "player:s2c:execresult" playerMessageTypeC2SEntry = "player:c2s:entry" playerMessageTypeC2SReady = "player:c2s:ready" playerMessageTypeC2SCode = "player:c2s:code" @@ -80,7 +80,7 @@ func asPlayerMessageC2S(raw map[string]json.RawMessage) (playerMessageC2S, error const ( watcherMessageTypeS2CStart = "watcher:s2c:start" - watcherMessageTypeS2CExecResult = "watcher:s2c:execreslut" + watcherMessageTypeS2CExecResult = "watcher:s2c:execresult" watcherMessageTypeS2CCode = "watcher:s2c:code" ) |
