From 510a460d8424206f3afbeea1dae58621f2151e41 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Sat, 1 Apr 2023 19:54:44 +0200 Subject: [PATCH] Multiserver: location name groups fix (#1643) --- MultiServer.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MultiServer.py b/MultiServer.py index acc68e16..21aee68a 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -260,7 +260,8 @@ class Context: def _init_game_data(self): for game_name, game_package in self.gamespackage.items(): - self.checksums[game_name] = game_package["checksum"] + if "checksum" in game_package: + self.checksums[game_name] = game_package["checksum"] for item_name, item_id in game_package["item_name_to_id"].items(): self.item_names[item_id] = item_name for location_name, location_id in game_package["location_name_to_id"].items(): @@ -268,7 +269,7 @@ class Context: self.all_item_and_group_names[game_name] = \ set(game_package["item_name_to_id"]) | set(self.item_name_groups[game_name]) self.all_location_and_group_names[game_name] = \ - set(game_package["location_name_to_id"]) | set(self.location_name_groups[game_name]) + set(game_package["location_name_to_id"]) | set(self.location_name_groups.get(game_name, [])) def item_names_for_game(self, game: str) -> typing.Optional[typing.Dict[str, int]]: return self.gamespackage[game]["item_name_to_id"] if game in self.gamespackage else None @@ -356,9 +357,7 @@ class Context: [{"cmd": "PrintJSON", "data": [{ "text": text }], **additional_arguments} for text in texts])) - # loading - def load(self, multidatapath: str, use_embedded_server_options: bool = False): if multidatapath.lower().endswith(".zip"): import zipfile @@ -446,9 +445,10 @@ class Context: logging.info(f"Loading embedded data package for game {game_name}") self.gamespackage[game_name] = data self.item_name_groups[game_name] = data["item_name_groups"] - self.location_name_groups[game_name] = data["location_name_groups"] + if "location_name_groups" in data: + self.location_name_groups[game_name] = data["location_name_groups"] + del data["location_name_groups"] del data["item_name_groups"] # remove from data package, but keep in self.item_name_groups - del data["location_name_groups"] self._init_game_data() for game_name, data in self.item_name_groups.items(): self.read_data[f"item_name_groups_{game_name}"] = lambda lgame=game_name: self.item_name_groups[lgame]