diff options
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav')
| -rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java | 80 | ||||
| -rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java | 107 |
2 files changed, 0 insertions, 187 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java deleted file mode 100644 index aa933da4..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNav.java +++ /dev/null @@ -1,80 +0,0 @@ -package me.xmrvizzy.skyblocker.skyblock.quicknav; - -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import me.xmrvizzy.skyblocker.config.SkyblockerConfig; -import me.xmrvizzy.skyblocker.config.SkyblockerConfigManager; -import me.xmrvizzy.skyblocker.utils.Utils; -import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; -import net.fabricmc.fabric.api.client.screen.v1.Screens; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.StringNbtReader; -import net.minecraft.text.Text; -import net.minecraft.util.Formatting; - -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; -import java.util.regex.PatternSyntaxException; - -public class QuickNav { - private static final String skyblockHubIconNbt = "{id:\"minecraft:player_head\",Count:1,tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}}"; - private static final String dungeonHubIconNbt = "{id:\"minecraft:player_head\",Count:1,tag:{SkullOwner:{Id:[I;1605800870,415127827,-1236127084,15358548],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg5MWQ1YjI3M2ZmMGJjNTBjOTYwYjJjZDg2ZWVmMWM0MGExYjk0MDMyYWU3MWU3NTQ3NWE1NjhhODI1NzQyMSJ9fX0=\"}]}}}}"; - - public static void init() { - ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> { - if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().quickNav.enableQuickNav && screen instanceof HandledScreen<?> && client.player != null && !client.player.isCreative()) { - String screenTitle = screen.getTitle().getString().trim(); - List<QuickNavButton> buttons = QuickNav.init(screenTitle); - for (QuickNavButton button : buttons) Screens.getButtons(screen).add(button); - } - }); - } - - public static List<QuickNavButton> init(String screenTitle) { - List<QuickNavButton> buttons = new ArrayList<>(); - SkyblockerConfig.QuickNav data = SkyblockerConfigManager.get().quickNav; - try { - if (data.button1.render) buttons.add(parseButton(data.button1, screenTitle, 0)); - if (data.button2.render) buttons.add(parseButton(data.button2, screenTitle, 1)); - if (data.button3.render) buttons.add(parseButton(data.button3, screenTitle, 2)); - if (data.button4.render) buttons.add(parseButton(data.button4, screenTitle, 3)); - if (data.button5.render) buttons.add(parseButton(data.button5, screenTitle, 4)); - if (data.button6.render) buttons.add(parseButton(data.button6, screenTitle, 5)); - if (data.button7.render) buttons.add(parseButton(data.button7, screenTitle, 6)); - if (data.button8.render) buttons.add(parseButton(data.button8, screenTitle, 7)); - if (data.button9.render) buttons.add(parseButton(data.button9, screenTitle, 8)); - if (data.button10.render) buttons.add(parseButton(data.button10, screenTitle, 9)); - if (data.button11.render) buttons.add(parseButton(data.button11, screenTitle, 10)); - if (data.button12.render) buttons.add(parseButton(data.button12, screenTitle, 11)); - } catch (CommandSyntaxException e) { - e.printStackTrace(); - } - return buttons; - } - - private static QuickNavButton parseButton(SkyblockerConfig.QuickNavItem buttonInfo, String screenTitle, int id) throws CommandSyntaxException { - SkyblockerConfig.ItemData itemData = buttonInfo.item; - String nbtString = "{id:\"minecraft:" + itemData.itemName.toLowerCase(Locale.ROOT) + "\",Count:1"; - if (itemData.nbt.length() > 2) nbtString += "," + itemData.nbt; - nbtString += "}"; - boolean uiTitleMatches = false; - try { - uiTitleMatches = screenTitle.matches(buttonInfo.uiTitle); - } catch (PatternSyntaxException e) { - e.printStackTrace(); - ClientPlayerEntity player = MinecraftClient.getInstance().player; - if (player != null) { - player.sendMessage(Text.of(Formatting.RED + "[Skyblocker] Invalid regex in quicknav button " + (id + 1) + "!"), false); - } - } - return new QuickNavButton(id, - uiTitleMatches, - buttonInfo.clickEvent, - ItemStack.fromNbt(StringNbtReader.parse(nbtString)) - ); - } -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java deleted file mode 100644 index e41ea768..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java +++ /dev/null @@ -1,107 +0,0 @@ -package me.xmrvizzy.skyblocker.skyblock.quicknav; - -import com.mojang.blaze3d.systems.RenderSystem; - -import me.xmrvizzy.skyblocker.mixin.accessor.HandledScreenAccessor; -import me.xmrvizzy.skyblocker.utils.scheduler.MessageScheduler; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; -import net.minecraft.client.gui.widget.ClickableWidget; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; - -@Environment(value=EnvType.CLIENT) -public class QuickNavButton extends ClickableWidget { - private static final Identifier BUTTON_TEXTURE = new Identifier("textures/gui/container/creative_inventory/tabs.png"); - - private final int index; - private boolean toggled; - private int u; - private int v; - private final String command; - private final ItemStack icon; - - public QuickNavButton(int index, boolean toggled, String command, ItemStack icon) { - super(0, 0, 26, 32, Text.empty()); - this.index = index; - this.toggled = toggled; - this.command = command; - this.icon = icon; - } - - private void updateCoordinates() { - Screen screen = MinecraftClient.getInstance().currentScreen; - if (screen instanceof HandledScreen<?> handledScreen) { - int x = ((HandledScreenAccessor)handledScreen).getX(); - int y = ((HandledScreenAccessor)handledScreen).getY(); - int h = ((HandledScreenAccessor)handledScreen).getBackgroundHeight(); - if (h > 166) --h; // why is this even a thing - this.setX(x + this.index % 6 * 26 + 4); - this.setY(this.index < 6 ? y - 26 : y + h - 4); - this.u = 26; - this.v = (index < 6 ? 0 : 64) + (toggled ? 32 : 0); - } - } - - @Override - public void onClick(double mouseX, double mouseY) { - if (!this.toggled) { - this.toggled = true; - MessageScheduler.INSTANCE.sendMessageAfterCooldown(command); - // TODO : add null check with log error - } - } - - @Override - public void renderButton(DrawContext context, int mouseX, int mouseY, float delta) { - this.updateCoordinates(); - MatrixStack matrices = context.getMatrices(); - RenderSystem.disableDepthTest(); - // render button background - if (!this.toggled) { - if (this.index >= 6) - // this.drawTexture(matrices, this.x, this.y + 4, this.u, this.v + 4, this.width, this.height - 4); - context.drawTexture(BUTTON_TEXTURE, this.getX(), this.getY() + 4, this.u, this.v + 4, this.width, this.height - 4); - else - // this.drawTexture(matrices, this.x, this.y, this.u, this.v, this.width, this.height - 4); - context.drawTexture(BUTTON_TEXTURE, this.getX(), this.getY() - 2, this.u, this.v, this.width, this.height - 4); - // } else this.drawTexture(matrices, this.x, this.y, this.u, this.v, this.width, this.height); - } else { - matrices.push(); - //Move the top buttons 2 pixels up if they're selected - if (this.index < 6) matrices.translate(0f, -2f, 0f); - context.drawTexture(BUTTON_TEXTURE, this.getX(), this.getY(), this.u, this.v, this.width, this.height); - matrices.pop(); - } - // render button icon - if (!this.toggled) { - if (this.index >= 6) - // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 6); - context.drawItem(this.icon,this.getX() + 5, this.getY() + 6); - else - // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 9); - context.drawItem(this.icon,this.getX() + 5, this.getY() + 7); - } else { - if (this.index >= 6) - // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 9); - context.drawItem(this.icon,this.getX() + 5, this.getY() + 9); - else - // CLIENT.getItemRenderer().renderInGui(this.icon,this.x + 6, this.y + 6); - context.drawItem(this.icon,this.getX() + 5, this.getY() + 6); - } - RenderSystem.enableDepthTest(); - } - - @Override - protected void appendClickableNarrations(NarrationMessageBuilder builder) { - // TODO Auto-generated method stub - - } -} |
