From 6c3dd6b662ec86b8b7a185de9778ee97d435f3d1 Mon Sep 17 00:00:00 2001 From: Kevin <92656833+kevinthegreat1@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:42:08 -0500 Subject: Fix discoveries index (#557) --- .../skyblock/tabhud/widget/DungeonSecretWidget.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java index 6f40f5a8..309ba9ca 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/DungeonSecretWidget.java @@ -1,16 +1,19 @@ package de.hysky.skyblocker.skyblock.tabhud.widget; import de.hysky.skyblocker.skyblock.tabhud.util.Ico; +import de.hysky.skyblocker.skyblock.tabhud.util.PlayerListMgr; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; +import java.util.regex.Pattern; + // this widget shows info about the secrets of the dungeon public class DungeonSecretWidget extends Widget { - private static final MutableText TITLE = Text.literal("Discoveries").formatted(Formatting.DARK_PURPLE, - Formatting.BOLD); + private static final MutableText TITLE = Text.literal("Discoveries").formatted(Formatting.DARK_PURPLE, Formatting.BOLD); + private static final Pattern DISCOVERIES = Pattern.compile("Discoveries: (\\d+)"); public DungeonSecretWidget() { super(TITLE, Formatting.DARK_PURPLE.getColorValue()); @@ -18,9 +21,12 @@ public class DungeonSecretWidget extends Widget { @Override public void updateContent() { - this.addSimpleIcoText(Ico.CHEST, "Secrets:", Formatting.YELLOW, 31); - this.addSimpleIcoText(Ico.SKULL, "Crypts:", Formatting.YELLOW, 32); - + if (PlayerListMgr.regexAt(31, DISCOVERIES) != null) { + this.addSimpleIcoText(Ico.CHEST, "Secrets:", Formatting.YELLOW, 32); + this.addSimpleIcoText(Ico.SKULL, "Crypts:", Formatting.YELLOW, 33); + } else { + this.addSimpleIcoText(Ico.CHEST, "Secrets:", Formatting.YELLOW, 31); + this.addSimpleIcoText(Ico.SKULL, "Crypts:", Formatting.YELLOW, 32); + } } - } -- cgit From 20117e764d3a4f444efd06c846449395caac20aa Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:42:58 -0500 Subject: Support the local memory cache for the API (#558) --- src/main/java/de/hysky/skyblocker/utils/Http.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/utils/Http.java b/src/main/java/de/hysky/skyblocker/utils/Http.java index 17079d15..58deced2 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Http.java +++ b/src/main/java/de/hysky/skyblocker/utils/Http.java @@ -53,7 +53,7 @@ public class Http { String body = new String(decodedInputStream.readAllBytes()); HttpHeaders headers = response.headers(); - return new ApiResponse(body, response.statusCode(), getCacheStatus(headers), getAge(headers)); + return new ApiResponse(body, response.statusCode(), getCacheStatuses(headers), getAge(headers)); } public static HttpHeaders sendHeadRequest(String url) throws IOException, InterruptedException { @@ -115,12 +115,12 @@ public class Http { } /** - * Returns the cache status of the resource + * Returns the cache statuses of the resource. All possible cache status values conform to Cloudflare's. * - * @see Cloudflare Cache Docs + * @see Cloudflare Cache Docs */ - private static String getCacheStatus(HttpHeaders headers) { - return headers.firstValue("CF-Cache-Status").orElse("UNKNOWN"); + private static String[] getCacheStatuses(HttpHeaders headers) { + return new String[] { headers.firstValue("CF-Cache-Status").orElse("UNKNOWN"), headers.firstValue("Local-Cache-Status").orElse("UNKNOWN") }; } private static int getAge(HttpHeaders headers) { @@ -128,7 +128,7 @@ public class Http { } //TODO If ever needed, we could just replace cache status with the response headers and go from there - public record ApiResponse(String content, int statusCode, String cacheStatus, int age) implements AutoCloseable { + public record ApiResponse(String content, int statusCode, String[] cacheStatuses, int age) implements AutoCloseable { public boolean ok() { return statusCode == 200; @@ -139,7 +139,7 @@ public class Http { } public boolean cached() { - return cacheStatus.equals("HIT"); + return cacheStatuses[0].equals("HIT") || cacheStatuses[1].equals("HIT"); } @Override -- cgit From 5bfe95f71d5265efd680dbc3c19c94dc0485e343 Mon Sep 17 00:00:00 2001 From: Yasin Date: Tue, 20 Feb 2024 20:11:43 +0100 Subject: add keybinding and identifier --- .../hysky/skyblocker/mixin/HandledScreenMixin.java | 22 +++++++++++-- .../de/hysky/skyblocker/mixin/InGameHudMixin.java | 12 ++++++++ .../skyblocker/mixin/MinecraftClientMixin.java | 2 ++ .../skyblocker/skyblock/item/ItemProtection.java | 34 +++++++++++++++++++++ .../resources/assets/skyblocker/lang/en_us.json | 1 + .../skyblocker/textures/gui/item_protection.png | Bin 0 -> 235 bytes 6 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/assets/skyblocker/textures/gui/item_protection.png (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java index 8a1af570..0c779ebe 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.mixin; import com.llamalad7.mixinextras.sugar.Local; +import com.mojang.blaze3d.systems.RenderSystem; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.experiment.ChronomatronSolver; @@ -29,6 +30,7 @@ import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.slot.Slot; import net.minecraft.screen.slot.SlotActionType; import net.minecraft.text.Text; +import net.minecraft.util.Identifier; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Final; @@ -52,6 +54,9 @@ public abstract class HandledScreenMixin extends Screen @Unique private static final int OUT_OF_BOUNDS_SLOT = -999; + @Unique + private static final Identifier ITEM_PROTECTION = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png"); + @Shadow @Nullable protected Slot focusedSlot; @@ -66,8 +71,15 @@ public abstract class HandledScreenMixin extends Screen @Inject(at = @At("HEAD"), method = "keyPressed") public void skyblocker$keyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable cir) { - if (this.client != null && this.focusedSlot != null && keyCode != 256 && !this.client.options.inventoryKey.matchesKey(keyCode, scanCode) && WikiLookup.wikiLookup.matchesKey(keyCode, scanCode)) { - WikiLookup.openWiki(this.focusedSlot, client.player); + if (this.client != null && this.focusedSlot != null && keyCode != 256) { + //wiki lookup + if (!this.client.options.inventoryKey.matchesKey(keyCode, scanCode) && WikiLookup.wikiLookup.matchesKey(keyCode, scanCode)) { + WikiLookup.openWiki(this.focusedSlot, client.player); + } + //item protection + if (!this.client.options.inventoryKey.matchesKey(keyCode, scanCode) && ItemProtection.itemProtection.matchesKey(keyCode, scanCode)) { + ItemProtection.handleKeyPressed(this.focusedSlot.getStack()); + } } } @@ -207,5 +219,11 @@ public abstract class HandledScreenMixin extends Screen private void skyblocker$drawItemRarityBackground(DrawContext context, Slot slot, CallbackInfo ci) { if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.itemInfoDisplay.itemRarityBackgrounds) ItemRarityBackgrounds.tryDraw(slot.getStack(), context, slot.x, slot.y); + // Item protection + if (ItemProtection.isItemProtected(slot.getStack())){ + RenderSystem.enableBlend(); + context.drawTexture(ITEM_PROTECTION, slot.x, slot.y, 0, 0, 16, 16, 16, 16); + RenderSystem.disableBlend(); + } } } diff --git a/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java b/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java index 88be60cd..5e3daf3c 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java @@ -3,6 +3,7 @@ package de.hysky.skyblocker.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.sugar.Local; import com.mojang.blaze3d.systems.RenderSystem; +import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.FancyStatusBars; import de.hysky.skyblocker.skyblock.dungeon.DungeonMap; @@ -10,6 +11,7 @@ import de.hysky.skyblocker.skyblock.dungeon.DungeonScore; import de.hysky.skyblocker.skyblock.dungeon.DungeonScoreHUD; import de.hysky.skyblocker.skyblock.item.HotbarSlotLock; import de.hysky.skyblocker.skyblock.item.ItemCooldowns; +import de.hysky.skyblocker.skyblock.item.ItemProtection; import de.hysky.skyblocker.skyblock.item.ItemRarityBackgrounds; import de.hysky.skyblocker.utils.Utils; import net.fabricmc.api.EnvType; @@ -38,6 +40,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; public abstract class InGameHudMixin { @Unique private static final Supplier SLOT_LOCK_ICON = () -> SkyblockerConfigManager.get().general.itemProtection.slotLockStyle.tex; + + @Unique + private static final Identifier ITEM_PROTECTION = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png"); @Unique private static final Pattern DICER_TITLE_BLACKLIST = Pattern.compile(".+? DROP!"); @@ -56,12 +61,19 @@ public abstract class InGameHudMixin { @Inject(method = "renderHotbar", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/InGameHud;renderHotbarItem(Lnet/minecraft/client/gui/DrawContext;IIFLnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;I)V", ordinal = 0)) public void skyblocker$renderHotbarItemLockOrRarityBg(float tickDelta, DrawContext context, CallbackInfo ci, @Local(ordinal = 4, name = "m") int index, @Local(ordinal = 5, name = "n") int x, @Local(ordinal = 6, name = "o") int y, @Local PlayerEntity player) { if (Utils.isOnSkyblock()) { + // slot lock if (SkyblockerConfigManager.get().general.itemInfoDisplay.itemRarityBackgrounds) ItemRarityBackgrounds.tryDraw(player.getInventory().main.get(index), context, x, y); if (HotbarSlotLock.isLocked(index)) { RenderSystem.enableBlend(); context.drawTexture(SLOT_LOCK_ICON.get(), x, y, 0, 0, 16, 16, 16, 16); RenderSystem.disableBlend(); } + //item protection + if (ItemProtection.isItemProtected(player.getInventory().main.get(index))){ + RenderSystem.enableBlend(); + context.drawTexture(ITEM_PROTECTION, x, y, 0, 0, 16, 16, 16, 16); + RenderSystem.disableBlend(); + } } } diff --git a/src/main/java/de/hysky/skyblocker/mixin/MinecraftClientMixin.java b/src/main/java/de/hysky/skyblocker/mixin/MinecraftClientMixin.java index cf8aab78..dd671b2e 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/MinecraftClientMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/MinecraftClientMixin.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.mixin; import de.hysky.skyblocker.skyblock.item.HotbarSlotLock; +import de.hysky.skyblocker.skyblock.item.ItemProtection; import de.hysky.skyblocker.utils.JoinWorldPlaceholderScreen; import de.hysky.skyblocker.utils.ReconfiguringPlaceholderScreen; import de.hysky.skyblocker.utils.Utils; @@ -34,6 +35,7 @@ public abstract class MinecraftClientMixin { public void skyblocker$handleInputEvents(CallbackInfo ci) { if (Utils.isOnSkyblock()) { HotbarSlotLock.handleInputEvents(player); + ItemProtection.handleHotbarKeyPressed(player); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java index 2d929c28..5fc0fed5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java @@ -10,13 +10,23 @@ import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; 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.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; +import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.option.KeyBinding; import net.minecraft.command.CommandRegistryAccess; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; +import org.lwjgl.glfw.GLFW; public class ItemProtection { + public static KeyBinding itemProtection; public static void init() { + itemProtection = KeyBindingHelper.registerKeyBinding(new KeyBinding( + "key.itemProtection", + GLFW.GLFW_KEY_V, + "key.categories.skyblocker" + )); ClientCommandRegistrationCallback.EVENT.register(ItemProtection::registerCommand); } @@ -61,4 +71,28 @@ public class ItemProtection { return Command.SINGLE_SUCCESS; } + + public static void handleKeyPressed(ItemStack heldItem) { + if (!Utils.isOnSkyblock() || heldItem.isEmpty()) return; + + String itemUuid = ItemUtils.getItemUuid(heldItem); + if (!itemUuid.isEmpty()) { + ObjectOpenHashSet protectedItems = SkyblockerConfigManager.get().general.protectedItems; + + if (!protectedItems.contains(itemUuid)) { + protectedItems.add(itemUuid); + SkyblockerConfigManager.save(); + } else { + protectedItems.remove(itemUuid); + SkyblockerConfigManager.save(); + } + } + } + + public static void handleHotbarKeyPressed(ClientPlayerEntity player) { + while (itemProtection.wasPressed()) { + ItemStack heldItem = player.getMainHandStack(); + handleKeyPressed(heldItem); + } + } } diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 60631ef1..508accb2 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -5,6 +5,7 @@ "key.skyblocker.defaultTgl": "Switch tab HUD to default view", "key.skyblocker.toggleA": "Toggle tab HUD to screen A", "key.wikiLookup": "Wiki Lookup", + "key.itemProtection": "protect Item", "text.skyblocker.open": "Open", "text.skyblocker.quit_config": "Changes Not Saved", diff --git a/src/main/resources/assets/skyblocker/textures/gui/item_protection.png b/src/main/resources/assets/skyblocker/textures/gui/item_protection.png new file mode 100644 index 00000000..b76fe034 Binary files /dev/null and b/src/main/resources/assets/skyblocker/textures/gui/item_protection.png differ -- cgit From 9d37d533dca5e3d7be5758694d4b1360026c18eb Mon Sep 17 00:00:00 2001 From: Yasin Date: Tue, 20 Feb 2024 20:15:02 +0100 Subject: move visitor helper to location garden --- src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java | 6 +++--- .../de/hysky/skyblocker/config/categories/GeneralCategory.java | 7 ------- .../de/hysky/skyblocker/config/categories/LocationsCategory.java | 7 +++++++ src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java index 78458291..effd9e07 100644 --- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java @@ -177,9 +177,6 @@ public class SkyblockerConfig { @SerialEntry public boolean dungeonQuality = true; - @SerialEntry - public boolean visitorHelper = true; - @SerialEntry public TabHudConf tabHud = new TabHudConf(); @@ -1091,6 +1088,9 @@ public class SkyblockerConfig { public static class Garden { @SerialEntry public boolean dicerTitlePrevent = true; + + @SerialEntry + public boolean visitorHelper = true; } public static class Slayer { diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java index 8a7d832c..1e2f8063 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java @@ -86,13 +86,6 @@ public class GeneralCategory { newValue -> config.general.dungeonQuality = newValue) .controller(ConfigUtils::createBooleanController) .build()) - .option(Option.createBuilder() - .name(Text.translatable("text.autoconfig.skyblocker.option.general.visitorHelper")) - .binding(defaults.general.visitorHelper, - () -> config.general.visitorHelper, - newValue -> config.general.visitorHelper = newValue) - .controller(ConfigUtils::createBooleanController) - .build()) //Tab Hud .group(OptionGroup.createBuilder() diff --git a/src/main/java/de/hysky/skyblocker/config/categories/LocationsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/LocationsCategory.java index 75c83a9b..d97513f8 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/LocationsCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/LocationsCategory.java @@ -153,6 +153,13 @@ public class LocationsCategory { newValue -> config.locations.garden.dicerTitlePrevent = newValue) .controller(ConfigUtils::createBooleanController) .build()) + .option(Option.createBuilder() + .name(Text.translatable("text.autoconfig.skyblocker.option.general.visitorHelper")) + .binding(defaults.locations.garden.visitorHelper, + () -> config.locations.garden.visitorHelper, + newValue -> config.locations.garden.visitorHelper = newValue) + .controller(ConfigUtils::createBooleanController) + .build()) .build()) .build(); } diff --git a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java index 8a1af570..123bbc0a 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java @@ -75,13 +75,13 @@ public abstract class HandledScreenMixin extends Screen public void skyblocker$renderScreen(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { if (!Utils.isOnSkyblock()) return; - if (SkyblockerConfigManager.get().general.visitorHelper && (Utils.getLocationRaw().equals("garden") && !getTitle().getString().contains("Logbook") || getTitle().getString().startsWith("Bazaar"))) + if (SkyblockerConfigManager.get().locations.garden.visitorHelper && (Utils.getLocationRaw().equals("garden") && !getTitle().getString().contains("Logbook") || getTitle().getString().startsWith("Bazaar"))) VisitorHelper.renderScreen(this.getTitle().getString(), context, textRenderer, handler, mouseX, mouseY); } @Inject(at = @At("HEAD"), method = "mouseClicked") public void skyblocker$mouseClicked(double mouseX, double mouseY, int button, CallbackInfoReturnable cir) { - if (SkyblockerConfigManager.get().general.visitorHelper && (Utils.getLocationRaw().equals("garden") && !getTitle().getString().contains("Logbook") || getTitle().getString().startsWith("Bazaar"))) + if (SkyblockerConfigManager.get().locations.garden.visitorHelper && (Utils.getLocationRaw().equals("garden") && !getTitle().getString().contains("Logbook") || getTitle().getString().startsWith("Bazaar"))) VisitorHelper.onMouseClicked(mouseX, mouseY, button, this.textRenderer); } -- cgit From f94031b5e52a5e7dbf164ff3367288e02f4f3bde Mon Sep 17 00:00:00 2001 From: Yasin Date: Tue, 20 Feb 2024 20:15:34 +0100 Subject: rename npc price to npc sell price --- .../java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java index d5be7eee..fbef1bcb 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java @@ -51,7 +51,7 @@ public class ItemTooltip { boolean bazaarOpened = lines.stream().anyMatch(each -> each.getString().contains("Buy price:") || each.getString().contains("Sell price:")); if (TooltipInfoType.NPC.isTooltipEnabledAndHasOrNullWarning(internalID)) { - lines.add(Text.literal(String.format("%-21s", "NPC Price:")) + lines.add(Text.literal(String.format("%-21s", "NPC Sell Price:")) .formatted(Formatting.YELLOW) .append(getCoinsMessage(TooltipInfoType.NPC.getData().get(internalID).getAsDouble(), count))); } -- cgit From a19c612eb2c07b70110c31e385823cf28cbea255 Mon Sep 17 00:00:00 2001 From: Yasin Date: Tue, 20 Feb 2024 20:18:17 +0100 Subject: made flame height/opacity easier to understand --- src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java | 4 ++-- .../de/hysky/skyblocker/config/categories/GeneralCategory.java | 10 ++++++---- .../de/hysky/skyblocker/mixin/InGameOverlayRendererMixin.java | 4 ++-- src/main/resources/assets/skyblocker/lang/en_us.json | 2 ++ 4 files changed, 12 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java index effd9e07..78605c00 100644 --- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java @@ -465,10 +465,10 @@ public class SkyblockerConfig { public static class FlameOverlay { @SerialEntry - public float flameHeight = 0f; + public int flameHeight = 100; @SerialEntry - public float flameOpacity = 0f; + public int flameOpacity = 100; } public static class SearchOverlay { diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java index 1e2f8063..afd688d8 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java @@ -635,19 +635,21 @@ public class GeneralCategory { .group(OptionGroup.createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.general.flameOverlay")) .collapsed(true) - .option(Option.createBuilder() + .option(Option.createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.general.flameOverlay.flameHeight")) + .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.general.flameOverlay.flameHeight.@Tooltip"))) .binding(defaults.general.flameOverlay.flameHeight, () -> config.general.flameOverlay.flameHeight, newValue -> config.general.flameOverlay.flameHeight = newValue) - .controller(opt -> FloatSliderControllerBuilder.create(opt).range(0.0f, 0.5f).step(0.01f)) + .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(0, 100).step(1)) .build()) - .option(Option.createBuilder() + .option(Option.createBuilder() .name(Text.translatable("text.autoconfig.skyblocker.option.general.flameOverlay.flameOpacity")) + .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.general.flameOverlay.flameOpacity.@Tooltip"))) .binding(defaults.general.flameOverlay.flameOpacity, () -> config.general.flameOverlay.flameOpacity, newValue -> config.general.flameOverlay.flameOpacity = newValue) - .controller(opt -> FloatSliderControllerBuilder.create(opt).range(0.0f, 0.8f).step(0.1f)) + .controller(opt -> IntegerSliderControllerBuilder.create(opt).range(0, 100).step(1)) .build()) .build()) diff --git a/src/main/java/de/hysky/skyblocker/mixin/InGameOverlayRendererMixin.java b/src/main/java/de/hysky/skyblocker/mixin/InGameOverlayRendererMixin.java index b957603a..4775ce2d 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/InGameOverlayRendererMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/InGameOverlayRendererMixin.java @@ -11,12 +11,12 @@ public class InGameOverlayRendererMixin { @ModifyArg(method = "renderFireOverlay", index = 2, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/BufferBuilder;vertex(Lorg/joml/Matrix4f;FFF)Lnet/minecraft/client/render/VertexConsumer;")) private static float configureFlameHeight(float y) { - return y - SkyblockerConfigManager.get().general.flameOverlay.flameHeight; + return y - (0.5f - ((float) SkyblockerConfigManager.get().general.flameOverlay.flameHeight / 200.0f)); } @ModifyArg(method = "renderFireOverlay", index = 3, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/VertexConsumer;color(FFFF)Lnet/minecraft/client/render/VertexConsumer;")) private static float configureFlameOpacity(float opacity) { - return opacity - SkyblockerConfigManager.get().general.flameOverlay.flameOpacity; + return opacity - (0.8f - ((float) SkyblockerConfigManager.get().general.flameOverlay.flameOpacity / 125.0f)); } } diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 60631ef1..dc3d6911 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -132,7 +132,9 @@ "text.autoconfig.skyblocker.option.general.teleportOverlay.enableWitherImpact": "Enable Wither Impact Overlay", "text.autoconfig.skyblocker.option.general.flameOverlay": "Flame Overlay", "text.autoconfig.skyblocker.option.general.flameOverlay.flameHeight": "Flame Height", + "text.autoconfig.skyblocker.option.general.flameOverlay.flameHeight.@Tooltip": "100% default height\n0% off", "text.autoconfig.skyblocker.option.general.flameOverlay.flameOpacity": "Flame Opacity", + "text.autoconfig.skyblocker.option.general.flameOverlay.flameOpacity.@Tooltip": "100% default opacity\n0% off", "text.autoconfig.skyblocker.option.general.searchOverlay": "Search Overlay", "text.autoconfig.skyblocker.option.general.searchOverlay.enableBazaar": "Enable For Bazaar", "text.autoconfig.skyblocker.option.general.searchOverlay.enableBazaar.@Tooltip": "Show custom search overlay when searching in bazaar.", -- cgit From da44f96472797762f162bf477285b693ef70c175 Mon Sep 17 00:00:00 2001 From: Yasin Date: Tue, 20 Feb 2024 20:18:55 +0100 Subject: made some menu elements not clickable --- .../hysky/skyblocker/mixin/HandledScreenMixin.java | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java index 123bbc0a..77141688 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java @@ -42,6 +42,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.Map; +import java.util.Set; import java.util.regex.Matcher; @Mixin(HandledScreen.class) @@ -167,6 +168,37 @@ public abstract class HandledScreenMixin extends Screen } if (slot != null) { + // Prevent some menu items from dragging and dropping + String itemName = slot.getStack().getName().getString(); + if (SkyblockerConfigManager.get().general.hideEmptyTooltips) { + Set blockedItemPatterns = Set.of( + " ", // Empty menu item + "Locked Page", + "Quick Crafting Slot", + "Locked Backpack Slot 2", //Regular expressions won't be utilized here since the search by contains is based on plain text rather than regex syntax + "Locked Backpack Slot 3", + "Locked Backpack Slot 4", + "Locked Backpack Slot 5", + "Locked Backpack Slot 6", + "Locked Backpack Slot 7", + "Locked Backpack Slot 8", + "Locked Backpack Slot 9", + "Locked Backpack Slot 10", + "Locked Backpack Slot 11", + "Locked Backpack Slot 12", + "Locked Backpack Slot 13", + "Locked Backpack Slot 14", + "Locked Backpack Slot 15", + "Locked Backpack Slot 16", + "Locked Backpack Slot 17", + "Locked Backpack Slot 18", + "Preparing" + ); + if (blockedItemPatterns.contains(itemName)) { + ci.cancel(); + } + } + // When you click your drop key while hovering over an item if (actionType == SlotActionType.THROW) { ItemStack stack = slot.getStack(); -- cgit From 95df6036645c6aa19f769d7dc8f1a3cc16916bfe Mon Sep 17 00:00:00 2001 From: Yasin Date: Tue, 20 Feb 2024 22:39:24 +0100 Subject: capitalized "protect" --- src/main/resources/assets/skyblocker/lang/en_us.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 508accb2..63c8163a 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -5,7 +5,7 @@ "key.skyblocker.defaultTgl": "Switch tab HUD to default view", "key.skyblocker.toggleA": "Toggle tab HUD to screen A", "key.wikiLookup": "Wiki Lookup", - "key.itemProtection": "protect Item", + "key.itemProtection": "Protect Item", "text.skyblocker.open": "Open", "text.skyblocker.quit_config": "Changes Not Saved", -- cgit From 6885e1affbc71c703cf6195182c7ee4053603683 Mon Sep 17 00:00:00 2001 From: Yasin Date: Tue, 20 Feb 2024 23:24:00 +0100 Subject: Update ItemProtection.java --- .../skyblocker/skyblock/item/ItemProtection.java | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java index 5fc0fed5..7e04652c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java @@ -11,9 +11,11 @@ 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.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.option.KeyBinding; import net.minecraft.command.CommandRegistryAccess; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import org.lwjgl.glfw.GLFW; @@ -73,7 +75,19 @@ public class ItemProtection { } public static void handleKeyPressed(ItemStack heldItem) { - if (!Utils.isOnSkyblock() || heldItem.isEmpty()) return; + PlayerEntity playerEntity = MinecraftClient.getInstance().player; + if (playerEntity == null){ + return; + } + if (!Utils.isOnSkyblock()) { + playerEntity.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.itemProtection.unableToProtect"))); + return; + } + + if (heldItem.isEmpty()) { + playerEntity.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.itemProtection.noItemUuid"))); + return; + } String itemUuid = ItemUtils.getItemUuid(heldItem); if (!itemUuid.isEmpty()) { @@ -82,10 +96,16 @@ public class ItemProtection { if (!protectedItems.contains(itemUuid)) { protectedItems.add(itemUuid); SkyblockerConfigManager.save(); + + playerEntity.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.itemProtection.added", heldItem.getName()))); } else { protectedItems.remove(itemUuid); SkyblockerConfigManager.save(); + + playerEntity.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.itemProtection.removed", heldItem.getName()))); } + } else { + playerEntity.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.itemProtection.noItemUuid"))); } } -- cgit From 12f790b5c21c6ffc96f76d326ecb221cd11355d4 Mon Sep 17 00:00:00 2001 From: PumpkinXD Date: Thu, 25 Jan 2024 18:08:21 +0000 Subject: Translated using Weblate (Chinese (Simplified)) Currently translated at 41.9% (182 of 434 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/zh_Hans/ --- .../resources/assets/skyblocker/lang/zh_cn.json | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/resources/assets/skyblocker/lang/zh_cn.json b/src/main/resources/assets/skyblocker/lang/zh_cn.json index 4d058bf1..0c7b6f0c 100644 --- a/src/main/resources/assets/skyblocker/lang/zh_cn.json +++ b/src/main/resources/assets/skyblocker/lang/zh_cn.json @@ -157,5 +157,32 @@ "text.autoconfig.skyblocker.option.general.waypoints.waypointType": "路径点类型", "text.skyblocker.open": "开启", "text.autoconfig.skyblocker.option.general.wikiLookup.enableWikiLookup": "启用 wiki 查阅功能", - "text.autoconfig.skyblocker.option.general.wikiLookup.enableWikiLookup.@Tooltip": "指针悬停于物品之下按 F4 键打开 wiki 相关条目" + "text.autoconfig.skyblocker.option.general.wikiLookup.enableWikiLookup.@Tooltip": "指针悬停于物品之下按 F4 键打开 wiki 相关条目", + "text.autoconfig.skyblocker.option.general.mythologicalRitual": "神话仪式助手", + "text.autoconfig.skyblocker.option.general.mythologicalRitual.enableMythologicalRitualHelper": "开启神话仪式助手", + "text.autoconfig.skyblocker.option.locations.dungeons.secretWaypoints.enablePearlWaypoints": "启用珍珠路径点", + "text.autoconfig.skyblocker.option.locations.dungeons.secretWaypoints.enableAotvWaypoints": "启用瞬息之刃路径点", + "text.autoconfig.skyblocker.option.locations.dungeons.secretWaypoints.enableFairySoulWaypoints": "启用仙女之魂路径点", + "text.autoconfig.skyblocker.option.locations.spidersDen.relics": "遗物助手", + "text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableDungeonScoreMessage": "启用地牢 %d 分数提示信息", + "text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore.enableDungeonScoreMessage.@Tooltip": "在地牢中达到 %d 分时发送提示信息", + "text.autoconfig.skyblocker.option.locations.dungeons.secretWaypoints.enableEntranceWaypoints": "启用入口路径点", + "text.autoconfig.skyblocker.option.locations.dungeons.secretWaypoints.enableChestWaypoints": "启用箱子路径点", + "text.autoconfig.skyblocker.option.general.itemCooldown": "物品冷却提示", + "text.autoconfig.skyblocker.option.general.itemCooldown.enableItemCooldowns": "启用物品冷却提示", + "text.autoconfig.skyblocker.option.general.specialEffects.rareDungeonDropEffects.@Tooltip": "为地牢稀有掉落添加特殊的视觉效果!", + "text.autoconfig.skyblocker.option.locations.spidersDen": "蜘蛛巢穴", + "text.autoconfig.skyblocker.option.locations.spidersDen.relics.enableRelicsHelper": "启用遗物助手", + "text.autoconfig.skyblocker.option.locations.spidersDen.relics.highlightFoundRelics": "高亮已发现的遗物", + "text.autoconfig.skyblocker.option.general.compactorDeletorPreview": "启用个人压缩器/删除器预览", + "text.autoconfig.skyblocker.option.general.itemInfoDisplay.itemRarityBackgrounds.@Tooltip": "将物品背景颜色改为其稀有度所对应的颜色", + "text.autoconfig.skyblocker.option.locations.dungeons.dungeonScore": "地牢分数", + "skyblocker.wikiLookup.noArticleFound": "§r无法找到此物品的 wiki 相关条目...", + "text.autoconfig.skyblocker.option.locations.dungeons.secretWaypoints.enableWitherWaypoints": "启用凋灵精粹路径点", + "text.autoconfig.skyblocker.option.locations.dungeons.secretWaypoints.enableBatWaypoints": "启用蝙蝠路径点", + "text.autoconfig.skyblocker.option.general.betterPartyFinder": "更好的组队查找", + "text.autoconfig.skyblocker.option.locations.dungeons.secretWaypoints.enableRoomMatching.@Tooltip": "关闭此选项可节省约20MB左右的内存,但是秘密路径点和§l部分谜题助手功能§r需要启用该选项", + "text.autoconfig.skyblocker.option.locations.dungeons.secretWaypoints.enableItemWaypoints": "启用物品路径点", + "text.autoconfig.skyblocker.option.general.quiverWarning.enableQuiverWarningAfterDungeon": "在地牢结束后启用箭袋提示", + "text.autoconfig.skyblocker.option.locations.dungeons.secretWaypoints.enableLeverWaypoints": "启用拉杆路径点" } -- cgit From ac628bc10716619beba8f2360ccdf77971073ee8 Mon Sep 17 00:00:00 2001 From: viciscat Date: Tue, 30 Jan 2024 22:15:09 +0000 Subject: Translated using Weblate (French) Currently translated at 33.4% (145 of 434 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/fr/ --- .../resources/assets/skyblocker/lang/fr_fr.json | 40 ++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/resources/assets/skyblocker/lang/fr_fr.json b/src/main/resources/assets/skyblocker/lang/fr_fr.json index 7c71081f..8b2c8123 100644 --- a/src/main/resources/assets/skyblocker/lang/fr_fr.json +++ b/src/main/resources/assets/skyblocker/lang/fr_fr.json @@ -112,6 +112,42 @@ "key.skyblocker.toggleB": "Basculer l'onglet HUD vers l'écran B", "key.skyblocker.toggleA": "Basculer l'onglet HUD vers l'écran A", "text.autoconfig.skyblocker.option.general.shortcuts.enableShortcuts": "Activer les Raccourcis", - "text.autoconfig.skyblocker.option.general.shortcuts.enableShortcuts.@Tooltip": "Marche seulement sur Hypixel. Edite les raccourcis avec \"/skyblocker shortcuts\". Au moins une des options suivantes doit être activée pour que ceci prenne effet.", - "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandShortcuts": "Activer les Commandes Raccourcis" + "text.autoconfig.skyblocker.option.general.shortcuts.enableShortcuts.@Tooltip": "Marche partout, même en Vanilla ! Edite les raccourcis avec \"/skyblocker shortcuts\". Au moins une des options suivantes doit être activée pour que ceci prenne effet.", + "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandShortcuts": "Activer les Commandes Raccourcis", + "text.autoconfig.skyblocker.option.general.mythologicalRitual": "Aide pour le Rituel Mythologique", + "text.autoconfig.skyblocker.option.general.mythologicalRitual.enableMythologicalRitualHelper": "Activer l'aide du Rituel Mythologique", + "text.autoconfig.skyblocker.option.general.itemCooldown.enableItemCooldowns": "Activer le Temps de Recharge de l'item", + "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandArgShortcuts": "Activer les Raccourcis d'Argument de Commande", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumInfo": "Activer l'Info du Musée", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableObtainedDate": "Activer Date Obtenue", + "text.autoconfig.skyblocker.option.general.fairySouls.highlightOnlyNearbySouls": "Accentuer seulement les fairy souls proches", + "text.autoconfig.skyblocker.option.general.fairySouls.highlightFoundSouls": "Accentuer les fairy souls trouvées", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableExoticTooltip": "Activer l'info-bulle exotique", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableExoticTooltip.@Tooltip": "Affiche le type d'exotique en dessous du nom de l'item si une pièce d'armure est exotique.", + "text.autoconfig.skyblocker.option.general.etherwarpOverlay": "Overlay de l'Etherwarp", + "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandArgShortcuts.@Tooltip": "Raccourcis qui remplacent un ou plus de mot(s)/argument(s) d'une commande qui a plusieurs mots/arguments. Edite les raccourcis avec \"/skyblocker shortcuts\". Les raccourcis doivent être activés pour que ceci prenne effet.", + "text.autoconfig.skyblocker.option.general.fairySouls.highlightOnlyNearbySouls.@Tooltip": "Lorsque cette option est activée, seules les fairy souls situées dans un rayon de 50 blocs sont mises en évidence", + "text.autoconfig.skyblocker.option.general.tabHud.plainPlayerNames.@Tooltip": "Activer pour afficher les pseudos des joueurs sans aucune mise en forme sur les îles publiques.", + "text.autoconfig.skyblocker.option.general.waypoints.enableWaypoints": "Activer les Waypoints", + "text.autoconfig.skyblocker.option.general.waypoints": "Waypoints", + "text.autoconfig.skyblocker.option.general.waypoints.waypointType": "Type de Waypoint", + "text.skyblocker.open": "Ouvrir", + "text.skyblocker.quit_config": "Les modifications ne sont pas sauvegardées", + "text.skyblocker.quit_config_sure": "Êtes-vous sur de vouloir arrêter d'éditer la config ? Vos changements ne seront pas sauvegardés !", + "text.autoconfig.skyblocker.option.general.tabHud.nameSorting": "Méthode de tri des Pseudos des Joueurs", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumInfo.@Tooltip": "If cet item est donnable au musée, alors la catégorie de cet item dans le musée sera affiché. Il affiche aussi un marqueur indiquant si vous avez donné l'item a votre musée ou non (Cadeaux pas pris en charge pour l'instant).\n\nAssurez vous d'activer l'API du musée pour des informations précises !", + "text.autoconfig.skyblocker.option.general.shortcuts.config": "Configuration des raccourcis...", + "text.skyblocker.quit_discard": "Quitter et Abandonner les Modifications", + "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandShortcuts.@Tooltip": "Raccourcis pour les commandes d'un seul mot. Edite les raccourcis avec \"/skyblocker shortcuts\". Les raccourcis doivent être activés pour que ceci prenne effet.", + "text.autoconfig.skyblocker.option.general.quiverWarning": "Avertissement du Carquois", + "text.autoconfig.skyblocker.option.general.quiverWarning.enableQuiverWarningAfterDungeon": "Activer l'Avertissement du Carquois après un Donjon", + "text.autoconfig.skyblocker.option.general.quiverWarning.enableQuiverWarning": "Activer l'Avertissement du Carquois", + "text.autoconfig.skyblocker.option.general.quiverWarning.enableQuiverWarningInDungeons": "Activer l'Avertissement du Carquois en Donjons", + "text.autoconfig.skyblocker.option.general.tabHud.nameSorting.@Tooltip": "Ordre alphabétique tri les pseudos alphabétiquement alors que Par défaut n'a pas d'ordre particulier.", + "text.autoconfig.skyblocker.option.general.compactorDeletorPreview": "Activer l'Aperçu du Compacteur/Supprimeur", + "text.autoconfig.skyblocker.option.general.enableTips": "Activer les Conseils", + "text.autoconfig.skyblocker.option.general.waypoints.waypointType.@Tooltip": "Waypoint : Affiche une accentuation et faisceau de beacon.\n\nWaypoint avec contour : Affiche un waypoint ET un contour.\n\nAccentuation : Affiche seulement une accentuation.\n\nAccentuation avec contour : Affiche une accentuation ET un contour.\n\nContour : Affiche seulement un contour.", + "text.autoconfig.skyblocker.option.general.waypoints.waypointType.generalNote": "\n\n\nCette option ne s'applique pas a tout les waypoints. Certains waypoints comme les waypoints pour secrets ont leur propre configuration.", + "text.autoconfig.skyblocker.option.general.tabHud.plainPlayerNames": "Noms de Joueurs Clairs", + "text.autoconfig.skyblocker.option.general.itemInfoDisplay": "Affichage des infos d'item" } -- cgit From 6e69c337a2bed1e43d2b94aeef7bbb453164e9d2 Mon Sep 17 00:00:00 2001 From: Weblate Date: Sun, 4 Feb 2024 18:49:57 +0100 Subject: Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/ --- src/main/resources/assets/skyblocker/lang/es_es.json | 1 - src/main/resources/assets/skyblocker/lang/fr_fr.json | 1 - src/main/resources/assets/skyblocker/lang/ja_jp.json | 1 - src/main/resources/assets/skyblocker/lang/ko_kr.json | 1 - src/main/resources/assets/skyblocker/lang/pt_br.json | 1 - src/main/resources/assets/skyblocker/lang/ru_ru.json | 1 - src/main/resources/assets/skyblocker/lang/tr_tr.json | 1 - src/main/resources/assets/skyblocker/lang/zh_cn.json | 1 - 8 files changed, 8 deletions(-) (limited to 'src') diff --git a/src/main/resources/assets/skyblocker/lang/es_es.json b/src/main/resources/assets/skyblocker/lang/es_es.json index 297afc81..d74ac193 100644 --- a/src/main/resources/assets/skyblocker/lang/es_es.json +++ b/src/main/resources/assets/skyblocker/lang/es_es.json @@ -63,7 +63,6 @@ "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "Habilitar Combustible del Taladro", "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Resolver Fetchur", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Interfaz de Dwarven", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Habilitado", "text.autoconfig.skyblocker.category.messages": "Mensajes", "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "Deshabilitado", "text.autoconfig.skyblocker.option.messages.chatFilterResult.FILTER": "Filtro", diff --git a/src/main/resources/assets/skyblocker/lang/fr_fr.json b/src/main/resources/assets/skyblocker/lang/fr_fr.json index 8b2c8123..679f2507 100644 --- a/src/main/resources/assets/skyblocker/lang/fr_fr.json +++ b/src/main/resources/assets/skyblocker/lang/fr_fr.json @@ -49,7 +49,6 @@ "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Décoder les requêtes de Fetchur", "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Résoudre le puzzle de Puzzler", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "ATH mine des nains", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Activé", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "Activer l'arrière-plan", "text.autoconfig.skyblocker.category.messages": "Messages", "text.autoconfig.skyblocker.option.messages.hideAbility": "Cacher le rechargement des capacités", diff --git a/src/main/resources/assets/skyblocker/lang/ja_jp.json b/src/main/resources/assets/skyblocker/lang/ja_jp.json index 7448b95c..19e8a52c 100644 --- a/src/main/resources/assets/skyblocker/lang/ja_jp.json +++ b/src/main/resources/assets/skyblocker/lang/ja_jp.json @@ -46,7 +46,6 @@ "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Fetchurの要求アイテムの表示", "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Puzzler Puzzleのソルバー", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "ドワーフマインでのHUD", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "有効", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "バックグラウンド表示を有効にする", "text.autoconfig.skyblocker.category.messages": "メッセージ", "text.autoconfig.skyblocker.option.messages.hideAbility": "アビリティのクールダウンを非表示にする", diff --git a/src/main/resources/assets/skyblocker/lang/ko_kr.json b/src/main/resources/assets/skyblocker/lang/ko_kr.json index d5357715..4fa1e135 100644 --- a/src/main/resources/assets/skyblocker/lang/ko_kr.json +++ b/src/main/resources/assets/skyblocker/lang/ko_kr.json @@ -62,7 +62,6 @@ "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Fetchur 해결", "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Puzzler 퍼즐 해결", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dwarven HUD", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "활성화됨", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "배경 활성화", "text.autoconfig.skyblocker.category.messages": "메시지", "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "비활성화됨", diff --git a/src/main/resources/assets/skyblocker/lang/pt_br.json b/src/main/resources/assets/skyblocker/lang/pt_br.json index 02e52b02..8f3acbb2 100644 --- a/src/main/resources/assets/skyblocker/lang/pt_br.json +++ b/src/main/resources/assets/skyblocker/lang/pt_br.json @@ -201,7 +201,6 @@ "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.lividColorText": "Texto da cor do Livid", "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Guia para puzzle do Puzzler", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Interface da mina dos anões", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Ativado", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style": "Estilo para a interface", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[2]": "\nClássico: Exibe nome e porcentagem em uma caixa super simples.", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "Ativar fundo", diff --git a/src/main/resources/assets/skyblocker/lang/ru_ru.json b/src/main/resources/assets/skyblocker/lang/ru_ru.json index b84ae0fe..00bf4025 100644 --- a/src/main/resources/assets/skyblocker/lang/ru_ru.json +++ b/src/main/resources/assets/skyblocker/lang/ru_ru.json @@ -89,7 +89,6 @@ "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[0]": "Упрощенный: Показывает название и процент выполнения.", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[2]": "\nКлассический: Показывает название и процент выполнения в простом тёмном квадрате.", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "Включить Фон", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Включить", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dwarven HUD (Интерфейс Гномьих Шахт)", "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Выглядит лучше, когда включены полоски Skyblocker (здоровья, маны и т.д.)", "text.autoconfig.skyblocker.option.locations.barn": "Barn (Ферма)", diff --git a/src/main/resources/assets/skyblocker/lang/tr_tr.json b/src/main/resources/assets/skyblocker/lang/tr_tr.json index b46463fb..000bf1a3 100644 --- a/src/main/resources/assets/skyblocker/lang/tr_tr.json +++ b/src/main/resources/assets/skyblocker/lang/tr_tr.json @@ -39,7 +39,6 @@ "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBar ile daha iyi bir deneyim sunar", "text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "Menülerdeki boş eşya açıklamalarını gizle", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "Arka planı göster", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Etkinleştir", "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Kaç günlük ortalamanın gösterileceğini seçebilirsiniz", "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "En düşük BIN fiyatını göster", "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Aktif", diff --git a/src/main/resources/assets/skyblocker/lang/zh_cn.json b/src/main/resources/assets/skyblocker/lang/zh_cn.json index 0c7b6f0c..c5d3bccb 100644 --- a/src/main/resources/assets/skyblocker/lang/zh_cn.json +++ b/src/main/resources/assets/skyblocker/lang/zh_cn.json @@ -64,7 +64,6 @@ "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "解决Fetchur的迷题", "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "解决Puzzler的迷题", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "矮人矿井 HUD", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "启用", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "启用背景", "text.autoconfig.skyblocker.category.messages": "消息", "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "禁用", -- cgit From badbe7df9731ddec94e105f0ef58bd498a54c72a Mon Sep 17 00:00:00 2001 From: OhRetro Date: Thu, 8 Feb 2024 12:34:10 +0000 Subject: Translated using Weblate (Portuguese (Brazil)) Currently translated at 64.0% (287 of 448 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/pt_BR/ --- src/main/resources/assets/skyblocker/lang/pt_br.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/resources/assets/skyblocker/lang/pt_br.json b/src/main/resources/assets/skyblocker/lang/pt_br.json index 8f3acbb2..ac7e0a6c 100644 --- a/src/main/resources/assets/skyblocker/lang/pt_br.json +++ b/src/main/resources/assets/skyblocker/lang/pt_br.json @@ -171,7 +171,7 @@ "text.autoconfig.skyblocker.option.general.wikiLookup.officialWiki.@Tooltip": "Usar a wiki oficial em vez da wiki do Fandom.", "text.autoconfig.skyblocker.option.general.itemInfoDisplay.itemRarityBackgrounds": "Fundos de Raridade de Item", "text.autoconfig.skyblocker.option.general.itemInfoDisplay.itemRarityBackgrounds.@Tooltip": "Mostra um fundo colorido atrás de um item, a cor representa a raridade do item.", - "text.autoconfig.skyblocker.option.locations.dungeons.mapScreen": "Configuração da posição do mapa da dungeon...", + "text.autoconfig.skyblocker.option.locations.dungeons.mapScreen": "Configuração da posição do Mapa da Dungeon e Pontuação...", "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Guia para Puzzle dos Three Weridos", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[0]": "Simples: Exibe nome e porcentagem.", "text.autoconfig.skyblocker.option.locations.dungeons.dungeonChestProfit.neutralThreshold": "Limite neutro", @@ -282,5 +282,8 @@ "text.autoconfig.skyblocker.option.quickNav.button.clickEvent": "Evento ao clicar", "text.autoconfig.skyblocker.option.general.waypoints.enableWaypoints": "Ativar Waypoints", "text.autoconfig.skyblocker.option.general.waypoints.waypointType": "Tipo de Waypoint", - "text.autoconfig.skyblocker.option.general.waypoints.waypointType.generalNote": "\n\n\nEssa opção não aplica para todos os waypoints. Alguns waypoints como waypoints secretos tem seu próprio opção de tipo de waypoint." + "text.autoconfig.skyblocker.option.general.waypoints.waypointType.generalNote": "\n\n\nEssa opção não aplica para todos os waypoints. Alguns waypoints como waypoints secretos tem seu próprio opção de tipo de waypoint.", + "text.autoconfig.skyblocker.option.general.mythologicalRitual": "Assistente de Ritual Mitológico", + "text.autoconfig.skyblocker.option.general.mythologicalRitual.enableMythologicalRitualHelper": "Ativar Assistente de Ritual Mitológico", + "text.autoconfig.skyblocker.option.general.enableTips": "Ativar Dicas" } -- cgit From 07d15c822e7fa9f52d0b1f91c0ef793d48e997d3 Mon Sep 17 00:00:00 2001 From: Aaron Date: Thu, 15 Feb 2024 22:52:38 +0000 Subject: Translated using Weblate (English (Canada)) Currently translated at 6.7% (34 of 503 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/en_CA/ --- src/main/resources/assets/skyblocker/lang/en_ca.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/resources/assets/skyblocker/lang/en_ca.json b/src/main/resources/assets/skyblocker/lang/en_ca.json index 416f9d9b..0ff8018b 100644 --- a/src/main/resources/assets/skyblocker/lang/en_ca.json +++ b/src/main/resources/assets/skyblocker/lang/en_ca.json @@ -31,5 +31,6 @@ "skyblocker.tips.customArmorDyeColors": "Apply a custom dye colour to your leather armour with /skyblocker custom dyeColor", "skyblocker.tips.customArmorTrims": "You can set custom armour trims on your armour using /skyblocker custom armorTrim.", "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColorTitle": "Enable Livid Colour Title", - "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColorTitle.@Tooltip": "Display the livid colour in the title during the Livid boss fight." + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColorTitle.@Tooltip": "Display the livid colour in the title during the Livid boss fight.", + "skyblocker.end.hud.protectorLocations.center": "Centre" } -- cgit From 40c776d027fe4c434b6b1c4a1f882c0202a19054 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Wed, 21 Feb 2024 15:08:07 -0500 Subject: Fix clicking in Ultrasequencer --- .../hysky/skyblocker/mixin/HandledScreenMixin.java | 176 ++++++++++----------- .../skyblock/experiment/UltrasequencerSolver.java | 3 +- .../utils/render/gui/ContainerSolverManager.java | 2 +- 3 files changed, 87 insertions(+), 94 deletions(-) (limited to 'src') diff --git a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java index 9aeeb741..39dc58bc 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/HandledScreenMixin.java @@ -17,11 +17,9 @@ import de.hysky.skyblocker.skyblock.item.tooltip.CompactorDeletorPreview; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.gui.ContainerSolver; -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.item.TooltipContext; import net.minecraft.inventory.SimpleInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -58,6 +56,31 @@ public abstract class HandledScreenMixin extends Screen @Unique private static final Identifier ITEM_PROTECTION = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/item_protection.png"); + @Unique + private static final Set FILLER_ITEMS = Set.of( + " ", // Empty menu item + "Locked Page", + "Quick Crafting Slot", + "Locked Backpack Slot 2", //Regular expressions won't be utilized here since the search by contains is based on plain text rather than regex syntax + "Locked Backpack Slot 3", + "Locked Backpack Slot 4", + "Locked Backpack Slot 5", + "Locked Backpack Slot 6", + "Locked Backpack Slot 7", + "Locked Backpack Slot 8", + "Locked Backpack Slot 9", + "Locked Backpack Slot 10", + "Locked Backpack Slot 11", + "Locked Backpack Slot 12", + "Locked Backpack Slot 13", + "Locked Backpack Slot 14", + "Locked Backpack Slot 15", + "Locked Backpack Slot 16", + "Locked Backpack Slot 17", + "Locked Backpack Slot 18", + "Preparing" + ); + @Shadow @Nullable protected Slot focusedSlot; @@ -134,6 +157,9 @@ public abstract class HandledScreenMixin extends Screen return skyblocker$experimentSolvers$getStack(slot, stack); } + /** + * Redirects getStack calls to account for different stacks in experiment solvers. + */ @Unique private ItemStack skyblocker$experimentSolvers$getStack(Slot slot, @NotNull ItemStack stack) { ContainerSolver currentSolver = SkyblockerMod.getInstance().containerSolverManager.getCurrentSolver(); @@ -144,115 +170,81 @@ public abstract class HandledScreenMixin extends Screen return stack; } - @Inject(method = "onMouseClick(Lnet/minecraft/screen/slot/Slot;IILnet/minecraft/screen/slot/SlotActionType;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;clickSlot(IIILnet/minecraft/screen/slot/SlotActionType;Lnet/minecraft/entity/player/PlayerEntity;)V")) - private void skyblocker$experimentSolvers$onSlotClick(Slot slot, int slotId, int button, SlotActionType actionType, CallbackInfo ci) { - if (slot != null) { - ContainerSolver currentSolver = SkyblockerMod.getInstance().containerSolverManager.getCurrentSolver(); - if (currentSolver instanceof ExperimentSolver experimentSolver && experimentSolver.getState() == ExperimentSolver.State.SHOW && slot.inventory instanceof SimpleInventory) { - if (experimentSolver instanceof ChronomatronSolver chronomatronSolver) { - Item item = chronomatronSolver.getChronomatronSlots().get(chro