【发布时间】:2014-07-14 23:05:30
【问题描述】:
我对 Python 几乎一无所知,所以我来这里问大家如何改变它。我将提供文件片段,这应该是您解决此问题所需的全部内容。
main.py - 记录所有日志,完成所有工作
commands.logger.info('> Applying SpecialSource')
commands.applyss(side, keep_lvt=keep_lvt, keep_generics=keep_generics)
commands.py - 包含所有的定义
def applyss(self, side, reobf=False, srg_names=False, in_jar=None, out_jar=None, keep_lvt=False, keep_generics=False):
"""Apply ss to the given side"""
cplk = {CLIENT: self.cpathclient, SERVER: self.cpathserver}
cfgsrg = {CLIENT: self.srgsclient, SERVER: self.srgsserver}
deobsrg = {CLIENT: self.deobsrgclient, SERVER: self.deobsrgserver}
reobsrg = {CLIENT: self.reobsrgclient, SERVER: self.reobsrgserver}
rsrgsrg = {CLIENT: self.reobsrgclientsrg, SERVER: self.reobsrgserversrg}
if in_jar is None:
if reobf:
in_jar = {CLIENT: self.cmpjarclient, SERVER: self.cmpjarserver}[side]
else:
in_jar = {CLIENT: self.jarclient, SERVER: self.jarserver}[side]
if out_jar is None:
if reobf:
out_jar = {CLIENT: self.reobfjarclient, SERVER: self.reobfjarserver}[side]
else:
out_jar = {CLIENT: self.rgclientout, SERVER: self.rgserverout}[side]
if reobf:
cmd = self.cmdssreobf
if srg_names:
identifier = 'RGMCPSRG'
srg = rsrgsrg[side]
else:
identifier = 'RGMCP'
srg = reobsrg[side]
else:
cmd = self.cmdss
identifier = None
srg = cfgsrg[side]
# add specialsource.jar to copy of client or server classpath
sscp = [self.specialsource] + cplk[side]
sscp = os.pathsep.join(sscp)
forkcmd = cmd.format(classpath=sscp, injar=in_jar, outjar=out_jar, identifier=identifier, mapfile=srg)
if not keep_lvt:
forkcmd += ' --kill-lvt'
if not keep_generics:
forkcmd += ' --kill-generics'
try:
self.runcmd(forkcmd)
if not reobf:
shutil.copyfile(cfgsrg[side], deobsrg[side])
shutil.copyfile(deobsrg[side], reobsrg[side])
except CalledProcessError as ex:
self.logger.error('')
self.logger.error('== ERRORS FOUND ==')
self.logger.error('')
for line in ex.output.splitlines():
if line.strip():
if line[0] != '#':
self.logger.error(line)
self.logger.error('==================')
self.logger.error('')
raise
如果您还没有弄清楚,这就是 MCP 或 Minecraft Coder Pack。问题是,在反编译服务器 jar 时,它在 > Applying SpecialSource 阶段内存不足。我不知道它在哪里写了java -jar SpecialSource.jar 之类的东西,希望你能告诉我在哪里可以找到它。
【问题讨论】:
标签: java python memory minecraft decompiler