diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixin/CommandTreeS2CPacketMixin.java | 3 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java | 87 |
2 files changed, 25 insertions, 65 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixin/CommandTreeS2CPacketMixin.java b/src/main/java/de/hysky/skyblocker/mixin/CommandTreeS2CPacketMixin.java index a64f627d..e0301c9c 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/CommandTreeS2CPacketMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/CommandTreeS2CPacketMixin.java @@ -14,8 +14,7 @@ public class CommandTreeS2CPacketMixin { @ModifyExpressionValue(method = "getNode", at = @At(ordinal = 1, value = "INVOKE", target = "Lnet/minecraft/network/packet/s2c/play/CommandTreeS2CPacket$CommandTree;getNode(I)Lcom/mojang/brigadier/tree/CommandNode;")) public CommandNode<? extends CommandSource> thing(CommandNode<CommandSource> original) { - if (original instanceof LiteralCommandNode<?> literalCommandNode && literalCommandNode.getLiteral().equals("warp") && (Utils.isOnHypixel())) { - System.out.println("INJECTED"); + if (WarpAutocomplete.COMMAND_THING != null && original instanceof LiteralCommandNode<?> literalCommandNode && literalCommandNode.getLiteral().equals("warp") && (Utils.isOnHypixel())) { return WarpAutocomplete.COMMAND_THING; } return original; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java b/src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java index c64acd48..44d2b277 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java @@ -1,16 +1,25 @@ package de.hysky.skyblocker.skyblock; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; import com.mojang.brigadier.StringReader; import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; import com.mojang.brigadier.tree.LiteralCommandNode; +import de.hysky.skyblocker.SkyblockerMod; +import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; +import de.hysky.skyblocker.utils.Http; import de.hysky.skyblocker.utils.Utils; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; import net.minecraft.command.CommandSource; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.io.IOException; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -19,73 +28,25 @@ import java.util.concurrent.CompletableFuture; */ public class WarpAutocomplete { - public static LiteralCommandNode<FabricClientCommandSource> COMMAND_THING; + public static @Nullable LiteralCommandNode<FabricClientCommandSource> COMMAND_THING = null; - public static final String[] WARPS = new String[]{ - "home", - "island", - "hub", - "village", - "elizabeth", - "castle", - "da", - //"crypt", - "crypts", - "museum", - "dungeons", - "dhub", - "barn", - "desert", - "trapper", - "park", - "jungle", - "howl", - "gold", - "deep", - "mines", - "forge", - "crystals", - "hollows", - "ch", - "nucleus", - "spider", - "top", - "nest", - "mound", - "arachne", - "end", - "drag", - "void", - "sepulture", - "crimson", - "nether", - "isle", - "kuudra", - "wasteland", - "dragontail", - "scarleton", - "smoldering", - "garden", - "winter", - "jerry", - "workshop", - "basecamp", - "camp", - "glacite", - "tunnels", - "gt" - }; + protected static final Logger LOGGER = LoggerFactory.getLogger(WarpAutocomplete.class); public static void init() { - COMMAND_THING = ClientCommandManager + CompletableFuture.supplyAsync(() -> { + try { + JsonArray jsonElements = SkyblockerMod.GSON.fromJson(Http.sendGetRequest("https://staging.hysky.de/api/locations"), JsonArray.class); + return jsonElements.asList().stream().map(JsonElement::getAsString).toList(); + } catch (Exception e) { + LOGGER.error("[Skyblocker] Failed to download warps list", e); + } + return List.of(""); + }).thenAccept(strings -> COMMAND_THING = ClientCommandManager .literal("warp") - .requires(fabricClientCommandSource -> { - boolean onSkyblock = Utils.isOnSkyblock(); - System.out.println(onSkyblock); - return onSkyblock; - }) - .then(ClientCommandManager.argument("destination", new ArgType(List.of(WARPS))) - ).build(); + .requires(fabricClientCommandSource -> Utils.isOnSkyblock()) + .then(ClientCommandManager.argument("destination", new ArgType(strings)) + ).build()); + } private record ArgType(List<String> possibleWarps) implements ArgumentType<String> { |