diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java index 1fad161b8..ccc8906e0 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java @@ -112,7 +112,14 @@ public final class Versions { JFXButton deleteButton = new JFXButton(i18n("button.delete")); deleteButton.getStyleClass().add("dialog-error"); - deleteButton.setOnAction(e -> profile.getRepository().removeVersionFromDisk(version)); + deleteButton.setOnAction(e -> { + Task.supplyAsync(Schedulers.io(), () -> profile.getRepository().removeVersionFromDisk(version)) + .whenComplete(Schedulers.javafx(), (result, exception) -> { + if (exception != null || !Boolean.TRUE.equals(result)) { + Controllers.dialog(i18n("version.manage.remove.failed"), i18n("message.error"), MessageDialogPane.MessageType.ERROR); + } + }).start(); + }); Controllers.confirmAction(message, i18n("message.warning"), MessageDialogPane.MessageType.WARNING, deleteButton); } diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index 31d4f83e9..47d715056 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -1569,6 +1569,7 @@ version.manage.redownload_assets_index=Update Game Assets version.manage.remove=Delete Instance version.manage.remove.confirm.trash=Are you sure you want to remove the instance "%1$s"? You can still find its files in your recycle bin by the name of "%2$s". version.manage.remove.confirm.independent=Since this instance is stored in an isolated directory, deleting it will also delete its saves and other data. Do you still want to delete the instance "%s"? +version.manage.remove.failed=Failed to delete the instance. Some files might be in use. version.manage.remove_assets=Delete All Assets version.manage.remove_libraries=Delete All Libraries version.manage.rename=Rename Instance diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties index de461166d..7763af92b 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties @@ -1353,6 +1353,7 @@ version.manage.redownload_assets_index=更新遊戲資源檔案 version.manage.remove=刪除該實例 version.manage.remove.confirm.trash=真的要刪除實例「%s」嗎? 你可以在系統的資源回收筒 (或垃圾桶) 中還原目錄「%s」來找回該實例。 version.manage.remove.confirm.independent=由於該實例啟用了「(全域/實例特定) 遊戲設定 → 執行路徑 → 各實例獨立」設定,刪除該實例將導致該遊戲的存檔等資料一同被刪除!真的要刪除實例「%s」嗎? +version.manage.remove.failed=刪除實例失敗。可能檔案被占用。 version.manage.remove_assets=刪除所有遊戲資源檔案 version.manage.remove_libraries=刪除所有支援庫檔案 version.manage.rename=重新命名該實例 diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties index a578361f5..5f3afab0b 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -1363,6 +1363,7 @@ version.manage.redownload_assets_index=更新游戏资源文件 version.manage.remove=删除该实例 version.manage.remove.confirm.trash=真的要删除实例“%s”吗?你可以在系统的回收站中还原“%s”文件夹来找回该实例。 version.manage.remove.confirm.independent=由于该游戏启用了“(全局/实例特定) 游戏设置 → 版本隔离 → 各实例独立”选项,删除该实例将导致该游戏的存档等数据一同被删除!真的要删除实例“%s”吗? +version.manage.remove.failed=删除实例失败。可能文件被占用。 version.manage.remove_assets=删除所有游戏资源文件 version.manage.remove_libraries=删除所有库文件 version.manage.rename=重命名该实例