Core: print both world source paths in case of conflict (#4751)

This commit is contained in:
Fabian Dill
2025-04-21 00:53:40 +02:00
committed by GitHub
parent 1a6de25ab6
commit 6613c29652

View File

@@ -83,11 +83,13 @@ class AutoWorldRegister(type):
# construct class # construct class
new_class = super().__new__(mcs, name, bases, dct) new_class = super().__new__(mcs, name, bases, dct)
new_class.__file__ = sys.modules[new_class.__module__].__file__
if "game" in dct: if "game" in dct:
if dct["game"] in AutoWorldRegister.world_types: if dct["game"] in AutoWorldRegister.world_types:
raise RuntimeError(f"""Game {dct["game"]} already registered.""") raise RuntimeError(f"""Game {dct["game"]} already registered in
{AutoWorldRegister.world_types[dct["game"]].__file__} when attempting to register from
{new_class.__file__}.""")
AutoWorldRegister.world_types[dct["game"]] = new_class AutoWorldRegister.world_types[dct["game"]] = new_class
new_class.__file__ = sys.modules[new_class.__module__].__file__
if ".apworld" in new_class.__file__: if ".apworld" in new_class.__file__:
new_class.zip_path = pathlib.Path(new_class.__file__).parents[1] new_class.zip_path = pathlib.Path(new_class.__file__).parents[1]
if "settings_key" not in dct: if "settings_key" not in dct: