Skip to content

Commit 2640df0

Browse files
fix jars
1 parent ebf0551 commit 2640df0

6 files changed

Lines changed: 96 additions & 32 deletions

File tree

.gitignore

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
# AI CLI Tools
21
.claude/
32
.claude-flow/
43
.swarm/
54
AGENTS.md
5+
CLAUDE.md
66

77
.gradle
88
build/
99

10+
jars/
11+
libs/
12+
vineflower.jar
13+
1014
# Decompiled source (generated)
1115
decompSrc/
1216

@@ -24,12 +28,9 @@ run/
2428
run_server/
2529
runclient/
2630

27-
# Ignore Gradle GUI config
31+
# Gradle GUI config
2832
gradle-app.setting
2933

30-
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
31-
!gradle-wrapper.jar
32-
3334
# IDE files
3435
.vscode/
3536
.idea/

build.gradle

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ def patchSrcDir = "${rootDir}/patchSrc"
3535
def assetIndexId = '29'
3636
def assetIndexUrl = 'https://piston-meta.mojang.com/v1/packages/568d91f5973ea84fe46311a88c93b5dc7c9fa6ec/29.json'
3737

38+
def clientJarUrl = 'https://piston-data.mojang.com/v1/objects/8e75db09feb89eec8ed7f2a2ae779b3fb1fb7f18/client.jar'
39+
def serverJarUrl = 'https://piston-data.mojang.com/v1/objects/205a55e13ce3104298dd84d1fa55bc524fb3ca51/server.jar'
40+
def vineflowerUrl = 'https://github.com/Vineflower/vineflower/releases/download/1.11.2/vineflower-1.11.2.jar'
41+
3842
def decompLibs = [
3943
'authlib-7.0.61.jar',
4044
'brigadier-1.3.10.jar',
@@ -53,9 +57,59 @@ def buildLibArgs(String libsPath, List<String> libs) {
5357
return libs.collect { "-e=${libsPath}/${it}" }
5458
}
5559

60+
task downloadJars {
61+
group = 'setup'
62+
description = 'Download client and server jars'
63+
64+
doLast {
65+
file(jarsDir).mkdirs()
66+
file(libsDir).mkdirs()
67+
68+
def vfDest = new File(rootDir, 'vineflower.jar')
69+
if (!vfDest.exists()) {
70+
vfDest.bytes = new URL(vineflowerUrl).bytes
71+
}
72+
73+
def clientDest = new File(jarsDir, 'client.jar')
74+
def serverBundler = new File(jarsDir, 'server-bundler.jar')
75+
def serverDest = new File(jarsDir, 'server.jar')
76+
77+
if (!clientDest.exists()) {
78+
clientDest.bytes = new URL(clientJarUrl).bytes
79+
}
80+
81+
if (!serverDest.exists()) {
82+
serverBundler.bytes = new URL(serverJarUrl).bytes
83+
84+
def zipFile = new java.util.zip.ZipFile(serverBundler)
85+
def versionsList = zipFile.getEntry('META-INF/versions.list')
86+
def versionsContent = zipFile.getInputStream(versionsList).text.trim()
87+
def parts = versionsContent.split('\t')
88+
def serverEntry = zipFile.getEntry("META-INF/versions/${parts[2]}")
89+
serverDest.bytes = zipFile.getInputStream(serverEntry).bytes
90+
91+
zipFile.entries().each { entry ->
92+
if (entry.name.startsWith('META-INF/libraries/') && entry.name.endsWith('.jar')) {
93+
def jarName = entry.name.substring(entry.name.lastIndexOf('/') + 1)
94+
if (decompLibs.contains(jarName)) {
95+
def libDest = new File(libsDir, jarName)
96+
if (!libDest.exists()) {
97+
libDest.bytes = zipFile.getInputStream(entry).bytes
98+
}
99+
}
100+
}
101+
}
102+
103+
zipFile.close()
104+
serverBundler.delete()
105+
}
106+
}
107+
}
108+
56109
task decompServer(type: Exec) {
57110
group = 'decompile'
58111
description = 'Decompile server.jar'
112+
dependsOn downloadJars
59113

60114
def outputDir = "${decompSrcDir}/server"
61115
def inputJar = "${jarsDir}/server.jar"
@@ -77,6 +131,7 @@ task decompServer(type: Exec) {
77131
task decompClient(type: Exec) {
78132
group = 'decompile'
79133
description = 'Decompile client.jar'
134+
dependsOn downloadJars
80135

81136
def outputDir = "${decompSrcDir}/client"
82137
def inputJar = "${jarsDir}/client.jar"
@@ -478,6 +533,9 @@ clean {
478533
delete "${rootDir}/server/src"
479534
delete "${rootDir}/client/bin"
480535
delete "${rootDir}/server/bin"
536+
delete "${rootDir}/jars"
537+
delete "${rootDir}/libs"
538+
delete "${rootDir}/vineflower.jar"
481539
}
482540

483541
task downloadAssetIndex {

gradle/wrapper/gradle-wrapper.jar

-16.2 KB
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
44
networkTimeout=10000
5+
validateDistributionUrl=true
56
zipStoreBase=GRADLE_USER_HOME
67
zipStorePath=wrapper/dists

gradlew

Lines changed: 18 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gradlew.bat

Lines changed: 13 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)