Skip to content

Commit ca19c76

Browse files
committed
Remove artifact duplication in the classpath
1 parent 10ea818 commit ca19c76

File tree

5 files changed

+16
-11
lines changed

5 files changed

+16
-11
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
}
88

99
group 'fr.flowarg'
10-
version '3.2.10'
10+
version '3.2.11'
1111
archivesBaseName = 'openlauncherlib'
1212

1313
java {

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#Sun Dec 29 21:36:55 CET 2019
2-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip
2+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-all.zip
33
distributionBase=GRADLE_USER_HOME
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists

src/main/java/fr/flowarg/openlauncherlib/NoFramework.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -250,26 +250,28 @@ private List<String> getVmArgsFor(JSONObject object, JSONObject vanilla)
250250
private String getClassPath(JSONObject vanilla, JSONObject modLoader)
251251
{
252252
final List<String> cp = new ArrayList<>();
253+
final List<String> artifacts = new ArrayList<>();
253254

254255
if (modLoader != null)
255-
this.appendLibraries(cp, modLoader);
256-
this.appendLibraries(cp, vanilla);
256+
this.appendLibraries(cp, artifacts, modLoader);
257+
this.appendLibraries(cp, artifacts, vanilla);
257258

258259
cp.add(this.gameDir.resolve(this.clientJar).toAbsolutePath().toString());
259260

260261
return this.toString(cp);
261262
}
262263

263-
private void appendLibraries(List<String> sb, JSONObject object)
264+
private void appendLibraries(List<String> sb, List<String> artifacts, JSONObject object)
264265
{
265266
object.getJSONArray("libraries").forEach(jsonElement -> {
266267
final JSONObject libraryObject = ((JSONObject)jsonElement);
267268
final Path path;
269+
final String[] nameParts = libraryObject.getString("name").split(":");
270+
String internalArtifactName = nameParts[0] + ':' + nameParts[1];
271+
if(nameParts.length == 4)
272+
internalArtifactName += ':' + nameParts[3];
268273
if(libraryObject.isNull("downloads"))
269-
{
270-
final String[] nameParts = libraryObject.getString("name").split(":");
271274
path = this.libraries.resolve(nameParts[0].replace('.', '/')).resolve(nameParts[1]).resolve(nameParts[2]).resolve(nameParts[1] + "-" + nameParts[2] + ".jar");
272-
}
273275
else
274276
{
275277
final JSONObject downloads = libraryObject.getJSONObject("downloads");
@@ -279,8 +281,11 @@ private void appendLibraries(List<String> sb, JSONObject object)
279281
path = this.libraries.resolve(downloads.getJSONObject("artifact").getString("path"));
280282
}
281283
final String str = path.toAbsolutePath() + File.pathSeparator;
282-
if(!sb.contains(str) && Files.exists(path))
284+
if(!sb.contains(str) && Files.exists(path) && !artifacts.contains(internalArtifactName))
285+
{
283286
sb.add(str);
287+
artifacts.add(internalArtifactName);
288+
}
284289
});
285290
}
286291

src/main/resources/assets/languages/en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"hi-ext": "OpenLauncherLib 3.2.10 by Adrien 'Litarvan' Navratil and Flow (FlowArg) Arg - External Launching System",
2+
"hi-ext": "OpenLauncherLib 3.2.11 by Adrien 'Litarvan' Navratil and Flow (FlowArg) Arg - External Launching System",
33
"options": "Options",
44
"ram": "RAM",
55
"warn": "Warning",

src/main/resources/assets/languages/fr.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"hi-ext": "OpenLauncherLib 3.2.10 par Adrien 'Litarvan' Navratil et Flow (Flow Arg) Arg - Systeme de lancement externe",
2+
"hi-ext": "OpenLauncherLib 3.2.11 par Adrien 'Litarvan' Navratil et Flow (Flow Arg) Arg - Systeme de lancement externe",
33
"options": "Options",
44
"ram": "RAM",
55
"warn": "Attention",

0 commit comments

Comments
 (0)