Compare commits

..

2 Commits

Author SHA1 Message Date
comp500
73d21a475a Fix phantom state of opted-out files made non-optional 2022-05-23 00:55:58 +01:00
comp500
7568770078 Fix optional button waiting when there are no optional mods 2022-05-23 00:38:57 +01:00
2 changed files with 13 additions and 9 deletions

View File

@@ -182,13 +182,13 @@ internal class DownloadTask private constructor(val metadata: IndexFile.File, de
// Ensure wrong-side or optional false files are removed // Ensure wrong-side or optional false files are removed
cachedFile?.let { cachedFile?.let {
if (!it.optionValue || !correctSide()) { if ((it.isOptional && !it.optionValue) || !correctSide()) {
if (it.cachedLocation == null) return if (it.cachedLocation != null) {
try {
try { Files.deleteIfExists(Paths.get(packFolder, it.cachedLocation))
Files.deleteIfExists(Paths.get(packFolder, it.cachedLocation)) } catch (e: IOException) {
} catch (e: IOException) { Log.warn("Failed to delete file before downloading", e)
Log.warn("Failed to delete file before downloading", e) }
} }
it.cachedLocation = null it.cachedLocation = null
} }

View File

@@ -128,7 +128,9 @@ class UpdateManager internal constructor(private val opts: Options, val ui: IUse
if (manifest.packFileHash?.let { packFileSource.hashIsEqual(it) } == true && invalidatedUris.isEmpty()) { if (manifest.packFileHash?.let { packFileSource.hashIsEqual(it) } == true && invalidatedUris.isEmpty()) {
// todo: --force? // todo: --force?
ui.submitProgress(InstallProgress("Modpack is already up to date!", 1, 1)) ui.submitProgress(InstallProgress("Modpack is already up to date!", 1, 1))
ui.awaitOptionalButton(false) if (manifest.cachedFiles.any { it.value.isOptional }) {
ui.awaitOptionalButton(false)
}
if (!ui.optionsButtonPressed) { if (!ui.optionsButtonPressed) {
return return
} }
@@ -186,7 +188,9 @@ class UpdateManager internal constructor(private val opts: Options, val ui: IUse
private fun processIndex(indexUri: SpaceSafeURI, indexHash: Hash, hashFormat: String, manifest: ManifestFile, invalidatedUris: List<SpaceSafeURI>) { private fun processIndex(indexUri: SpaceSafeURI, indexHash: Hash, hashFormat: String, manifest: ManifestFile, invalidatedUris: List<SpaceSafeURI>) {
if (manifest.indexFileHash == indexHash && invalidatedUris.isEmpty()) { if (manifest.indexFileHash == indexHash && invalidatedUris.isEmpty()) {
ui.submitProgress(InstallProgress("Modpack files are already up to date!", 1, 1)) ui.submitProgress(InstallProgress("Modpack files are already up to date!", 1, 1))
ui.awaitOptionalButton(false) if (manifest.cachedFiles.any { it.value.isOptional }) {
ui.awaitOptionalButton(false)
}
if (!ui.optionsButtonPressed) { if (!ui.optionsButtonPressed) {
return return
} }