diff --git a/src/common/contextmenu/actions.ts b/src/common/contextmenu/actions.ts index c16c2c1..3a85d4d 100644 --- a/src/common/contextmenu/actions.ts +++ b/src/common/contextmenu/actions.ts @@ -10,8 +10,12 @@ import TaskManager from "../task/TaskManager"; import { getApp } from "../ui/App"; export async function downloadFolderEntry(entry: FolderEntry) { - const blob = await getApp().state.session.download(Priority.QUICK, entry); - download(blob, entry.name); + try { + const blob = await getApp().state.session.download(Priority.QUICK, entry); + download(blob, entry.name); + } catch(e) { + Dialog.message("Failed to download", String(e)); + } } export function rename(entry: FolderEntry) { diff --git a/src/common/ui/editor/editor.tsx b/src/common/ui/editor/editor.tsx index 68bd87e..55f00af 100644 --- a/src/common/ui/editor/editor.tsx +++ b/src/common/ui/editor/editor.tsx @@ -195,7 +195,7 @@ export async function openNbtEditor(folderEntry: FolderEntry) { } catch(e) { Dialog.message( "Error reading NBT", - "There was an error reading the NBT file. Are you sure it is an NBT file? " + e + "There was an error reading the NBT file. " + String(e) ); return; } @@ -299,7 +299,13 @@ async function getFile(folderEntry: FolderEntry): Promise const isgzipped = folderEntry.name.endsWith(".gz"); if (isgzipped && !await confirmOpenGzip(folderEntry)) return null; - let blob = await getApp().state.session.download(Priority.QUICK, folderEntry); + let blob; + try { + blob = await getApp().state.session.download(Priority.QUICK, folderEntry) + } catch(e) { + Dialog.message("Failed to open file", String(e)); + return null; + } if (isgzipped) { blob = await ungzip(blob); return { diff --git a/src/web/WebsocketFTPConnection.ts b/src/web/WebsocketFTPConnection.ts index 9e15c93..66af2c8 100644 --- a/src/web/WebsocketFTPConnection.ts +++ b/src/web/WebsocketFTPConnection.ts @@ -233,7 +233,7 @@ export default class WebsocketFTPConnection implements FTPConnection { xhr.open("GET", url); xhr.send(); }); - } else if (response.data) { + } else if (response.data || response.data === '') { const base64 = response.data; const binarystring = atob(base64); const arraybuffer = new Uint8Array(binarystring.length);