mirror of
https://github.com/packwiz/packwiz-installer.git
synced 2025-10-17 08:24:32 +02:00
Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
1d5a787b02 | ||
|
b5983800e8 | ||
|
4b3c279e71 | ||
|
b413371306 | ||
|
1d2ec61232 |
6
.idea/compiler.xml
generated
Normal file
6
.idea/compiler.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CompilerConfiguration">
|
||||||
|
<bytecodeTargetLevel target="1.8" />
|
||||||
|
</component>
|
||||||
|
</project>
|
2
.idea/packwiz-installer.iml
generated
Normal file
2
.idea/packwiz-installer.iml
generated
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4" />
|
@@ -1,2 +1,2 @@
|
|||||||
# packwiz-installer
|
# packwiz-installer
|
||||||
An installer for launching packwiz modpacks with MultiMC.
|
An installer for launching packwiz modpacks with MultiMC. You'll need [the bootstrapper](https://github.com/comp500/packwiz-installer-bootstrap/releases) to actually use this.
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
@file:JvmName("Main")
|
||||||
|
|
||||||
package link.infra.packwiz.installer
|
package link.infra.packwiz.installer
|
||||||
|
|
||||||
import link.infra.packwiz.installer.metadata.SpaceSafeURI
|
import link.infra.packwiz.installer.metadata.SpaceSafeURI
|
||||||
@@ -84,6 +86,7 @@ class Main(args: Array<String>) {
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
// Called by packwiz-installer-bootstrap to set up the help command
|
// Called by packwiz-installer-bootstrap to set up the help command
|
||||||
|
@JvmStatic
|
||||||
fun addNonBootstrapOptions(options: Options) {
|
fun addNonBootstrapOptions(options: Options) {
|
||||||
options.addOption("s", "side", true, "Side to install mods from (client/server, defaults to client)")
|
options.addOption("s", "side", true, "Side to install mods from (client/server, defaults to client)")
|
||||||
options.addOption(null, "title", true, "Title of the installer window")
|
options.addOption(null, "title", true, "Title of the installer window")
|
||||||
@@ -92,6 +95,7 @@ class Main(args: Array<String>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: link these somehow so they're only defined once?
|
// TODO: link these somehow so they're only defined once?
|
||||||
|
@JvmStatic
|
||||||
private fun addBootstrapOptions(options: Options) {
|
private fun addBootstrapOptions(options: Options) {
|
||||||
options.addOption(null, "bootstrap-update-url", true, "Github API URL for checking for updates")
|
options.addOption(null, "bootstrap-update-url", true, "Github API URL for checking for updates")
|
||||||
options.addOption(null, "bootstrap-update-token", true, "Github API Access Token, for private repositories")
|
options.addOption(null, "bootstrap-update-token", true, "Github API Access Token, for private repositories")
|
||||||
|
@@ -126,7 +126,6 @@ class UpdateManager internal constructor(private val opts: Options, val ui: IUse
|
|||||||
|
|
||||||
ui.submitProgress(InstallProgress("Loading pack file..."))
|
ui.submitProgress(InstallProgress("Loading pack file..."))
|
||||||
val packFileSource = try {
|
val packFileSource = try {
|
||||||
Objects.requireNonNull(opts.downloadURI)
|
|
||||||
val src = getFileSource(opts.downloadURI!!)
|
val src = getFileSource(opts.downloadURI!!)
|
||||||
getHasher("sha256").getHashingSource(src)
|
getHasher("sha256").getHashingSource(src)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
@@ -191,12 +190,16 @@ class UpdateManager internal constructor(private val opts: Options, val ui: IUse
|
|||||||
handleCancellation()
|
handleCancellation()
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
// This is badly written, I'll probably heavily refactor it at some point
|
val index = pf.index!!
|
||||||
// The port to Kotlin made this REALLY messy!!!!
|
getNewLoc(opts.downloadURI, index.file)?.let { newLoc ->
|
||||||
getNewLoc(opts.downloadURI, Objects.requireNonNull(pf.index)!!.file)?.let {
|
index.hashFormat?.let { hashFormat ->
|
||||||
pf.index!!.hashFormat?.let { it1 ->
|
processIndex(
|
||||||
processIndex(it,
|
newLoc,
|
||||||
getHash(Objects.requireNonNull(pf.index!!.hashFormat)!!, Objects.requireNonNull(pf.index!!.hash)!!), it1, manifest, invalidatedUris)
|
getHash(index.hashFormat!!, index.hash!!),
|
||||||
|
hashFormat,
|
||||||
|
manifest,
|
||||||
|
invalidatedUris
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e1: Exception) {
|
} catch (e1: Exception) {
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
package link.infra.packwiz.installer.request
|
package link.infra.packwiz.installer.request
|
||||||
|
|
||||||
import link.infra.packwiz.installer.metadata.SpaceSafeURI
|
import link.infra.packwiz.installer.metadata.SpaceSafeURI
|
||||||
|
import link.infra.packwiz.installer.request.handlers.RequestHandlerFile
|
||||||
import link.infra.packwiz.installer.request.handlers.RequestHandlerGithub
|
import link.infra.packwiz.installer.request.handlers.RequestHandlerGithub
|
||||||
import link.infra.packwiz.installer.request.handlers.RequestHandlerHTTP
|
import link.infra.packwiz.installer.request.handlers.RequestHandlerHTTP
|
||||||
import okio.Source
|
import okio.Source
|
||||||
@@ -9,7 +10,8 @@ object HandlerManager {
|
|||||||
|
|
||||||
private val handlers: List<IRequestHandler> = listOf(
|
private val handlers: List<IRequestHandler> = listOf(
|
||||||
RequestHandlerGithub(),
|
RequestHandlerGithub(),
|
||||||
RequestHandlerHTTP()
|
RequestHandlerHTTP(),
|
||||||
|
RequestHandlerFile()
|
||||||
)
|
)
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
|
@@ -0,0 +1,18 @@
|
|||||||
|
package link.infra.packwiz.installer.request.handlers
|
||||||
|
|
||||||
|
import link.infra.packwiz.installer.metadata.SpaceSafeURI
|
||||||
|
import link.infra.packwiz.installer.request.IRequestHandler
|
||||||
|
import okio.Source
|
||||||
|
import okio.source
|
||||||
|
import java.nio.file.Paths
|
||||||
|
|
||||||
|
open class RequestHandlerFile : IRequestHandler {
|
||||||
|
override fun matchesHandler(loc: SpaceSafeURI): Boolean {
|
||||||
|
return "file" == loc.scheme
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getFileSource(loc: SpaceSafeURI): Source? {
|
||||||
|
val path = Paths.get(loc.toURL().toURI())
|
||||||
|
return path.source()
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user