aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock/api
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2023-05-17 16:42:29 -0700
committerGitHub <noreply@github.com>2023-05-17 16:42:29 -0700
commit33b467fa42d4bc6bb841512ae839b678297d920a (patch)
tree1a569075ace64e29c30559928bf9a948eb7d149b /src/main/java/me/xmrvizzy/skyblocker/skyblock/api
parentd6caa2fe1a6f792c3ea310d2b5e76dfa25e27ec4 (diff)
parent02b6c6e8ae49e888605964ac8a70b2eaaac7b50d (diff)
downloadSkyblocker-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.java56
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();
+ }
+}