don't use File::slashpath, fix some date formatting

This commit is contained in:
Moritz Zwerger 2025-06-24 23:39:25 +02:00
parent 841fd3c77e
commit 39717c3144
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
4 changed files with 23 additions and 9 deletions

View File

@ -29,6 +29,7 @@ import de.bixilon.minosoft.gui.eros.util.JavaFXUtil
import de.bixilon.minosoft.protocol.network.session.play.PlaySession
import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil.div
import de.bixilon.minosoft.util.KUtil.format1
import de.bixilon.minosoft.util.crash.CrashReportUtil
import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels
@ -43,9 +44,12 @@ import javafx.scene.text.TextFlow
import javafx.stage.Modality
import javafx.stage.Stage
import javafx.stage.Window
import java.io.File
import java.io.FileOutputStream
import java.nio.charset.StandardCharsets
import java.text.SimpleDateFormat
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
class ErosCrashReport : JavaFXWindowController() {
@ -54,13 +58,13 @@ class ErosCrashReport : JavaFXWindowController() {
@FXML private lateinit var detailsFX: TextArea
var crashReportPath: String? = null
var crashReportPath: File? = null
set(value) {
field = value
JavaFXUtil.runLater {
crashReportPathDescriptionFX.isVisible = value != null
if (value != null) {
crashReportPathFX.text = value
crashReportPathFX.text = value.path
}
}
}
@ -81,6 +85,7 @@ class ErosCrashReport : JavaFXWindowController() {
UnsafeUtil.hardCrash()
}
@OptIn(ExperimentalTime::class)
companion object {
var alreadyCrashed = false
private set
@ -116,12 +121,12 @@ class ErosCrashReport : JavaFXWindowController() {
})
var crashReportPath: String?
var crashReportPath: File?
try {
val crashReportFolder = (RunConfiguration.HOME_DIRECTORY / "crash-reports").toFile()
crashReportFolder.mkdirs()
crashReportPath = "${crashReportFolder.slashPath}/crash-${SimpleDateFormat("yyyy-MM-dd-HH.mm.ss").format(System.currentTimeMillis())}.txt"
crashReportPath = crashReportFolder / "crash-${SimpleDateFormat("yyyy-MM-dd-HH.mm.ss").format1(Clock.System.now())}.txt"
val stream = FileOutputStream(crashReportPath)

View File

@ -71,7 +71,7 @@ class ScreenshotTaker(
component += TextComponent(file.name).apply {
color = ChatColors.WHITE
underline()
clickEvent = OpenFileClickEvent(file.slashPath)
clickEvent = OpenFileClickEvent(file)
hoverEvent = TextHoverEvent("Click to open")
}
component += " "

View File

@ -1,6 +1,6 @@
/*
* Minosoft
* Copyright (C) 2020-2023 Moritz Zwerger
* Copyright (C) 2020-2025 Moritz Zwerger
*
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
@ -13,7 +13,9 @@
package de.bixilon.minosoft.util.crash.freeze
import java.io.File
class FreezeDump(
val dump: String,
val path: String?,
val path: File?,
)

View File

@ -26,10 +26,16 @@ import de.bixilon.kutil.time.TimeUtil
import de.bixilon.minosoft.protocol.network.session.play.PlaySession
import de.bixilon.minosoft.terminal.RunConfiguration
import de.bixilon.minosoft.util.KUtil.div
import de.bixilon.minosoft.util.KUtil.format1
import java.io.File
import java.io.FileOutputStream
import java.lang.management.ManagementFactory
import java.nio.charset.StandardCharsets
import java.nio.file.Path
import java.text.SimpleDateFormat
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
object FreezeDumpUtil {
@ -41,6 +47,7 @@ object FreezeDumpUtil {
thread.start()
}
@OptIn(ExperimentalTime::class)
fun catch(callback: (FreezeDump) -> Unit) {
val builder = StringBuilder()
@ -81,12 +88,12 @@ object FreezeDumpUtil {
val dump = builder.toString()
var path: String?
var path: File?
try {
val crashReportFolder = (RunConfiguration.HOME_DIRECTORY / "dumps" / "freeze").toFile()
crashReportFolder.mkdirs()
path = "${crashReportFolder.slashPath}/freeze-${SimpleDateFormat("yyyy-MM-dd-HH.mm.ss").format(TimeUtil.now())}.txt"
path = crashReportFolder / "freeze-${SimpleDateFormat("yyyy-MM-dd-HH.mm.ss").format1(Clock.System.now())}.txt"
val stream = FileOutputStream(path)