From 48e8268461e897bb808f4d554dae9453f6fa1f51 Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Sat, 4 Jun 2022 15:02:09 +0100
Subject: [PATCH] Fix fileBasedDeviceInfo on native: exception when file does
 not exist

---
 mirai-core-api/src/nativeMain/kotlin/utils/BotConfiguration.kt | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/mirai-core-api/src/nativeMain/kotlin/utils/BotConfiguration.kt b/mirai-core-api/src/nativeMain/kotlin/utils/BotConfiguration.kt
index b014970c8..589d385f8 100644
--- a/mirai-core-api/src/nativeMain/kotlin/utils/BotConfiguration.kt
+++ b/mirai-core-api/src/nativeMain/kotlin/utils/BotConfiguration.kt
@@ -329,6 +329,9 @@ public actual open class BotConfiguration { // open for Java
     public actual fun fileBasedDeviceInfo(filepath: String) {
         deviceInfo = {
             val file = MiraiFile.create(workingDir).resolve(filepath)
+            if (!file.exists()) {
+                file.writeText(DeviceInfoManager.serialize(DeviceInfo.random(), json))
+            }
             DeviceInfoManager.deserialize(file.readText(), json)
         }
     }