aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-11-04 00:24:53 -0400
committerGitHub <noreply@github.com>2023-11-04 00:24:53 -0400
commitd8bd4d6c76de9ae2c03d59646c55673c1e8e30e1 (patch)
tree4eb0234e3292fc9b37e807770c789ff63d2f18c5 /src/main/java/de/hysky/skyblocker/utils
parenta309de2e02d4c635983bf181ca23b7e119edab56 (diff)
parent0d738a4bd470a4f5608f59cb88c0aba33b1ac4fc (diff)
downloadSkyblocker-d8bd4d6c76de9ae2c03d59646c55673c1e8e30e1.tar.gz
Skyblocker-d8bd4d6c76de9ae2c03d59646c55673c1e8e30e1.tar.bz2
Skyblocker-d8bd4d6c76de9ae2c03d59646c55673c1e8e30e1.zip
Merge pull request #404 from AzureAaron/nio-refactor
NIO Refactor
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java b/src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java
index 6d78b3f3..870e94da 100644
--- a/src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java
+++ b/src/main/java/de/hysky/skyblocker/utils/NEURepoManager.java
@@ -14,10 +14,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
+import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.concurrent.CompletableFuture;
+import java.util.stream.Stream;
/**
* Initializes the NEU repo, which contains item metadata and fairy souls location data. Clones the repo if it does not exist and checks for updates. Use {@link #runAsyncAfterLoad(Runnable)} to run code after the repo is initialized.
@@ -74,8 +76,7 @@ public class NEURepoManager {
CompletableFuture.runAsync(() -> {
try {
ItemRepository.setFilesImported(false);
- File dir = NEURepoManager.LOCAL_REPO_DIR.toFile();
- recursiveDelete(dir);
+ recursiveDelete(NEURepoManager.LOCAL_REPO_DIR);
} catch (Exception ex) {
if (MinecraftClient.getInstance().player != null)
MinecraftClient.getInstance().player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.updaterepository.failed")), false);
@@ -86,14 +87,18 @@ public class NEURepoManager {
}
@SuppressWarnings("ResultOfMethodCallIgnored")
- private static void recursiveDelete(File dir) {
- File[] children;
- if (dir.isDirectory() && !Files.isSymbolicLink(dir.toPath()) && (children = dir.listFiles()) != null) {
- for (File child : children) {
- recursiveDelete(child);
- }
+ private static void recursiveDelete(Path dir) throws IOException {
+ if (Files.isDirectory(dir) && !Files.isSymbolicLink(dir)) {
+ Files.list(dir).forEach(child -> {
+ try {
+ recursiveDelete(child);
+ } catch (Exception e) {
+ LOGGER.error("[Skyblocker] Encountered an exception while deleting a file! Path: {}", child.toAbsolutePath(), e);
+ }
+ });
}
- dir.delete();
+
+ Files.delete(dir);
}
/**