diff options
author | Kevin <92656833+kevinthegreat1@users.noreply.github.com> | 2023-05-17 16:42:29 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-17 16:42:29 -0700 |
commit | 33b467fa42d4bc6bb841512ae839b678297d920a (patch) | |
tree | 1a569075ace64e29c30559928bf9a948eb7d149b /src/main/java/me/xmrvizzy/skyblocker/skyblock/api | |
parent | d6caa2fe1a6f792c3ea310d2b5e76dfa25e27ec4 (diff) | |
parent | 02b6c6e8ae49e888605964ac8a70b2eaaac7b50d (diff) | |
download | Skyblocker-33b467fa42d4bc6bb841512ae839b678297d920a.tar.gz Skyblocker-33b467fa42d4bc6bb841512ae839b678297d920a.tar.bz2 Skyblocker-33b467fa42d4bc6bb841512ae839b678297d920a.zip |
Merge branch 'master' into master
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/api')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java new file mode 100644 index 00000000..3854dd88 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java @@ -0,0 +1,56 @@ +package me.xmrvizzy.skyblocker.skyblock.api; + +import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; +import net.minecraft.text.Text; + +import java.io.File; +import java.nio.file.Files; +import java.util.concurrent.CompletableFuture; + +public class RepositoryUpdate { + + /** + * Adds command to update repository manually from ingame. + * <p></p> + * TODO A button could be added to the settings menu that will trigger this command. + */ + public static void init(){ + ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> dispatcher.register( + ClientCommandManager.literal("skyblocker") + .then(ClientCommandManager.literal("updaterepository") + .executes(context -> { + CompletableFuture.runAsync(() -> { + try { + ItemRegistry.filesImported = false; + File dir = ItemRegistry.LOCAL_ITEM_REPO_DIR.toFile(); + recursiveDelete(dir); + } catch (Exception ex) { + ItemRegistry.client.player.sendMessage( + Text.translatable("skyblocker.updaterepository.failed") + , false + ); + return; + } + + ItemRegistry.init(); + }); + + return 1; + }) + ) + ) + ); + + } + + private static void recursiveDelete(File dir) { + if (dir.isDirectory() && !Files.isSymbolicLink(dir.toPath())) { + for (File child : dir.listFiles()) { + recursiveDelete(child); + } + } + dir.delete(); + } +} |