示例#1
0
def main():
    print '=================================== Setup Start ================================='

    skipDecompile = len(sys.argv) > 1 and sys.argv[1] == '-skipdecompile'
    if not skipDecompile:
        if not download_ff(mcp_dir):
            sys.exit(1)

        if os.path.isdir(src_dir):
            shutil.rmtree(src_dir)

        try:

            pre_decompile()

            os.chdir(mcp_dir)
            #         Conf  JAD    CSV    -r    -d    -a     -n    -p     -o     -l     -g
            decompile(None, False, False, True, True, False, True, False,
                      False, False, False)
            reset_logger()
            os.chdir(forge_dir)

            post_decompile()

        except SystemExit, e:
            print 'Decompile Exception: %d ' % e.code
            raise e
示例#2
0
def main():
    print '=================================== Setup Start ================================='
    
    skipDecompile = len(sys.argv) > 1 and sys.argv[1] == '-skipdecompile'
    if not skipDecompile:
        if not download_ff(mcp_dir):
            sys.exit(1)
        
        if os.path.isdir(src_dir):
            shutil.rmtree(src_dir)
            
        try:
            
            pre_decompile()
        
            os.chdir(mcp_dir)
            #         Conf  JAD    CSV    -r    -d    -a     -n    -p     -o     -l     -g
            decompile(None, False, False, True, True, False, True, False, False, False, False)
            reset_logger()
            os.chdir(forge_dir)
            
            post_decompile()
            
        except SystemExit, e:
            print 'Decompile Exception: %d ' % e.code
            raise e   
示例#3
0
def main():
    global version_str
    global version_mc

    build_num = 0
    if len(sys.argv) > 1:
        try:
            build_num = int(sys.argv[1])
        except:
            pass
    ret = 0
    fml_dir = os.path.join(forge_dir, 'fml')
    build_forge_dev(mcp_dir, forge_dir, fml_dir, build_num)
    if ret != 0:
        sys.exit(ret)

    print '=================================== Release Start ================================='
    error_level = 0
    try:
        os.chdir(mcp_dir)
        reset_logger()
        reobfuscate(None, False, True, True, True, False)
        reset_logger()
        os.chdir(forge_dir)
    except SystemExit, e:
        print 'Reobfusicate Exception: %d ' % e.code
        error_level = e.code
示例#4
0
def main():
    print '=================================== Minecraft Forge Setup Start ================================='
    
    if os.path.isdir(os.path.join(mcp_dir, 'conf')):
        shutil.rmtree(os.path.join(mcp_dir, 'conf'))
    copytree(os.path.join(forge_dir, 'conf'), os.path.join(mcp_dir, 'conf'))
    
    if os.path.isdir(src_dir):
        os.chdir(mcp_dir)
        cleanup(None, False)
        reset_logger()
        os.chdir(forge_dir)
        
    if os.path.isdir(src_dir):
        print 'Please make sure to backup your modified files, and say yes when it asks you to do cleanup.'
        sys.exit(1)
    
    if not download_ff(mcp_dir):
        sys.exit(1)
    
    try:
        pre_decompile()
        
        os.chdir(mcp_dir)
        #         Conf  JAD    CSV    -r    -d    -a     -n    -p     -o     -l     -g
        decompile(None, False, False, True, True, False, True, False, False, False, False)
        reset_logger()
        os.chdir(forge_dir)
        
        post_decompile()
        
    except SystemExit, e:
        print 'Decompile Exception: %d ' % e.code
        raise e   
示例#5
0
def main():
    global version_str
    build_num = 0
    if len(sys.argv) > 1:
        try:
            build_num = int(sys.argv[1])
        except:
            pass
    ret = 0
    fml_dir = os.path.join(forge_dir, 'fml')
    build_forge_dev(mcp_dir, forge_dir, fml_dir, build_num)
    if ret != 0:
        sys.exit(ret)
    
    print '=================================== Release Start ================================='
    error_level = 0
    try:
        os.chdir(mcp_dir)
        reset_logger()
        reobfuscate(None, False, True, True)
        reset_logger()
        os.chdir(forge_dir)
    except SystemExit, e:
        print 'Reobfusicate Exception: %d ' % e.code
        error_level = e.code
