From 8a925ecc524f0ccd26feafe28e549791dfcb3d26 Mon Sep 17 00:00:00 2001 From: Jason Scheirer Date: Mon, 31 Oct 2011 01:34:48 -0700 Subject: [PATCH] Handle minecraft.jar if it's a directory (if you've installed mods etc.) --- overviewer_core/textures.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index c7e58d8..c404fc8 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -89,7 +89,7 @@ def _find_file(filename, mode="rb", verbose=False): jarpaths.append(os.path.join(_find_file_local_path, "minecraft.jar")) for jarpath in jarpaths: - if os.path.exists(jarpath): + if os.path.isfile(jarpath): jar = zipfile.ZipFile(jarpath) for jarfilename in [filename, 'misc/' + filename, 'environment/' + filename]: try: @@ -97,6 +97,12 @@ def _find_file(filename, mode="rb", verbose=False): return jar.open(jarfilename) except (KeyError, IOError), e: pass + elif os.path.isdir(jarpath): + for jarfilename in [filename, 'misc/' + filename, 'environment/' + filename]: + ondiskfilename = os.path.join(jarpath, jarfilename) + if os.path.isfile(ondiskfilename): + if verbose: logging.info("Found %s in '%s'", jarfilename, jarpath) + return open(ondiskfilename, 'rb') raise IOError("Could not find the file `{0}'. You can either place it in the same place as overviewer.py, use --textures-path, or install the Minecraft client.".format(filename))