Core: differentiate between unknown worlds and broken worlds in error message (#2903)
This commit is contained in:
parent
74b2bf5161
commit
de860623d1
|
@ -26,6 +26,7 @@ from worlds.alttp.EntranceRandomizer import parse_arguments
|
||||||
from worlds.alttp.Text import TextTable
|
from worlds.alttp.Text import TextTable
|
||||||
from worlds.AutoWorld import AutoWorldRegister
|
from worlds.AutoWorld import AutoWorldRegister
|
||||||
from worlds.generic import PlandoConnection
|
from worlds.generic import PlandoConnection
|
||||||
|
from worlds import failed_world_loads
|
||||||
|
|
||||||
|
|
||||||
def mystery_argparse():
|
def mystery_argparse():
|
||||||
|
@ -458,7 +459,11 @@ def roll_settings(weights: dict, plando_options: PlandoOptions = PlandoOptions.b
|
||||||
|
|
||||||
ret.game = get_choice("game", weights)
|
ret.game = get_choice("game", weights)
|
||||||
if ret.game not in AutoWorldRegister.world_types:
|
if ret.game not in AutoWorldRegister.world_types:
|
||||||
picks = Utils.get_fuzzy_results(ret.game, AutoWorldRegister.world_types, limit=1)[0]
|
picks = Utils.get_fuzzy_results(ret.game, list(AutoWorldRegister.world_types) + failed_world_loads, limit=1)[0]
|
||||||
|
if picks[0] in failed_world_loads:
|
||||||
|
raise Exception(f"No functional world found to handle game {ret.game}. "
|
||||||
|
f"Did you mean '{picks[0]}' ({picks[1]}% sure)? "
|
||||||
|
f"If so, it appears the world failed to initialize correctly.")
|
||||||
raise Exception(f"No world found to handle game {ret.game}. Did you mean '{picks[0]}' ({picks[1]}% sure)? "
|
raise Exception(f"No world found to handle game {ret.game}. Did you mean '{picks[0]}' ({picks[1]}% sure)? "
|
||||||
f"Check your spelling or installation of that world.")
|
f"Check your spelling or installation of that world.")
|
||||||
|
|
||||||
|
|
|
@ -20,9 +20,13 @@ __all__ = {
|
||||||
"user_folder",
|
"user_folder",
|
||||||
"GamesPackage",
|
"GamesPackage",
|
||||||
"DataPackage",
|
"DataPackage",
|
||||||
|
"failed_world_loads",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
failed_world_loads: List[str] = []
|
||||||
|
|
||||||
|
|
||||||
class GamesPackage(TypedDict, total=False):
|
class GamesPackage(TypedDict, total=False):
|
||||||
item_name_groups: Dict[str, List[str]]
|
item_name_groups: Dict[str, List[str]]
|
||||||
item_name_to_id: Dict[str, int]
|
item_name_to_id: Dict[str, int]
|
||||||
|
@ -87,6 +91,7 @@ class WorldSource:
|
||||||
file_like.seek(0)
|
file_like.seek(0)
|
||||||
import logging
|
import logging
|
||||||
logging.exception(file_like.read())
|
logging.exception(file_like.read())
|
||||||
|
failed_world_loads.append(os.path.basename(self.path).rsplit(".", 1)[0])
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue