aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFix3d <serhanduzce@gmail.com>2023-05-31 14:15:49 +0300
committerFix3d <serhanduzce@gmail.com>2023-05-31 14:15:49 +0300
commit91903894d29c1cfab45ae77481cd111895f38058 (patch)
treeb33d5a68c50be4e6dac95448e8e8aa5d7f0e0ef4
parent66387b1fe7dbdf4a0c3e82e53e59a5c24cce6075 (diff)
downloadSkyblocker-91903894d29c1cfab45ae77481cd111895f38058.tar.gz
Skyblocker-91903894d29c1cfab45ae77481cd111895f38058.tar.bz2
Skyblocker-91903894d29c1cfab45ae77481cd111895f38058.zip
fix repository update
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java38
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java14
2 files changed, 34 insertions, 18 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
index 3854dd88..e08cb1c0 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/RepositoryUpdate.java
@@ -3,6 +3,7 @@ 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.client.MinecraftClient;
import net.minecraft.text.Text;
import java.io.File;
@@ -10,6 +11,7 @@ import java.nio.file.Files;
import java.util.concurrent.CompletableFuture;
public class RepositoryUpdate {
+ public static final MinecraftClient client = MinecraftClient.getInstance();
/**
* Adds command to update repository manually from ingame.
@@ -21,22 +23,7 @@ public class RepositoryUpdate {
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();
- });
-
+ updateRepository();
return 1;
})
)
@@ -45,6 +32,25 @@ public class RepositoryUpdate {
}
+ public static void updateRepository() {
+ CompletableFuture.runAsync(() -> {
+ try {
+ ItemRegistry.filesImported = false;
+ File dir = ItemRegistry.LOCAL_ITEM_REPO_DIR.toFile();
+ recursiveDelete(dir);
+ } catch (Exception ex) {
+ if (client.player != null)
+ client.player.sendMessage(
+ Text.translatable("skyblocker.updaterepository.failed")
+ , false
+ );
+ return;
+ }
+
+ ItemRegistry.init();
+ });
+ }
+
private static void recursiveDelete(File dir) {
if (dir.isDirectory() && !Files.isSymbolicLink(dir.toPath())) {
for (File child : dir.listFiles()) {
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java
index a1507b95..d9f3b473 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java
@@ -3,6 +3,7 @@ package me.xmrvizzy.skyblocker.skyblock.itemlist;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
+import me.xmrvizzy.skyblocker.skyblock.api.RepositoryUpdate;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.MinecraftClient;
import net.minecraft.item.ItemStack;
@@ -10,6 +11,7 @@ import net.minecraft.item.Items;
import net.minecraft.text.Text;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.PullResult;
+import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -47,20 +49,26 @@ public class ItemRegistry {
}
private static void updateItemRepo() {
+ Git git;
if (!Files.isDirectory(LOCAL_ITEM_REPO_DIR)) {
try {
- Git.cloneRepository()
+ git = Git.cloneRepository()
.setURI(REMOTE_ITEM_REPO)
.setDirectory(LOCAL_ITEM_REPO_DIR.toFile())
.setBranchesToClone(List.of("refs/heads/master"))
.setBranch("refs/heads/master")
.call();
+ git.close();
+ LOGGER.info("[Skyblocker Repository Update] Repository updated.");
} catch (Exception e) {
e.printStackTrace();
}
} else {
try {
- PullResult pull = Git.open(LOCAL_ITEM_REPO_DIR.toFile()).pull().setRebase(true).call();
+ git = Git.open(LOCAL_ITEM_REPO_DIR.toFile());
+ PullResult pull = git.pull().setRebase(true).call();
+ git.close();
+
if (pull.getRebaseResult() == null) {
LOGGER.info("[Skyblocker Repository Update] No update result");
} else if (pull.getRebaseResult().getStatus().isSuccessful()) {
@@ -68,6 +76,8 @@ public class ItemRegistry {
} else if (!pull.getRebaseResult().getStatus().isSuccessful()) {
LOGGER.warn("[Skyblocker Repository Update] Status: " + pull.getRebaseResult().getStatus().name());
}
+ } catch (RepositoryNotFoundException e) {
+ RepositoryUpdate.updateRepository();
} catch (Exception e) {
e.printStackTrace();
}