diff options
Diffstat (limited to 'backend/game')
| -rw-r--r-- | backend/game/hub.go | 7 | ||||
| -rw-r--r-- | backend/game/message.go | 12 |
2 files changed, 18 insertions, 1 deletions
diff --git a/backend/game/hub.go b/backend/game/hub.go index c73009b..239f5da 100644 --- a/backend/game/hub.go +++ b/backend/game/hub.go @@ -170,8 +170,13 @@ func (hub *gameHub) run() { }, } } + case *playerMessageC2SSubmit: + // TODO: assert game state is gaming + log.Printf("submit: %v", message.message) + // code := msg.Data.Code + // TODO default: - log.Fatalf("unexpected message type: %T", message.message) + log.Printf("unexpected message type: %T", message.message) } case <-ticker.C: if hub.game.state == gameStateStarting { diff --git a/backend/game/message.go b/backend/game/message.go index 0b413d6..d4007a3 100644 --- a/backend/game/message.go +++ b/backend/game/message.go @@ -14,6 +14,7 @@ const ( playerMessageTypeC2SEntry = "player:c2s:entry" playerMessageTypeC2SReady = "player:c2s:ready" playerMessageTypeC2SCode = "player:c2s:code" + playerMessageTypeC2SSubmit = "player:c2s:submit" ) type playerMessageC2SWithClient struct { @@ -36,6 +37,8 @@ type playerMessageC2SEntry = api.GamePlayerMessageC2SEntry type playerMessageC2SReady = api.GamePlayerMessageC2SReady type playerMessageC2SCode = api.GamePlayerMessageC2SCode type playerMessageC2SCodePayload = api.GamePlayerMessageC2SCodePayload +type playerMessageC2SSubmit = api.GamePlayerMessageC2SSubmit +type playerMessageC2SSubmitPayload = api.GamePlayerMessageC2SSubmitPayload func asPlayerMessageC2S(raw map[string]json.RawMessage) (playerMessageC2S, error) { var typ string @@ -61,6 +64,15 @@ func asPlayerMessageC2S(raw map[string]json.RawMessage) (playerMessageC2S, error Type: playerMessageTypeC2SCode, Data: payload, }, nil + case playerMessageTypeC2SSubmit: + var payload playerMessageC2SSubmitPayload + if err := json.Unmarshal(raw["data"], &payload); err != nil { + return nil, err + } + return &playerMessageC2SSubmit{ + Type: playerMessageTypeC2SSubmit, + Data: payload, + }, nil default: return nil, fmt.Errorf("unknown message type: %s", typ) } |