示例#6
0
def main():
    print '=================================== Minecraft Forge Setup Start ================================='

    if os.path.isdir(os.path.join(mcp_dir, 'conf')):
        shutil.rmtree(os.path.join(mcp_dir, 'conf'))
    copytree(os.path.join(forge_dir, 'conf'), os.path.join(mcp_dir, 'conf'))

    if os.path.isdir(src_dir):
        os.chdir(mcp_dir)
        cleanup(None, False)
        reset_logger()
        os.chdir(forge_dir)

    if os.path.isdir(src_dir):
        print 'Please make sure to backup your modified files, and say yes when it asks you to do cleanup.'
        sys.exit(1)

    if not download_ff(mcp_dir):
        sys.exit(1)

    try:
        pre_decompile()

        os.chdir(mcp_dir)
        #         Conf  JAD    CSV    -r    -d    -a     -n    -p     -o     -l     -g
        decompile(None, False, False, True, True, False, True, False, False,
                  False, False)
        reset_logger()
        os.chdir(forge_dir)

        post_decompile()

    except SystemExit, e:
        print 'Decompile Exception: %d ' % e.code
        raise e
示例#7
0
def build(build_num=0):
    version = load_version(build_num)
    print '=================================== Build %d.%d.%d.%d Start =================================' % (version['major'], version['minor'], version['revision'], version['build'])
    
    if os.path.isdir(src_dir):
        shutil.rmtree(src_dir)
    inject_version(os.path.join(forge_dir, 'forge_common', 'net', 'minecraft', 'src', 'forge', 'ForgeHooks.java'), build_num)
        
    print 'src_work -> src'
    copytree(os.path.join(mcp_dir, 'src_work'), src_dir)
    print '\nforge_client -> minecraft'
    copytree(os.path.join(forge_dir, 'forge_client', 'src'), os.path.join(src_dir, 'minecraft'), -1)
    print '\nforge_server -> minecraft_server'
    copytree(os.path.join(forge_dir, 'forge_server', 'src'), os.path.join(src_dir, 'minecraft_server'), -1)
    print '\nforge_common -> minecraft'
    copytree(os.path.join(forge_dir, 'forge_common'), os.path.join(src_dir, 'minecraft'), -1)
    print '\nforge_common -> minecraft_server'
    copytree(os.path.join(forge_dir, 'forge_common'), os.path.join(src_dir, 'minecraft_server'), -1)
    print
    
    error_level = 0
    try:
        os.chdir(mcp_dir)
        reset_logger()
        recompile(None)
        reset_logger()
        os.chdir(forge_dir)
    except SystemExit, e:
        print 'Recompile Exception: %d ' % e.code
        error_level = e.code
示例#8
0
def main():
    global version_str
    global version_mc

    parser = OptionParser()
    parser.add_option("-m", "--mcp-dir", action="store", dest="mcp_dir", help="MCP Path", default=None)
    parser.add_option("-b", "--build", action="store", dest="build", help="Build number", default=None)
    parser.add_option(
        "-s", "--skipchangelog", action="store", dest="skip_changelog", help="Skip Changelog", default=False
    )
    options, _ = parser.parse_args()

    build_num = 0
    if not options.build is None:
        try:
            build_num = int(options.build)
        except:
            pass

    mcp_dir = os.path.join(forge_dir, "mcp")
    if not options.mcp_dir is None:
        mcp_dir = os.path.abspath(options.mcp_dir)
    elif os.path.isfile(os.path.join("..", "runtime", "commands.py")):
        mcp_dir = os.path.abspath("..")

    ret = 0
    fml_dir = os.path.join(forge_dir, "fml")
    build_forge_dev(mcp_dir, forge_dir, fml_dir, build_num)
    if ret != 0:
        sys.exit(ret)

    print "=================================== Release Start ================================="
    error_level = 0
    try:
        sys.path.append(mcp_dir)
        from runtime.reobfuscate import reobfuscate

        os.chdir(mcp_dir)
        reset_logger()
        reobfuscate(None, False, True, True, True, False)
        reset_logger()
        os.chdir(forge_dir)
    except SystemExit, e:
        print "Reobfusicate Exception: %d " % e.code
        error_level = e.code
