aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java108
1 files changed, 108 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java b/src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java
new file mode 100644
index 00000000..73e7a1b9
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/WarpAutocomplete.java
@@ -0,0 +1,108 @@
+package de.hysky.skyblocker.skyblock;
+
+import com.mojang.brigadier.Command;
+import com.mojang.brigadier.StringReader;
+import com.mojang.brigadier.arguments.ArgumentType;
+import com.mojang.brigadier.arguments.StringArgumentType;
+import com.mojang.brigadier.context.CommandContext;
+import com.mojang.brigadier.exceptions.CommandSyntaxException;
+import com.mojang.brigadier.suggestion.Suggestions;
+import com.mojang.brigadier.suggestion.SuggestionsBuilder;
+import com.mojang.brigadier.tree.LiteralCommandNode;
+import de.hysky.skyblocker.utils.Utils;
+import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
+import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
+import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
+import net.minecraft.command.CommandSource;
+import net.minecraft.text.Text;
+
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+
+/**
+ * the mixin {@link de.hysky.skyblocker.mixin.CommandTreeS2CPacketMixin}
+ */
+public class WarpAutocomplete {
+
+ public static LiteralCommandNode<FabricClientCommandSource> COMMAND_THING;
+
+ 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"
+ };
+
+ public static void init() {
+ 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();
+ }
+
+ private record ArgType(List<String> possibleWarps) implements ArgumentType<String> {
+
+ @Override
+ public String parse(StringReader reader) throws CommandSyntaxException {
+ return reader.readUnquotedString();
+ }
+
+ @Override
+ public <S> CompletableFuture<Suggestions> listSuggestions(CommandContext<S> context, SuggestionsBuilder builder) {
+ return CommandSource.suggestMatching(possibleWarps, builder);
+ }
+ }
+}