aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/cc/woverflow/chatting/chat/ChatShortcuts.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/cc/woverflow/chatting/chat/ChatShortcuts.kt')
-rw-r--r--src/main/kotlin/cc/woverflow/chatting/chat/ChatShortcuts.kt28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/main/kotlin/cc/woverflow/chatting/chat/ChatShortcuts.kt b/src/main/kotlin/cc/woverflow/chatting/chat/ChatShortcuts.kt
index 6add813..ef1881d 100644
--- a/src/main/kotlin/cc/woverflow/chatting/chat/ChatShortcuts.kt
+++ b/src/main/kotlin/cc/woverflow/chatting/chat/ChatShortcuts.kt
@@ -31,20 +31,24 @@ object ChatShortcuts {
} else {
initialized = true
}
- if (!shortcutsFile.exists()) {
- shortcutsFile.createNewFile()
- if (oldShortcutsFile.exists()) {
- shortcutsFile.writeText(
- oldShortcutsFile.readText()
- )
- } else {
- JsonObject().toString()
+ if (shortcutsFile.exists()) {
+ try {
+ val jsonObj = PARSER.parse(shortcutsFile.readText()).asJsonObject
+ for (shortcut in jsonObj.entrySet()) {
+ shortcuts.add(shortcut.key to shortcut.value.asString)
+ }
+ return
+ } catch (_: Throwable) {
+ shortcutsFile.renameTo(File(shortcutsFile.parentFile, "chatshortcuts.json.bak"))
}
+ }
+ shortcutsFile.createNewFile()
+ if (oldShortcutsFile.exists()) {
+ shortcutsFile.writeText(
+ oldShortcutsFile.readText()
+ )
} else {
- val jsonObj = PARSER.parse(shortcutsFile.readText()).asJsonObject
- for (shortcut in jsonObj.entrySet()) {
- shortcuts.add(shortcut.key to shortcut.value.asString)
- }
+ shortcutsFile.writeText(JsonObject().toString())
}
}