Core: move MultiServer.py and CommonClient.py to orjson

This commit is contained in:
Fabian Dill
2025-08-03 08:20:21 +02:00
parent 84c2d70d9a
commit c6df02a355
5 changed files with 70 additions and 59 deletions

13
Main.py
View File

@@ -342,7 +342,18 @@ def main(args, seed=None, baked_server_options: dict[str, object] | None = None)
# TODO: change to `"version": version_tuple` after getting better serialization
AutoWorld.call_all(multiworld, "modify_multidata", multidata)
for key in ("slot_data", "er_hint_data"):
base_types_keys = ["er_hint_data"]
# starting with 0.7.0 pre-encode slot data, until then multiserver does it on load
if version_tuple < (0, 7, 0):
base_types_keys.append("slot_data")
else:
for slot, data in multidata["slot_data"].items():
multidata[slot] = NetUtils.encode_to_bytes(data)
assert type(multidata[slot]) is bytes
multidata["minimum_versions"]["server"] = max((0, 7, 0), multidata["minimum_versions"]["server"])
for key in base_types_keys:
multidata[key] = convert_to_base_types(multidata[key])
multidata = zlib.compress(restricted_dumps(multidata), 9)