代码库初始化
This commit is contained in:
1 parent
07786ab323
commit
4334694551
851 files changed
+42626
No files matched your search
@@ -0,0 +1,45 @@
|
||||
import zipfile, os, subprocess, shutil
|
||||
|
||||
jar = r'e:\MCStudioDownload\work\3027246179@qq.com\Cpp\AddOn\309c2d420bc84ee986db9cdd070ff02a\_sa_hanhua_out\sa_essentials-forge-1.20.1-1.0.0.jar'
|
||||
out = r'e:\MCStudioDownload\work\3027246179@qq.com\Cpp\AddOn\309c2d420bc84ee986db9cdd070ff02a\_sa_hanhua_out\_tmp\classes'
|
||||
os.makedirs(out, exist_ok=True)
|
||||
|
||||
targets = [
|
||||
'com/ogaba/sa_combat/client/tooltip/BlueprintClientTooltipComponent.class',
|
||||
'com/ogaba/sa_combat/client/tooltip/BlueprintClientTooltipComponent$1.class',
|
||||
'com/ogaba/sa_combat/item/BlueprintTooltipComponent.class',
|
||||
'com/ogaba/sa_combat/item/BlueprintItem.class',
|
||||
'com/ogaba/sa_combat/blueprint/BlueprintDefinitionRegistry$Definition.class',
|
||||
'com/ogaba/sa_combat/blueprint/BlueprintDefinitionRegistry.class',
|
||||
]
|
||||
|
||||
with zipfile.ZipFile(jar) as z:
|
||||
for t in targets:
|
||||
data = z.read(t)
|
||||
p = os.path.join(out, t.replace('/', os.sep))
|
||||
os.makedirs(os.path.dirname(p), exist_ok=True)
|
||||
with open(p, 'wb') as f:
|
||||
f.write(data)
|
||||
print('extracted:', t)
|
||||
|
||||
# javap 反编译查看渲染逻辑
|
||||
javap = shutil.which('javap')
|
||||
if javap is None:
|
||||
# 尝试常见 JDK 路径
|
||||
for cand in [r'C:\Program Files\Java\jdk-17\bin\javap.exe',
|
||||
r'C:\Program Files\Java\jdk-21\bin\javap.exe',
|
||||
r'C:\Program Files\Microsoft\jdk-17.0.11\bin\javap.exe',
|
||||
r'C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot\bin\javap.exe']:
|
||||
if os.path.exists(cand):
|
||||
javap = cand
|
||||
break
|
||||
print('javap =', javap)
|
||||
|
||||
if javap:
|
||||
for t in targets:
|
||||
cname = t[:-6].replace('/', '.')
|
||||
r = subprocess.run([javap, '-c', '-p', '-classpath', out, cname], capture_output=True, text=True, encoding='utf-8', errors='replace')
|
||||
print('\n' + '='*20, cname, '='*20)
|
||||
print(r.stdout[:6000] if r.returncode == 0 else r.stderr[:3000])
|
||||
else:
|
||||
print('javap NOT FOUND')
|
||||
Reference in new issue
Block a user