Merge branch 'checksumgobrrrr' into 'master'

launcher now checks if there is an update before downloading it

See merge request 2009scape/09launcher!6
This commit is contained in:
Ceikry 2022-04-26 12:06:59 +00:00
commit 2c6296076a
4 changed files with 10 additions and 28 deletions

View file

@ -9,18 +9,6 @@ import java.security.NoSuchAlgorithmException
import kotlin.experimental.and
object Checksum {
val localChecksum: String?
get() {
val local: File = File(Settings.SAVE_DIR + Settings.SAVE_NAME)
try {
FileInputStream(local).use { fis -> return calculateMd5(fis) }
} catch (e: Exception) {
e.printStackTrace()
MainWindow.loadingLabel.text = e.message
MainWindow.loadingLabel.repaint()
}
return null
}
fun getLocalChecksum(file: URI?): String {
val local = File(file!!)
@ -28,21 +16,14 @@ object Checksum {
else FileInputStream(local).use { fis -> return calculateMd5(fis) }
}
val remoteChecksum: String?
get() {
try {
URL(Settings.DOWNLOAD_URL).openStream().use { stream -> return calculateMd5(stream) }
} catch (e: Exception) {
e.printStackTrace()
MainWindow.loadingLabel.text = e.message
MainWindow.loadingLabel.repaint()
return null
}
}
fun getRemoteChecksum(url: String?): String? {
fun getRemoteChecksum(url: String?, checksumFile: Boolean = false): String? {
try {
URL(url).openStream().use { stream -> return calculateMd5(stream) }
if (checksumFile) {
URL(url).openStream().use { stream -> return stream.bufferedReader().use { it.readText().trim() } }
}
else {
URL(url).openStream().use { stream -> return calculateMd5(stream) }
}
} catch (e: Exception) {
e.printStackTrace()
MainWindow.loadingLabel.text = e.message

View file

@ -104,7 +104,7 @@ object MainWindow : JFrame("2009scape Launcher") {
Thread.sleep(50L)
}
Settings.HAS_UPDATED = true
if (Updater.remoteMD5 != "-1" && Updater.remoteMD5 != Updater.localMD5) {
if (Updater.remoteMD5 != Updater.localMD5) {
println("Update required, running update...")
loadingLabel.text = oldText
Updater.runUpdate()

View file

@ -6,6 +6,7 @@ object Settings {
}
val SAVE_NAME = "2009scape.jar"
val DOWNLOAD_URL = "http://play.2009scape.org/2009scape.jar"
val DOWNLOAD_MD5_URL = "http://play.2009scape.org/2009scape.md5sum"
val LAUNCHER_URL = "https://gitlab.com/2009scape/09launcher/-/jobs/artifacts/master/raw/build/libs/2009scape.jar?job=build"
var HAS_UPDATED = false
var CHECK_FOR_UPDATES = true

View file

@ -19,7 +19,7 @@ object Updater {
val fileUri = File(Settings.SAVE_DIR + File.separator + Settings.SAVE_NAME).toURI()
status = UpdateStatus.CHECKING
localMD5 = Checksum.getLocalChecksum(fileUri)
remoteMD5 = Checksum.getRemoteChecksum(Settings.DOWNLOAD_URL) ?: "-1"
remoteMD5 = Checksum.getRemoteChecksum(Settings.DOWNLOAD_MD5_URL, checksumFile = true) ?: "-1"
println("Local: $localMD5 || Remote: $remoteMD5")
status = UpdateStatus.COMPLETE
}