diff options
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/searchOverlay')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java | 5 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java | 72 |
2 files changed, 61 insertions, 16 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java index 45ec2781..db72b3d8 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/OverlayScreen.java @@ -3,10 +3,8 @@ package de.hysky.skyblocker.skyblock.searchOverlay; import de.hysky.skyblocker.config.SkyblockerConfigManager; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.tooltip.Tooltip; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Style; import net.minecraft.text.Text; @@ -24,7 +22,6 @@ public class OverlayScreen extends Screen { protected static final Identifier SEARCH_ICON_TEXTURE = new Identifier("icon/search"); private static final int rowHeight = 20; - private TextFieldWidget searchField; private ButtonWidget finishedButton; private ButtonWidget[] suggestionButtons; @@ -42,7 +39,7 @@ public class OverlayScreen extends Screen { super.init(); int rowWidth = (int)(this.width * 0.4); int startX = (int)(this.width * 0.5) - rowWidth/2; - int startY = (int) ((int)(this.height * 0.5)- (rowHeight * (1+ SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions + 0.75 + SkyblockerConfigManager.get().general.searchOverlay.historyLength)) / 2); + int startY = (int) ((int)(this.height * 0.5)- (rowHeight * (1 + SkyblockerConfigManager.get().general.searchOverlay.maxSuggestions + 0.75 + SkyblockerConfigManager.get().general.searchOverlay.historyLength)) / 2); // Search field this.searchField = new TextFieldWidget(textRenderer,startX, startY, rowWidth - rowHeight, rowHeight, Text.literal("Search...")); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java index 84bcada9..d57e3174 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/searchOverlay/SearchOverManager.java @@ -4,25 +4,31 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import com.mojang.brigadier.Command; +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.context.CommandContext; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Http; import de.hysky.skyblocker.utils.NEURepoManager; +import de.hysky.skyblocker.utils.scheduler.MessageScheduler; import io.github.moulberry.repo.data.NEUItem; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; +import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; import net.minecraft.block.entity.SignBlockEntity; import net.minecraft.client.MinecraftClient; +import net.minecraft.command.CommandRegistryAccess; import net.minecraft.network.packet.c2s.play.UpdateSignC2SPacket; import net.minecraft.text.Text; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.text.WordUtils; import org.jetbrains.annotations.Nullable; -import java.net.http.HttpHeaders; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal; + public class SearchOverManager { private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); @@ -46,6 +52,7 @@ public class SearchOverManager { private static @Nullable SignBlockEntity Sign = null; private static boolean SignFront = true; private static boolean IsAuction; + private static boolean IsCommand; protected static String search = ""; @@ -60,6 +67,32 @@ public class SearchOverManager { * uses the skyblock api and Moulberry auction to load a list of items in bazaar and auction house */ public static void init() { + ClientCommandRegistrationCallback.EVENT.register(SearchOverManager::registerSearchCommands); + + LoadItems(); + } + + private static void registerSearchCommands(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess registryAccess) { + if (SkyblockerConfigManager.get().general.searchOverlay.enableCommands) { + dispatcher.register(literal("ahs") + .executes(context -> startCommand(true)) + ); + dispatcher.register(literal("bzs") + .executes(context -> startCommand(false)) + ); + } + } + + private static int startCommand(boolean isAuction) { + IsCommand = true; + IsAuction = isAuction; + search = ""; + suggestionsArray = new String[]{}; + CLIENT.send(() -> CLIENT.setScreen( new OverlayScreen(Text.of("")))); + return Command.SINGLE_SUCCESS; + } + + private static void LoadItems(){ //get bazaar items try { String response = Http.sendGetRequest("https://api.hypixel.net/v2/resources/skyblock/items"); @@ -108,11 +141,10 @@ public class SearchOverManager { } } } - - } catch (Exception e) { - //can not get items for bazaar search //todo log + //can not get items for bazaar search //todo log } + //get auction items try { JsonObject AuctionData = SkyblockerMod.GSON.fromJson(Http.sendGetRequest(THREE_DAY_AVERAGE), JsonObject.class); @@ -137,11 +169,9 @@ public class SearchOverManager { continue; } } - } catch (Exception e) { - //can not find ah todo logger + //can not find ah todo logger } - } /** * Capitalizes the first letter off every word in a string @@ -173,6 +203,7 @@ public class SearchOverManager { public static void updateSign(SignBlockEntity sign, boolean front, boolean isAuction) { SignFront = front; Sign = sign; + IsCommand = false; IsAuction = isAuction; if (SkyblockerConfigManager.get().general.searchOverlay.keepPreviousSearches){ Text[] messages = Sign.getText(SignFront).getMessages(CLIENT.shouldFilterText()); @@ -186,9 +217,7 @@ public class SearchOverManager { }else{ search = ""; } - suggestionsArray = new String[]{}; - } /** @@ -259,7 +288,6 @@ public class SearchOverManager { return null; } - /** * Add the current search value to the start of the history list and truncate to the max history value and save this to the config */ @@ -288,6 +316,26 @@ public class SearchOverManager { if (!search.isEmpty()){ saveHistory(); } + if (IsCommand){ + pushCommand(); + } + else { + pushSign(); + } + + + } + private static void pushCommand() { + String command; + if (IsAuction){ + command = "/ahSearch " + search; + }else{ + command = "/bz " + search; + } + MessageScheduler.INSTANCE.queueMessage(command, 0); + } + + private static void pushSign() { //splits text into 2 lines max = 30 chars StringBuilder line0 = new StringBuilder(); String line1; |