diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-07-29 02:58:54 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-07-29 02:58:57 +0900 |
| commit | 161d82bee9f9e65680516a9cfd392e0cf297eadf (patch) | |
| tree | 2f248715213d12d6649f32b5ddcbb0d9a0281ed8 /backend/game/message.go | |
| parent | 4c7238f58dcc463d22d50bfc6cd2aaae70e41958 (diff) | |
| download | phperkaigi-2025-albatross-161d82bee9f9e65680516a9cfd392e0cf297eadf.tar.gz phperkaigi-2025-albatross-161d82bee9f9e65680516a9cfd392e0cf297eadf.tar.zst phperkaigi-2025-albatross-161d82bee9f9e65680516a9cfd392e0cf297eadf.zip | |
feat: handle code and execresult messages
Diffstat (limited to 'backend/game/message.go')
| -rw-r--r-- | backend/game/message.go | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/backend/game/message.go b/backend/game/message.go index 23774ce..9116bde 100644 --- a/backend/game/message.go +++ b/backend/game/message.go @@ -8,10 +8,12 @@ import ( ) const ( - playerMessageTypeS2CPrepare = "player:s2c:prepare" - playerMessageTypeS2CStart = "player:s2c:start" - playerMessageTypeC2SEntry = "player:c2s:entry" - playerMessageTypeC2SReady = "player:c2s:ready" + playerMessageTypeS2CPrepare = "player:s2c:prepare" + playerMessageTypeS2CStart = "player:s2c:start" + playerMessageTypeS2CExecResult = "player:s2c:execreslut" + playerMessageTypeC2SEntry = "player:c2s:entry" + playerMessageTypeC2SReady = "player:c2s:ready" + playerMessageTypeC2SCode = "player:c2s:code" ) type playerMessageC2SWithClient struct { @@ -26,10 +28,14 @@ type playerMessageS2CPrepare = api.GamePlayerMessageS2CPrepare type playerMessageS2CPreparePayload = api.GamePlayerMessageS2CPreparePayload type playerMessageS2CStart = api.GamePlayerMessageS2CStart type playerMessageS2CStartPayload = api.GamePlayerMessageS2CStartPayload +type playerMessageS2CExecResult = api.GamePlayerMessageS2CExecResult +type playerMessageS2CExecResultPayload = api.GamePlayerMessageS2CExecResultPayload type playerMessageC2S = interface{} type playerMessageC2SEntry = api.GamePlayerMessageC2SEntry type playerMessageC2SReady = api.GamePlayerMessageC2SReady +type playerMessageC2SCode = api.GamePlayerMessageC2SCode +type playerMessageC2SCodePayload = api.GamePlayerMessageC2SCodePayload func asPlayerMessageC2S(raw map[string]json.RawMessage) (playerMessageC2S, error) { var typ string @@ -46,6 +52,15 @@ func asPlayerMessageC2S(raw map[string]json.RawMessage) (playerMessageC2S, error return &playerMessageC2SReady{ Type: playerMessageTypeC2SReady, }, nil + case playerMessageTypeC2SCode: + var payload playerMessageC2SCodePayload + if err := json.Unmarshal(raw["data"], &payload); err != nil { + return nil, err + } + return &playerMessageC2SCode{ + Type: playerMessageTypeC2SCode, + Data: payload, + }, nil default: return nil, fmt.Errorf("unknown message type: %s", typ) } |
