90c643183e
This is done in preperation for MCP to roll out SpecialSource support and the new 1.6 structure. Also done for my sanity while reading through the code. Intruduced a new function. If there is a 'mcp_data' folder in the FML folder, it will be copied to the MCP work directory after MCP is extracted. It DOES overwrite anything that already exists. This is intended for places like BuildServer to place libraries/assets to prevent them from needing to be downloaded every version. Introduced a dev-env json. Need to write the eclipse workspace references to the new libraries. Out custom json includes asm and legacylauncher. Added proper OptionParsing to decompile.py
87 lines
3.6 KiB
Diff
87 lines
3.6 KiB
Diff
--- commands.py
|
|
+++ commands.py
|
|
@@ -142,6 +142,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"""
|
|
@@ -980,6 +982,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
|
|
@@ -1311,6 +1315,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])
|
|
@@ -1368,7 +1375,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)
|
|
@@ -1376,7 +1383,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)
|
|
@@ -1733,7 +1740,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:
|
|
@@ -1748,6 +1755,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))
|
|
@@ -1920,6 +1930,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])
|
|
@@ -1940,6 +1953,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 = {}
|