mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
update checker using github release page
This commit is contained in:
@@ -15,11 +15,11 @@ The filenames must be:
|
||||
Then, on the terminal, run following commands:
|
||||
|
||||
```
|
||||
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-x86/jmods:mods --add-modules java.base,java.desktop,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-linux-x86 --no-header-files --no-man-pages --strip-debug --compress=2
|
||||
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-arm/jmods:mods --add-modules java.base,java.desktop,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-linux-arm --no-header-files --no-man-pages --strip-debug --compress=2
|
||||
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-windows/jmods:mods --add-modules java.base,java.desktop,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-windows-x86 --no-header-files --no-man-pages --strip-debug --compress=2
|
||||
jlink --module-path ~/Documents/openjdk/jdk-17.0.1.jdk-arm/Contents/Home/jmods:mods --add-modules java.base,java.desktop,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-osx-arm --no-header-files --no-man-pages --strip-debug --compress=2
|
||||
jlink --module-path ~/Documents/openjdk/jdk-17.0.1.jdk-x86/Contents/Home/jmods:mods --add-modules java.base,java.desktop,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-osx-x86 --no-header-files --no-man-pages --strip-debug --compress=2
|
||||
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-x86/jmods:mods --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-linux-x86 --no-header-files --no-man-pages --strip-debug --compress=2
|
||||
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-arm/jmods:mods --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-linux-arm --no-header-files --no-man-pages --strip-debug --compress=2
|
||||
jlink --module-path ~/Documents/openjdk/jdk-17.0.1-windows/jmods:mods --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-windows-x86 --no-header-files --no-man-pages --strip-debug --compress=2
|
||||
jlink --module-path ~/Documents/openjdk/jdk-17.0.1.jdk-arm/Contents/Home/jmods:mods --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-osx-arm --no-header-files --no-man-pages --strip-debug --compress=2
|
||||
jlink --module-path ~/Documents/openjdk/jdk-17.0.1.jdk-x86/Contents/Home/jmods:mods --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.logging,java.scripting,jdk.unsupported --output ~/Documents/Terrarum/out/runtime-osx-x86 --no-header-files --no-man-pages --strip-debug --compress=2
|
||||
```
|
||||
|
||||
(note: matching the building machine with the target OS is highly recommended -- Use Linux for building linux x86/arm; Mac for building macOS x86/arm; Windows for building Windows Java Runtime)
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package net.torvald.terrarum;
|
||||
|
||||
import com.badlogic.gdx.*;
|
||||
import com.badlogic.gdx.Graphics;
|
||||
import com.badlogic.gdx.audio.AudioDevice;
|
||||
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
|
||||
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
|
||||
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Graphics;
|
||||
import com.badlogic.gdx.controllers.Controllers;
|
||||
import com.badlogic.gdx.graphics.*;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
@@ -32,7 +30,6 @@ import net.torvald.terrarum.langpack.Lang;
|
||||
import net.torvald.terrarum.modulebasegame.IngameRenderer;
|
||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame;
|
||||
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory;
|
||||
import net.torvald.terrarum.serialise.Common;
|
||||
import net.torvald.terrarum.serialise.WriteConfig;
|
||||
import net.torvald.terrarum.ui.Toolkit;
|
||||
import net.torvald.terrarum.utils.JsonFetcher;
|
||||
@@ -44,7 +41,6 @@ import net.torvald.unsafe.DanglingPointerException;
|
||||
import net.torvald.unsafe.UnsafeHelper;
|
||||
import net.torvald.util.DebugTimers;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
@@ -327,6 +323,8 @@ public class App implements ApplicationListener {
|
||||
public static long bogoflops = 0L;
|
||||
private static double bogoflopf = Math.random();
|
||||
|
||||
public static boolean hasUpdate = true;
|
||||
|
||||
public static Screen getCurrentScreen() {
|
||||
return currentScreen;
|
||||
}
|
||||
@@ -1115,6 +1113,10 @@ public class App implements ApplicationListener {
|
||||
}
|
||||
|
||||
|
||||
hasUpdate = CheckUpdate.INSTANCE.hasUpdate();
|
||||
printdbg(this, "Has update: " + hasUpdate);
|
||||
|
||||
|
||||
printdbg(this, "PostInit done");
|
||||
}
|
||||
|
||||
|
||||
70
src/net/torvald/terrarum/CheckUpdate.kt
Normal file
70
src/net/torvald/terrarum/CheckUpdate.kt
Normal file
@@ -0,0 +1,70 @@
|
||||
package net.torvald.terrarum
|
||||
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.App.printdbgerr
|
||||
import net.torvald.terrarum.savegame.ByteArray64GrowableOutputStream
|
||||
import net.torvald.terrarum.savegame.DiskSkimmer.Companion.read
|
||||
import java.io.*
|
||||
import java.net.MalformedURLException
|
||||
import java.net.URI
|
||||
import java.net.URL
|
||||
import java.net.http.HttpClient
|
||||
import java.net.http.HttpRequest
|
||||
import java.net.http.HttpResponse
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2023-10-03.
|
||||
*/
|
||||
object CheckUpdate {
|
||||
|
||||
private val versionNumFull = App.getVERSION_STRING()
|
||||
private val versionNumOnly = String.format(
|
||||
"%d.%d.%d",
|
||||
App.VERSION_RAW ushr 48,
|
||||
App.VERSION_RAW and 0xffff000000L ushr 24,
|
||||
App.VERSION_RAW and 0xffffffL
|
||||
)
|
||||
|
||||
private val checkUpdateURL = setOf(
|
||||
"https://github.com/curioustorvald/Terrarum/releases/tag/v$versionNumOnly",
|
||||
"https://github.com/curioustorvald/Terrarum/releases/tag/v$versionNumFull",
|
||||
).toList()
|
||||
|
||||
private fun wget(url: String): String? {
|
||||
printdbg(this, "wget $url")
|
||||
|
||||
var ret: String? = null
|
||||
var fail: Throwable? = null
|
||||
try {
|
||||
// check the http connection before we do anything to the fs
|
||||
val client = HttpClient.newBuilder().build()
|
||||
val request = HttpRequest.newBuilder().uri(URI.create(url)).build()
|
||||
val response = client.send(request, HttpResponse.BodyHandlers.ofString())
|
||||
ret = if (response.statusCode() >= 400) null else response.body()
|
||||
|
||||
printdbg(this, "HTTP ${response.statusCode()}")
|
||||
}
|
||||
catch (e: Throwable) {
|
||||
fail = e
|
||||
printdbgerr(this, "wget $url got error: ${e.stackTraceToString()}")
|
||||
}
|
||||
finally {
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
fun hasUpdate(): Boolean {
|
||||
var allNull = true
|
||||
|
||||
val hasLatestAny = checkUpdateURL.any { url ->
|
||||
val http = wget(url)
|
||||
if (http != null) allNull = false
|
||||
http?.contains("a href=\"/curioustorvald/Terrarum/releases/latest") ?: false
|
||||
}
|
||||
|
||||
return if (allNull) false else !hasLatestAny
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -111,6 +111,8 @@ public class Principii {
|
||||
cmd0.add(runtime);
|
||||
cmd0.addAll(extracmds);
|
||||
cmd0.addAll(userDefinedExtraCmds);
|
||||
// cmd0.add("-Dhttps.protocols=SSLv3,TLSv1.2,TLSv1.1,TLSv1");
|
||||
// cmd0.add("-Djavax.net.debug=ssl:handshake:verbose");
|
||||
cmd0.add("-Xms1G");
|
||||
cmd0.add("-Xmx"+xmx+"G");
|
||||
cmd0.add("-cp");
|
||||
|
||||
Reference in New Issue
Block a user