parent
3da028415f
commit
3caf8bc82b
5
Utils.py
5
Utils.py
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in New Issue