--- commands.py +++ commands.py @@ -139,6 +139,8 @@ fieldnames = csvreader.fieldnames return set(fieldnames) +def commands_sanity_check(): + print ' Commands patch applied successfully' class Commands(object): """Contains the commands and initialisation for a full mcp run""" @@ -918,6 +920,8 @@ binlk = {CLIENT: self.binclient, SERVER: self.binserver} testlk = {CLIENT: self.testclient, SERVER: self.testserver} + if side == SERVER and not os.path.exists(os.path.join(binlk[side], os.path.normpath(testlk[side] + '.class'))): + return self.checkbins(CLIENT) if not os.path.exists(os.path.join(binlk[side], os.path.normpath(testlk[side] + '.class'))): return False return True @@ -1249,6 +1253,9 @@ pathbinlk = {CLIENT: self.binclient, SERVER: self.binserver} pathsrclk = {CLIENT: self.srcclient, SERVER: self.srcserver} pathlog = {CLIENT: self.clientrecomplog, SERVER: self.serverrecomplog} + + if side == SERVER: #Warn about server because FML recombines it into client + self.logger.info('Server side recompiling might be skipped, this is normal, do not complain to FML/Forge team about server side.') if not os.path.exists(pathbinlk[side]): os.makedirs(pathbinlk[side]) @@ -1306,7 +1313,7 @@ raise def startserver(self): - classpath = [self.binserver] + self.cpathserver + classpath = [self.binclient, self.srcclient] + self.cpathserver classpath = [os.path.join('..', p) for p in classpath] classpath = os.pathsep.join(classpath) os.chdir(self.dirjars) @@ -1314,7 +1321,7 @@ self.runmc(forkcmd) def startclient(self): - classpath = [self.binclient] + self.cpathclient + classpath = [self.binclient, self.srcclient] + self.cpathclient classpath = [os.path.join('..', p) for p in classpath] classpath = os.pathsep.join(classpath) natives = os.path.join('..', self.dirnatives) @@ -1671,7 +1678,7 @@ self.runcmd(forkcmd) return True - def gathermd5s(self, side, reobf=False): + def gathermd5s(self, side, reobf=False, skip_fml=False): if not reobf: md5lk = {CLIENT: self.md5client, SERVER: self.md5server} else: @@ -1686,6 +1693,9 @@ class_path = '' else: class_path += '/' + if skip_fml: + if class_path.startswith('cpw/'): + continue for class_file in fnmatch.filter(filelist, '*.class'): class_name = class_path + os.path.splitext(class_file)[0] bin_file = os.path.normpath(os.path.join(path, class_file)) @@ -1858,6 +1868,9 @@ sys.exit(1) for entry in newfiles: + if 'commands.py' in entry[0]: #FML, Disable updating of Commands.py + print 'Update to runtime/commands.py found, but disbled due to using fml' + continue if entry[3] == 'U': self.logger.info('Retrieving file from server : %s', entry[0]) cur_file = os.path.normpath(entry[0]) @@ -1878,6 +1891,9 @@ md5reoblk = {CLIENT: self.md5reobfclient, SERVER: self.md5reobfserver} outpathlk = {CLIENT: self.srcmodclient, SERVER: self.srcmodserver} src = {CLIENT: self.srcclient, SERVER: self.srcserver} + + if side == SERVER: #Noop out server side stuff + return # HINT: We need a table for the old md5 and the new ones md5table = {}