mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-12 03:24:06 +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:
|
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-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.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-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.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-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.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-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.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.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)
|
(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;
|
package net.torvald.terrarum;
|
||||||
|
|
||||||
import com.badlogic.gdx.*;
|
import com.badlogic.gdx.*;
|
||||||
import com.badlogic.gdx.Graphics;
|
|
||||||
import com.badlogic.gdx.audio.AudioDevice;
|
import com.badlogic.gdx.audio.AudioDevice;
|
||||||
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
|
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
|
||||||
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
|
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
|
||||||
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Graphics;
|
|
||||||
import com.badlogic.gdx.controllers.Controllers;
|
import com.badlogic.gdx.controllers.Controllers;
|
||||||
import com.badlogic.gdx.graphics.*;
|
import com.badlogic.gdx.graphics.*;
|
||||||
import com.badlogic.gdx.graphics.Color;
|
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.IngameRenderer;
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame;
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame;
|
||||||
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory;
|
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory;
|
||||||
import net.torvald.terrarum.serialise.Common;
|
|
||||||
import net.torvald.terrarum.serialise.WriteConfig;
|
import net.torvald.terrarum.serialise.WriteConfig;
|
||||||
import net.torvald.terrarum.ui.Toolkit;
|
import net.torvald.terrarum.ui.Toolkit;
|
||||||
import net.torvald.terrarum.utils.JsonFetcher;
|
import net.torvald.terrarum.utils.JsonFetcher;
|
||||||
@@ -44,7 +41,6 @@ import net.torvald.unsafe.DanglingPointerException;
|
|||||||
import net.torvald.unsafe.UnsafeHelper;
|
import net.torvald.unsafe.UnsafeHelper;
|
||||||
import net.torvald.util.DebugTimers;
|
import net.torvald.util.DebugTimers;
|
||||||
|
|
||||||
import java.awt.*;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -327,6 +323,8 @@ public class App implements ApplicationListener {
|
|||||||
public static long bogoflops = 0L;
|
public static long bogoflops = 0L;
|
||||||
private static double bogoflopf = Math.random();
|
private static double bogoflopf = Math.random();
|
||||||
|
|
||||||
|
public static boolean hasUpdate = true;
|
||||||
|
|
||||||
public static Screen getCurrentScreen() {
|
public static Screen getCurrentScreen() {
|
||||||
return currentScreen;
|
return currentScreen;
|
||||||
}
|
}
|
||||||
@@ -1115,6 +1113,10 @@ public class App implements ApplicationListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
hasUpdate = CheckUpdate.INSTANCE.hasUpdate();
|
||||||
|
printdbg(this, "Has update: " + hasUpdate);
|
||||||
|
|
||||||
|
|
||||||
printdbg(this, "PostInit done");
|
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.add(runtime);
|
||||||
cmd0.addAll(extracmds);
|
cmd0.addAll(extracmds);
|
||||||
cmd0.addAll(userDefinedExtraCmds);
|
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("-Xms1G");
|
||||||
cmd0.add("-Xmx"+xmx+"G");
|
cmd0.add("-Xmx"+xmx+"G");
|
||||||
cmd0.add("-cp");
|
cmd0.add("-cp");
|
||||||
|
|||||||
Reference in New Issue
Block a user