示例#9
0
def main():
    global version_str
    global version_mc
    
    parser = OptionParser()
    parser.add_option('-m', '--mcp-dir', action='store', dest='mcp_dir', help='MCP Path', default=None)
    parser.add_option('-b', '--build', action='store', dest='build', help='Build number', default=None)
    parser.add_option('-s', '--skipchangelog', action='store_true', dest='skip_changelog', help='Skip Changelog', default=False)
    parser.add_option('-j', '--sign-jar', action='store', dest='sign_jar', help='Path to jar signer command', default=None)
    options, _ = parser.parse_args()
    
    build_num = 0
    if not options.build is None:
        try:
            build_num = int(options.build)
        except:
            pass

    mcp_dir = os.path.join(forge_dir, 'mcp')
    if not options.mcp_dir is None:
        mcp_dir = os.path.abspath(options.mcp_dir)
    elif os.path.isfile(os.path.join('..', 'runtime', 'commands.py')):
        mcp_dir = os.path.abspath('..')
        
    ret = 0
    fml_dir = os.path.join(forge_dir, 'fml')
    build_forge_dev(mcp_dir, forge_dir, fml_dir, build_num)
    if ret != 0:
        sys.exit(ret)
    

    print '=================================== Release Start ================================='
    error_level = 0
    try:
        sys.path.append(mcp_dir)
        from runtime.reobfuscate import reobfuscate
        os.chdir(mcp_dir)
        reset_logger()
        reobfuscate(None, False, True, True, True, False)
        reset_logger()
        os.chdir(forge_dir)
    except SystemExit, e:
        print 'Reobfusicate Exception: %d ' % e.code
        error_level = e.code
示例#10
0
def main():
    print '=================================== Setup Start ================================='
    
    parser = argparse.ArgumentParser(description='Sets up Forge with MCP.')
    parser.add_argument('--skipdecompile', action='store_true', help='prevents decompilation during setup')
    parser.add_argument('--preventconfigclobber', action='store_true', help='prevents overwriting mcp.cfg during setup')
    args = parser.parse_args()
    
    skipDecompile = args.skipdecompile
    preventConfigClobber = args.preventconfigclobber
    # print "test args {} {}".format(args.skipdecompile, args.preventconfigclobber)
	
    if not preventConfigClobber:
        if os.path.isdir(mcp_included_conf):
            shutil.rmtree(mcp_included_conf)
        
        shutil.copytree(forge_mcp_conf, mcp_included_conf)
        print 'Successfully overwrote MCP config folder with the Forge config folder (including patches)! (If you want this to not happen, please use the --preventconfigclobber option!)'
	
    if not skipDecompile:
        if not download_ff(mcp_dir):
            sys.exit(1)
        
        if os.path.isdir(src_dir):
            shutil.rmtree(src_dir)
            
        try:
            
            pre_decompile()
        
            os.chdir(mcp_dir)
            #         Conf  JAD    CSV    -r    -d    -a     -n    -p     -o     -l     -g
            decompile(None, False, False, True, True, False, True, False, False, False, False)
            reset_logger()
            os.chdir(forge_dir)
            
            post_decompile()
            
        except SystemExit, e:
            print 'Decompile Exception: %d ' % e.code
            raise e   
示例#11
0
def build(build_num=0):
    version = load_version(build_num)
    print '=================================== Build %d.%d.%d.%d Start =================================' % (
        version['major'], version['minor'], version['revision'],
        version['build'])

    if os.path.isdir(src_dir):
        shutil.rmtree(src_dir)
    inject_version(
        os.path.join(forge_dir, 'forge_common', 'net', 'minecraft', 'src',
                     'forge', 'ForgeHooks.java'), build_num)

    print 'src_work -> src'
    copytree(os.path.join(mcp_dir, 'src_work'), src_dir)
    print '\nforge_client -> minecraft'
    copytree(os.path.join(forge_dir, 'forge_client', 'src'),
             os.path.join(src_dir, 'minecraft'), -1)
    print '\nforge_server -> minecraft_server'
    copytree(os.path.join(forge_dir, 'forge_server', 'src'),
             os.path.join(src_dir, 'minecraft_server'), -1)
    print '\nforge_common -> minecraft'
    copytree(os.path.join(forge_dir, 'forge_common'),
             os.path.join(src_dir, 'minecraft'), -1)
    print '\nforge_common -> minecraft_server'
    copytree(os.path.join(forge_dir, 'forge_common'),
             os.path.join(src_dir, 'minecraft_server'), -1)
    print

    error_level = 0
    try:
        os.chdir(mcp_dir)
        reset_logger()
        recompile(None)
        reset_logger()
        os.chdir(forge_dir)
    except SystemExit, e:
        print 'Recompile Exception: %d ' % e.code
        error_level = e.code
示例#12
0
def main():
    global version_str
    build_num = 0
    if len(sys.argv) > 1:
        try:
            build_num = int(sys.argv[1])
        except:
            pass
    ret = 0
    ret = build(build_num)
    if ret != 0:
        sys.exit(ret)

    print "=================================== Release Start ================================="
    error_level = 0
    try:
        os.chdir(mcp_dir)
        reset_logger()
        reobfuscate(None, False, True, True)
        reset_logger()
        os.chdir(forge_dir)
    except SystemExit, e:
        print "Reobfusicate Exception: %d " % e.code
        error_level = e.code
示例#13
0
            
        except SystemExit, e:
            print 'Decompile Exception: %d ' % e.code
            raise e   

    if not os.path.isdir(src_dir):
        print 'Something went wrong, src folder not found at: %s' % src_dir
        sys.exit(1)
        
    cleanup_source(src_dir)
    
    setup_fml()
    
    os.chdir(mcp_dir)
    updatenames(None, True)
    reset_logger()
    updatemd5(None, True)
    reset_logger()
    os.chdir(forge_dir)
    
    base_dir = os.path.join(mcp_dir, 'src_base')
    work_dir = os.path.join(mcp_dir, 'src_work')
    
    if os.path.isdir(base_dir):
        shutil.rmtree(base_dir)
    if os.path.isdir(work_dir):
        shutil.rmtree(work_dir)
        
    print 'Setting up source directories'    
    shutil.copytree(src_dir, base_dir)
    shutil.copytree(src_dir, work_dir)
示例#14
0
def main():
    global version_str
    global version_mc
    
    parser = OptionParser()
    parser.add_option('-m', '--mcp-dir', action='store', dest='mcp_dir', help='MCP Path', default=None)
    parser.add_option('-b', '--build', action='store', dest='build', help='Build number', default=None)
    parser.add_option('-s', '--skipchangelog', action='store_true', dest='skip_changelog', help='Skip Changelog', default=False)
    parser.add_option('-j', '--sign-jar', action='store', dest='sign_jar', help='Path to jar signer command', default=None)
    options, _ = parser.parse_args()
    
    build_num = 0
    if not options.build is None:
        try:
            build_num = int(options.build)
        except:
            pass

    mcp_dir = os.path.join(forge_dir, 'mcp')
    if not options.mcp_dir is None:
        mcp_dir = os.path.abspath(options.mcp_dir)
        
    ret = 0
    fml_dir = os.path.join(forge_dir, 'fml')
    ret = build_forge_dev(mcp_dir, forge_dir, fml_dir, build_num)
    if ret != 0:
        sys.exit(ret)
    
    
    temp_dir = os.path.join(forge_dir, 'temp')
    src_dir = os.path.join(mcp_dir, 'src')
    reobf_dir = os.path.join(mcp_dir, 'reobf')
    client_dir = os.path.join(reobf_dir, 'minecraft')
    fml_dir = os.path.join(temp_dir, 'fml')

    print '=================================== Release Start ================================='
    
    fml = glob.glob(os.path.join(forge_dir, 'fml', 'target', 'fml-src-*.%d-*.zip' % build_num))
    if not len(fml) == 1:
        if len(fml) == 0:
            print 'Missing FML source zip, should be named fml-src-*.zip inside ./fml/target/ created when running setup'
        else:
            print 'To many FML source zips found, we should only have one. Check the Forge Git for the latest FML version supported'
        sys.exit(1)
    
    if os.path.isdir(fml_dir):
        shutil.rmtree(fml_dir)
        
    print 'Extracting: %s' % os.path.basename(fml[0])
    zf = zipfile.ZipFile(fml[0])
    zf.extractall(temp_dir)
    zf.close()
    
    error_level = 0
    try:
        sys.path.append(mcp_dir)
        from runtime.reobfuscate import reobfuscate
        os.chdir(mcp_dir)
        reset_logger()
        reobfuscate(None, False, True, True, True, False, False)
        reset_logger()
        os.chdir(forge_dir)
    except SystemExit, e:
        print 'Reobfusicate Exception: %d ' % e.code
        error_level = e.code
示例#15
0
def main():
    global version_str
    global version_mc

    parser = OptionParser()
    parser.add_option('-m',
                      '--mcp-dir',
                      action='store',
                      dest='mcp_dir',
                      help='MCP Path',
                      default=None)
    parser.add_option('-b',
                      '--build',
                      action='store',
                      dest='build',
                      help='Build number',
                      default=None)
    parser.add_option('-s',
                      '--skipchangelog',
                      action='store_true',
                      dest='skip_changelog',
                      help='Skip Changelog',
                      default=False)
    parser.add_option('-j',
                      '--sign-jar',
                      action='store',
                      dest='sign_jar',
                      help='Path to jar signer command',
                      default=None)
    options, _ = parser.parse_args()

    build_num = 0
    if not options.build is None:
        try:
            build_num = int(options.build)
        except:
            pass

    mcp_dir = os.path.join(forge_dir, 'mcp')
    if not options.mcp_dir is None:
        mcp_dir = os.path.abspath(options.mcp_dir)
    elif os.path.isfile(os.path.join('..', 'runtime', 'commands.py')):
        mcp_dir = os.path.abspath('..')

    ret = 0
    fml_dir = os.path.join(forge_dir, 'fml')
    build_forge_dev(mcp_dir, forge_dir, fml_dir, build_num)
    if ret != 0:
        sys.exit(ret)

    print '=================================== Release Start ================================='
    error_level = 0
    try:
        sys.path.append(mcp_dir)
        from runtime.reobfuscate import reobfuscate
        os.chdir(mcp_dir)
        reset_logger()
        reobfuscate(None, False, True, True, True, False)
        reset_logger()
        os.chdir(forge_dir)
    except SystemExit, e:
        print 'Reobfusicate Exception: %d ' % e.code
        error_level = e.code
示例#16
0
            apply_patches(os.path.join(fml_dir, 'patches', 'minecraft'),
                          src_dir)
        if os.path.isdir(os.path.join(fml_dir, 'src', 'minecraft')):
            copytree(os.path.join(fml_dir, 'src', 'minecraft'),
                     os.path.join(src_dir, 'minecraft'))
    if has_server:
        if os.path.isdir(os.path.join(fml_dir, 'patches', 'minecraft_server')):
            apply_patches(os.path.join(fml_dir, 'patches', 'minecraft_server'),
                          src_dir)
        if os.path.isdir(os.path.join(fml_dir, 'src', 'minecraft_server')):
            copytree(os.path.join(fml_dir, 'src', 'minecraft_server'),
                     os.path.join(src_dir, 'minecraft_server'))

    os.chdir(mcp_dir)
    updatenames(None, True)
    reset_logger()
    os.chdir(forge_dir)

    print 'Applying forge patches'
    if has_client:
        if os.path.isdir(os.path.join(forge_dir, 'patches', 'minecraft')):
            apply_patches(os.path.join(forge_dir, 'patches', 'minecraft'),
                          src_dir)
        if os.path.isdir(os.path.join(forge_dir, 'src', 'minecraft')):
            copytree(os.path.join(forge_dir, 'src', 'minecraft'),
                     os.path.join(src_dir, 'minecraft'))
    if has_server:
        if os.path.isdir(os.path.join(forge_dir, 'patches',
                                      'minecraft_server')):
            apply_patches(
                os.path.join(forge_dir, 'patches', 'minecraft_server'),
示例#17
0
def main():
    global version_str
    global version_mc

    parser = OptionParser()
    parser.add_option('-m',
                      '--mcp-dir',
                      action='store',
                      dest='mcp_dir',
                      help='MCP Path',
                      default=None)
    parser.add_option('-b',
                      '--build',
                      action='store',
                      dest='build',
                      help='Build number',
                      default=None)
    parser.add_option('-s',
                      '--skipchangelog',
                      action='store_true',
                      dest='skip_changelog',
                      help='Skip Changelog',
                      default=False)
    parser.add_option('-j',
                      '--sign-jar',
                      action='store',
                      dest='sign_jar',
                      help='Path to jar signer command',
                      default=None)
    options, _ = parser.parse_args()

    build_num = 0
    if not options.build is None:
        try:
            build_num = int(options.build)
        except:
            pass

    mcp_dir = os.path.join(forge_dir, 'mcp')
    if not options.mcp_dir is None:
        mcp_dir = os.path.abspath(options.mcp_dir)

    ret = 0
    fml_dir = os.path.join(forge_dir, 'fml')
    ret = build_forge_dev(mcp_dir, forge_dir, fml_dir, build_num)
    if ret != 0:
        sys.exit(ret)

    temp_dir = os.path.join(forge_dir, 'temp')
    src_dir = os.path.join(mcp_dir, 'src')
    reobf_dir = os.path.join(mcp_dir, 'reobf')
    client_dir = os.path.join(reobf_dir, 'minecraft')
    fml_dir = os.path.join(temp_dir, 'fml')

    print '=================================== Release Start ================================='

    fml = glob.glob(
        os.path.join(forge_dir, 'fml', 'target',
                     'fml-src-*.%d-*.zip' % build_num))
    if not len(fml) == 1:
        if len(fml) == 0:
            print 'Missing FML source zip, should be named fml-src-*.zip inside ./fml/target/ created when running setup'
        else:
            print 'To many FML source zips found, we should only have one. Check the Forge Git for the latest FML version supported'
        sys.exit(1)

    if os.path.isdir(fml_dir):
        shutil.rmtree(fml_dir)

    print 'Extracting: %s' % os.path.basename(fml[0])
    zf = zipfile.ZipFile(fml[0])
    zf.extractall(temp_dir)
    zf.close()

    if os.path.isfile('MANIFEST.MF'):
        os.remove('MANIFEST.MF')

    fml_name = os.path.basename(fml[0]).replace('src', 'universal').replace(
        '.zip', '.jar').replace('-master.', '.')
    print('Extracting %s MANIFEST.MF' % fml_name)
    with closing(
            zipfile.ZipFile(os.path.join(forge_dir, 'fml', 'target', fml_name),
                            mode='r')) as zip_in:
        with closing(open('MANIFEST.MF', 'wb')) as out:
            out.write(zip_in.read('META-INF/MANIFEST.MF'))

    error_level = 0
    try:
        sys.path.append(mcp_dir)
        from runtime.reobfuscate import reobfuscate
        os.chdir(mcp_dir)
        reset_logger()
        reobfuscate(None, False, True, True, True, False, False)
        reset_logger()
        os.chdir(forge_dir)
    except SystemExit, e:
        print 'Reobfusicate Exception: %d ' % e.code
        error_level = e.code