Advertisement
wtmhahagd

install.py

Jul 20th, 2013
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.27 KB | None | 0 0
  1. import os, os.path, sys
  2. import urllib, zipfile
  3. import shutil, glob, fnmatch
  4. import subprocess, logging
  5. from optparse import OptionParser
  6.  
  7. def fml_main(fml_dir, mcp_dir, gen_conf=True, disable_patches=False, disable_at=False, disable_merge=False, enable_server=False,
  8. disable_client=False, disable_rename=False, disable_assets=False, decompile=False):
  9. sys.path.append(fml_dir)
  10. from fml import download_mcp, setup_mcp, decompile_minecraft, apply_fml_patches, finish_setup_fml
  11. print '================ Forge ModLoader Setup Start ==================='
  12. download_mcp(fml_dir, mcp_dir)
  13. setup_mcp(fml_dir, mcp_dir, gen_conf)
  14. if decompile:
  15. decompile_minecraft(fml_dir, mcp_dir, disable_at=disable_at, disable_merge=disable_merge,
  16. enable_server=enable_server, disable_client=disable_client,
  17. disable_assets=disable_assets)
  18. if disable_patches:
  19. print 'Patching disabled'
  20. else:
  21. apply_fml_patches(fml_dir, mcp_dir, os.path.join(mcp_dir, 'src'))
  22. finish_setup_fml(fml_dir, mcp_dir, enable_server=enable_server, disable_client=disable_client, disable_rename=disable_rename)
  23. else:
  24. print 'Decompile free install is on the to-do!'
  25. print '================ Forge ModLoader Setup End ==================='
  26.  
  27. def forge_main(forge_dir, fml_dir, mcp_dir):
  28. sys.path.append(mcp_dir)
  29. sys.path.append(fml_dir)
  30. from runtime.updatenames import updatenames
  31. from runtime.updatemd5 import updatemd5
  32. from forge import apply_forge_patches
  33. from fml import reset_logger
  34.  
  35. print '=============================== Minecraft Forge Setup Start ====================================='
  36. print 'Applying forge patches'
  37. apply_forge_patches(fml_dir, mcp_dir, forge_dir, os.path.join(mcp_dir, 'src'), True)
  38. os.chdir(mcp_dir)
  39. updatenames(None, True, True, False)
  40. reset_logger()
  41. updatemd5(None, True, True, False)
  42. reset_logger()
  43. os.chdir(forge_dir)
  44. print '=============================== Minecraft Forge Setup Finished ================================='
  45.  
  46. if __name__ == '__main__':
  47. parser = OptionParser()
  48. parser.add_option('-m', '--mcp-dir', action='store', dest='mcp_dir', help='Path to download/extract MCP to', default=None )
  49. parser.add_option('-p', '--no-patch', action="store_true", dest='no_patch', help='Disable application of FML patches', default=False)
  50. parser.add_option('-a', '--no-access', action="store_true", dest='no_access', help='Disable access transformers', default=False)
  51. parser.add_option('-s', '--server', action="store_true", dest='enable_server', help='Enable decompilation of server', default=False)
  52. parser.add_option('-c', '--no-client', action="store_true", dest='no_client', help='Disable decompilation of server', default=False)
  53. parser.add_option('-e', '--no-merge', action="store_true", dest='no_merge', help='Disable merging server code into client', default=False)
  54. parser.add_option('-n', '--no-rename', action="store_true", dest='no_rename', help='Disable running updatenames', default=False)
  55. parser.add_option( '--no-assets', action="store_true", dest='no_assets', help='Disable downloading of assets folder', default=False)
  56. parser.add_option('-d', '--decompile', action="store_true", dest='decompile', help='Decompile minecraft and apply patches', default=True)
  57. options, _ = parser.parse_args()
  58.  
  59. forge_dir = os.path.dirname(os.path.abspath(__file__))
  60. fml_dir = os.path.abspath('fml')
  61. mcp_dir = os.path.abspath('mcp')
  62.  
  63. if not options.mcp_dir is None:
  64. mcp_dir = os.path.abspath(options.mcp_dir)
  65.  
  66. if options.no_client:
  67. options.no_patch = True
  68.  
  69. if options.no_merge:
  70. options.no_patch = True
  71.  
  72. fml_main(fml_dir, mcp_dir, disable_patches=options.no_patch,
  73. disable_at=options.no_access, disable_merge=options.no_merge,
  74. enable_server=options.enable_server, disable_client=options.no_client,
  75. disable_rename=options.no_rename, disable_assets=options.no_assets,
  76. decompile=options.decompile, gen_conf=False)
  77.  
  78. forge_main(forge_dir, fml_dir, mcp_dir)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement