fall back to %APPDATA% if WScript doesn't work

This commit is contained in:
David Vierra 2010-11-15 00:48:48 -10:00
parent b7eb1175b6
commit 356cd02fb2

View File

@ -158,15 +158,19 @@ minecraftDirs = {
'darwin':os.path.expanduser("~/Library/Application Support/minecraft"), 'darwin':os.path.expanduser("~/Library/Application Support/minecraft"),
} }
minecraftDir = minecraftDirs.get(sys.platform, os.path.expanduser("~/.minecraft")); #default to Linux save location minecraftDir = minecraftDirs.get(sys.platform, os.path.expanduser("~/.minecraft")); #default to Linux save location
minecraftDir = minecraftDir.decode(sys.getfilesystemencoding());
if sys.platform == "win32": if sys.platform == "win32":
#do it using win32com because expandvars always returns a byte array when we #not sure why win32com is needed if the %APPDATA% var is available
#need a unicode for the filesystem routines try:
import win32com.client
import win32com.client objShell = win32com.client.Dispatch("WScript.Shell")
minecraftDir = os.path.join(objShell.SpecialFolders("AppData"), u".minecraft")
objShell = win32com.client.Dispatch("WScript.Shell") except Exception, e:
minecraftDir = os.path.join(objShell.SpecialFolders("AppData"), u".minecraft") print "WScript error {0!r}".format(e)
minecraftDir = os.path.expandvars("%APPDATA%\\.minecraft\\saves")
minecraftDir = minecraftDir.decode(sys.getfilesystemencoding());
saveFileDir = os.path.join(minecraftDir, u"saves") saveFileDir = os.path.join(minecraftDir, u"saves")