From f06f95d03dd88f4a8aa35a88d2b75eedc7526a24 Mon Sep 17 00:00:00 2001 From: Aaron Wagener Date: Tue, 1 Oct 2024 16:55:34 -0500 Subject: [PATCH] Core: move race_mode to read_data instead of stored_data (#4020) * move race_mode to read_data * add race_mode to docs --- CommonClient.py | 3 +-- MultiServer.py | 2 +- docs/network protocol.md | 1 + kvui.py | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CommonClient.py b/CommonClient.py index 8325227d..296c10ed 100644 --- a/CommonClient.py +++ b/CommonClient.py @@ -325,7 +325,6 @@ class CommonContext: "collect": "disabled", "remaining": "disabled", } - self.race_mode: int = 0 # own state self.finished_game = False @@ -455,7 +454,7 @@ class CommonContext: if kwargs: payload.update(kwargs) await self.send_msgs([payload]) - await self.send_msgs([{"cmd": "Get", "keys": ["race_mode"]}]) + await self.send_msgs([{"cmd": "Get", "keys": ["_read_race_mode"]}]) async def console_input(self) -> str: if self.ui: diff --git a/MultiServer.py b/MultiServer.py index 91f4eec6..c3e377e9 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -428,7 +428,7 @@ class Context: self.read_data = {} # there might be a better place to put this. - self.stored_data["race_mode"] = decoded_obj.get("race_mode", 0) + self.read_data["race_mode"] = lambda: decoded_obj.get("race_mode", 0) mdata_ver = decoded_obj["minimum_versions"]["server"] if mdata_ver > version_tuple: raise RuntimeError(f"Supplied Multidata (.archipelago) requires a server of at least version {mdata_ver}," diff --git a/docs/network protocol.md b/docs/network protocol.md index f8080fec..1c4579c4 100644 --- a/docs/network protocol.md +++ b/docs/network protocol.md @@ -395,6 +395,7 @@ Some special keys exist with specific return data, all of them have the prefix ` | item_name_groups_{game_name} | dict\[str, list\[str\]\] | item_name_groups belonging to the requested game. | | location_name_groups_{game_name} | dict\[str, list\[str\]\] | location_name_groups belonging to the requested game. | | client_status_{team}_{slot} | [ClientStatus](#ClientStatus) | The current game status of the requested player. | +| race_mode | int | 0 if race mode is disabled, and 1 if it's enabled. | ### Set Used to write data to the server's data storage, that data can then be shared across worlds or just saved for later. Values for keys in the data storage can be retrieved with a [Get](#Get) package, or monitored with a [SetNotify](#SetNotify) package. diff --git a/kvui.py b/kvui.py index d58af3ed..74d8ad06 100644 --- a/kvui.py +++ b/kvui.py @@ -243,8 +243,9 @@ class ServerLabel(HovererableLabel): f"\nYou currently have {ctx.hint_points} points." elif ctx.hint_cost == 0: text += "\n!hint is free to use." - if ctx.stored_data and "race_mode" in ctx.stored_data: - text += "\nRace mode is enabled." if ctx.stored_data["race_mode"] else "\nRace mode is disabled." + if ctx.stored_data and "_read_race_mode" in ctx.stored_data: + text += "\nRace mode is enabled." \ + if ctx.stored_data["_read_race_mode"] else "\nRace mode is disabled." else: text += f"\nYou are not authenticated yet."