WebHost: Allow plando

Maybe move to a different webpage?
This commit is contained in:
Fabian Dill 2021-09-23 02:29:24 +02:00
parent 3da028415f
commit 3caf8bc82b
2 changed files with 6 additions and 2 deletions

View File

@ -369,6 +369,7 @@ class RestrictedUnpickler(pickle.Unpickler):
super(RestrictedUnpickler, self).__init__(*args, **kwargs) super(RestrictedUnpickler, self).__init__(*args, **kwargs)
self.options_module = importlib.import_module("Options") self.options_module = importlib.import_module("Options")
self.net_utils_module = importlib.import_module("NetUtils") self.net_utils_module = importlib.import_module("NetUtils")
self.generic_properties_module = importlib.import_module("worlds.generic")
def find_class(self, module, name): def find_class(self, module, name):
if module == "builtins" and name in safe_builtins: if module == "builtins" and name in safe_builtins:
@ -376,7 +377,9 @@ class RestrictedUnpickler(pickle.Unpickler):
# used by MultiServer -> savegame/multidata # used by MultiServer -> savegame/multidata
if module == "NetUtils" and name in {"NetworkItem", "ClientStatus", "Hint"}: if module == "NetUtils" and name in {"NetworkItem", "ClientStatus", "Hint"}:
return getattr(self.net_utils_module, name) return getattr(self.net_utils_module, name)
# Options are unpickled by WebHost -> Generate # Options and Plando are unpickled by WebHost -> Generate
if module == "worlds.generic" and name in {"PlandoItem", "PlandoConnection"}:
return getattr(self.generic_properties_module, name)
if module.endswith("Options"): if module.endswith("Options"):
if module == "Options": if module == "Options":
mod = self.options_module mod = self.options_module

View File

@ -73,7 +73,8 @@ def roll_options(options: Dict[str, Union[dict, str]]) -> Tuple[Dict[str, Union[
results[filename] = f"Failed to parse YAML data in {filename}: {e}" results[filename] = f"Failed to parse YAML data in {filename}: {e}"
else: else:
try: try:
rolled_results[filename] = roll_settings(yaml_data, plando_options={"bosses"}) rolled_results[filename] = roll_settings(yaml_data,
plando_options={"bosses", "items", "connections", "texts"})
except Exception as e: except Exception as e:
results[filename] = f"Failed to generate mystery in {filename}: {e}" results[filename] = f"Failed to generate mystery in {filename}: {e}"
else: else: