You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added a new mod metadata field to specify that a dependency comes from the same repo and branch as the dependent mod, to cut down on unnecessary (and possibly dangerous) branch-hopping.
if (!installDependency(dependency, progressHandler, warningHandler))
220
+
if (!installDependency(dependency, progressHandler, warningHandler, repo))
221
221
warningHandler.handle("WARNING: Failed to install dependency ${dependency.name}!\n\nThe mod may behave erratically or fail to start. Please try to install the dependency manually, or contact the mod (and/or dependency) developers.")
222
222
}
223
223
}
224
224
else {
225
225
meta?.dependencies?.forEach { dependency ->
226
-
if (!installDependency(dependency, progressHandler, warningHandler))
226
+
if (!installDependency(dependency, progressHandler, warningHandler, repo))
227
227
warningHandler.handle("WARNING: Failed to install dependency ${dependency.name}!\n\nThe mod may behave erratically or fail to start. Please try to install the dependency manually, or contact the mod (and/or dependency) developers.")
228
228
}
229
229
}
@@ -330,31 +330,39 @@ object ModInstaller {
330
330
privatefuninstallDependency(
331
331
dependency:RepoMetadata.Dependency,
332
332
progressHandler:TextHandler,
333
-
warningHandler:TextHandler
333
+
warningHandler:TextHandler,
334
+
parentRepo:Git
334
335
): Boolean {
335
336
returntry {
336
-
progressHandler.handle("Parsing URL for dependency \""+ dependency.name +"\"...")
337
-
if (dependency.repository ==null|| dependency.repository =="") {
338
-
warningHandler.handle(
339
-
String.format(
340
-
"Failed to install dependency \"%s\": Dependency metadata doesn't specify a URL. The author may be playing a prank on his users.",
341
-
dependency.name
337
+
val depRepo:Git
338
+
if (dependency.sameSource !=true) {
339
+
progressHandler.handle("Parsing URL for dependency \""+ dependency.name +"\"...")
340
+
if (dependency.repository ==null|| dependency.repository =="") {
341
+
warningHandler.handle(
342
+
String.format(
343
+
"Failed to install dependency \"%s\": Dependency metadata doesn't specify a URL. The author may be playing a prank on his users.",
344
+
dependency.name
345
+
)
342
346
)
343
-
)
344
-
returnfalse
347
+
returnfalse
348
+
}
349
+
val url = parseRepoURL(dependency.repository!!)
350
+
val localRoot = getLocalRoot(url)
351
+
val loadingHandler =GitProgressHandler("Loading dependency \"${dependency.name}\"...", progressHandler)
0 commit comments