diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2022-12-26 17:48:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-26 17:48:43 +0100 |
commit | 6ea1234a3bb9787a77680ff528f21bdf1e40989c (patch) | |
tree | 1385918c5819df035dd5bd7b8f6bab7fc534c396 /launcher/minecraft | |
parent | dd3848d7b161e415c34c3c1c393985b644a88f1c (diff) | |
parent | 434f639b0c9af355703d6c64cfe5bbe9a28d0b9b (diff) | |
download | PrismLauncher-6ea1234a3bb9787a77680ff528f21bdf1e40989c.tar.gz PrismLauncher-6ea1234a3bb9787a77680ff528f21bdf1e40989c.tar.bz2 PrismLauncher-6ea1234a3bb9787a77680ff528f21bdf1e40989c.zip |
Merge pull request #618 from TheKodeToad/safer-destructive-actions
Fixes https://github.com/PolyMC/PolyMC/issues/948
Diffstat (limited to 'launcher/minecraft')
-rw-r--r-- | launcher/minecraft/World.cpp | 7 | ||||
-rw-r--r-- | launcher/minecraft/mod/Resource.cpp | 4 |
2 files changed, 10 insertions, 1 deletions
diff --git a/launcher/minecraft/World.cpp b/launcher/minecraft/World.cpp index 90fcf337..d310f8b9 100644 --- a/launcher/minecraft/World.cpp +++ b/launcher/minecraft/World.cpp @@ -1,7 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-only /* - * PolyMC - Minecraft Launcher + * Prism Launcher - Minecraft Launcher * Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net> + * Copyright (C) 2022 TheKodeToad <TheKodeToad@proton.me> * * 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 @@ -545,6 +546,10 @@ bool World::replace(World &with) bool World::destroy() { if(!is_valid) return false; + + if (FS::trash(m_containerFile.filePath())) + return true; + if (m_containerFile.isDir()) { QDir d(m_containerFile.filePath()); diff --git a/launcher/minecraft/mod/Resource.cpp b/launcher/minecraft/mod/Resource.cpp index 0fbcfd7c..7c572d92 100644 --- a/launcher/minecraft/mod/Resource.cpp +++ b/launcher/minecraft/mod/Resource.cpp @@ -143,5 +143,9 @@ bool Resource::enable(EnableAction action) bool Resource::destroy() { m_type = ResourceType::UNKNOWN; + + if (FS::trash(m_file_info.filePath())) + return true; + return FS::deletePath(m_file_info.filePath()); } |