Normalize outbound RPC params to ints so cached game dicts (float ids from Godot's JSON parser) don't fail Install.Queue with -32700
This commit is contained in:
parent
e9f25d104b
commit
b19903e682
2 changed files with 7 additions and 2 deletions
|
|
@ -323,7 +323,12 @@ func _rpc_call(method: String, params: Dictionary = {}) -> Dictionary:
|
|||
var id := _next_id
|
||||
_next_id += 1
|
||||
var req := {"jsonrpc": "2.0", "id": id, "method": method, "params": params}
|
||||
_send_line(JSON.stringify(req))
|
||||
# Params can carry game dicts that went through a JSON cache roundtrip
|
||||
# (Godot's JSON.parse_string decodes every number as a float), so an id
|
||||
# like 936521 comes back as 936521.0 and butlerd's int64 fields reject it
|
||||
# with RPC error -32700. Normalizing before serializing guarantees every
|
||||
# integral number is sent as an int, mirroring the inbound normalization.
|
||||
_send_line(JSON.stringify(_normalize_json(req)))
|
||||
|
||||
var out: Array = [-1, null, null]
|
||||
while out[0] != id:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue