Compare commits

...

4 Commits

Author SHA1 Message Date
comp500
60887a4312 Whoops 2020-12-07 17:42:52 +00:00
comp500
a368268038 Fix support for symlinked directories 2020-12-07 17:38:21 +00:00
comp500
8beded7b41 Improve UX when there are no optional mods 2020-12-06 19:05:56 +00:00
comp500
91060dcd54 Put an error message there. Later is now! 2020-11-30 00:24:47 +00:00
3 changed files with 16 additions and 7 deletions

View File

@@ -176,7 +176,10 @@ internal class DownloadTask private constructor(val metadata: IndexFile.File, de
} }
if (fileSource.hashIsEqual(hash)) { if (fileSource.hashIsEqual(hash)) {
Files.createDirectories(destPath.parent) // isDirectory follows symlinks, but createDirectories doesn't
if (!Files.isDirectory(destPath.parent)) {
Files.createDirectories(destPath.parent)
}
Files.copy(data.inputStream(), destPath, StandardCopyOption.REPLACE_EXISTING) Files.copy(data.inputStream(), destPath, StandardCopyOption.REPLACE_EXISTING)
data.clear() data.clear()
} else { } else {

View File

@@ -255,8 +255,7 @@ class UpdateManager internal constructor(private val opts: Options, val ui: IUse
return return
} }
if (!indexFileSource.hashIsEqual(indexHash)) { if (!indexFileSource.hashIsEqual(indexHash)) {
// TODO: throw exception ui.handleExceptionAndExit(RuntimeException("Your index hash is invalid! Please run packwiz refresh on the pack again"))
println("I was meant to put an error message here but I'll do that later")
return return
} }
if (stateHandler.cancelButton) { if (stateHandler.cancelButton) {

View File

@@ -180,9 +180,16 @@ class InstallWindow : IUserInterface {
override fun showOptions(options: List<IOptionDetails>): Future<Boolean> { override fun showOptions(options: List<IOptionDetails>): Future<Boolean> {
val future = CompletableFuture<Boolean>() val future = CompletableFuture<Boolean>()
EventQueue.invokeLater { EventQueue.invokeLater {
OptionsSelectWindow(options, future, frmPackwizlauncher).apply { if (options.isEmpty()) {
defaultCloseOperation = JDialog.DISPOSE_ON_CLOSE JOptionPane.showMessageDialog(null,
isVisible = true "This modpack has no optional mods!",
"Optional mods", JOptionPane.INFORMATION_MESSAGE)
future.complete(false)
} else {
OptionsSelectWindow(options, future, frmPackwizlauncher).apply {
defaultCloseOperation = JDialog.DISPOSE_ON_CLOSE
isVisible = true
}
} }
} }
return future return future
@@ -201,7 +208,7 @@ class InstallWindow : IUserInterface {
override fun disableOptionsButton() { override fun disableOptionsButton() {
btnOptions.apply { btnOptions.apply {
text = "Optional mods..." text = "No optional mods"
isEnabled = false isEnabled = false
} }
} }