Skip to content

Commit cbe2505

Browse files
author
R4mBLe_
committed
fix connection error, when api don't work
1 parent acd5627 commit cbe2505

3 files changed

Lines changed: 39 additions & 30 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ yarn_mappings=1.21+build.9
88
loader_version=0.17.2
99
loom_version=1.11-SNAPSHOT
1010
# Mod Properties
11-
mod_version=0.6.1
11+
mod_version=0.6.2
1212
maven_group=zadudoder.spmhelper
1313
archives_base_name=spmhelper
1414
mod_menu_version=11.0.3

src/main/java/zadudoder/spmhelper/events/ChatEventHandler.java

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -55,30 +55,35 @@ public static void registerChatEventHandler() {
5555
ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> {
5656
client.execute(() -> {
5757
if (Misc.isOnAllowedServer()) {
58-
String clientVersion = FabricLoader.getInstance().getModContainer(SPmHelper.MOD_ID).get().getMetadata().getVersion().toString();
59-
String lastVersion = SPmHelperApi.getLastModVersionInfo().get("version_number").getAsString();
58+
SPmHelperApi.getLastModVersionInfo().thenAccept(versionInfo -> {
59+
if (versionInfo != null) {
60+
String clientVersion = FabricLoader.getInstance().getModContainer(SPmHelper.MOD_ID).get().getMetadata().getVersion().toString();
61+
String lastVersion = versionInfo.get("version_number").getAsString();
6062

61-
if (!clientVersion.equals(lastVersion)) {
62-
client.player.sendMessage(
63-
Text.translatable("text.spmhelper.updateMod_message_firstPart")
64-
.formatted(Formatting.GREEN)
65-
.styled(style -> style.withClickEvent(
66-
new ClickEvent(ClickEvent.Action.OPEN_URL, "https://modrinth.com/mod/spmhelper/version/" + lastVersion)
67-
))
68-
.append(Text.literal(clientVersion).formatted(Formatting.YELLOW))
69-
.append(Text.translatable("text.spmhelper.updateMod_message_betweenPart"))
70-
.append(Text.literal(lastVersion).formatted(Formatting.GREEN))
71-
.append(Text.translatable("text.spmhelper.updateMod_message_lastPart"))
72-
);
73-
}
63+
if (!clientVersion.equals(lastVersion)) {
64+
client.execute(() -> {
65+
client.player.sendMessage(
66+
Text.translatable("text.spmhelper.updateMod_message_firstPart")
67+
.formatted(Formatting.GREEN)
68+
.styled(style -> style.withClickEvent(
69+
new ClickEvent(ClickEvent.Action.OPEN_URL, "https://modrinth.com/mod/spmhelper/version/" + lastVersion)
70+
))
71+
.append(Text.literal(clientVersion).formatted(Formatting.YELLOW))
72+
.append(Text.translatable("text.spmhelper.updateMod_message_betweenPart"))
73+
.append(Text.literal(lastVersion).formatted(Formatting.GREEN))
74+
.append(Text.translatable("text.spmhelper.updateMod_message_lastPart"))
75+
);
76+
});
77+
}
78+
}
79+
});
7480

7581
if (SPmHelperConfig.get().isFirstRun) {
7682
client.player.sendMessage(Text.translatable("text.spmhelper.welcomeMessage"));
7783
SPmHelperConfig.get().isFirstRun = false;
7884
AutoConfig.getConfigHolder(SPmHelperConfig.class).save();
7985
}
8086
}
81-
8287
});
8388
});
8489

src/main/java/zadudoder/spmhelper/utils/SPmHelperApi.java

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import net.minecraft.client.MinecraftClient;
66
import net.minecraft.client.network.ClientPlayerEntity;
77
import net.minecraft.text.Text;
8+
import zadudoder.spmhelper.SPmHelper;
89
import zadudoder.spmhelper.config.SPmHelperConfig;
910
import zadudoder.spmhelper.utils.types.Service;
1011

@@ -86,21 +87,24 @@ public static CompletableFuture<Integer> getAuthStatus() {
8687
.exceptionally(e -> -1);
8788
}
8889

89-
public static JsonObject getModVersionInfo(int index) {
90-
try {
91-
HttpRequest request = HttpRequest.newBuilder()
92-
.uri(URI.create(API_BASE + "/versions"))
93-
.build();
94-
95-
HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
96-
return JsonParser.parseString(response.body()).getAsJsonArray().get(index).getAsJsonObject();
97-
} catch (Exception ex) {
98-
return null;
99-
}
90+
public static CompletableFuture<JsonObject> getModVersionInfoAsync(int index) {
91+
return CompletableFuture.supplyAsync(() -> {
92+
try {
93+
HttpRequest request = HttpRequest.newBuilder()
94+
.uri(URI.create(API_BASE + "/versions"))
95+
.build();
96+
97+
HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
98+
return JsonParser.parseString(response.body()).getAsJsonArray().get(index).getAsJsonObject();
99+
} catch (Exception ex) {
100+
SPmHelper.LOGGER.error("Failed to fetch mod version info", ex);
101+
return null;
102+
}
103+
});
100104
}
101105

102-
public static JsonObject getLastModVersionInfo() {
103-
return getModVersionInfo(0);
106+
public static CompletableFuture<JsonObject> getLastModVersionInfo() {
107+
return getModVersionInfoAsync(0);
104108
}
105109

106110
public static int getAPIStatus() {

0 commit comments

Comments
 (0)