From 57328808e6cd8c2140f5a71b4c2605ac71e1b553 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Thu, 29 Jun 2023 11:15:58 +0800 Subject: Add Shortcuts --- src/main/resources/assets/skyblocker/lang/en_us.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 0cf9933c..247fb3cd 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -29,6 +29,13 @@ "text.autoconfig.skyblocker.option.general.fishing.enableFishingHelper": "Enable Fishing Helper", "text.autoconfig.skyblocker.option.general.fairySouls": "Fairy Souls Helper", "text.autoconfig.skyblocker.option.general.fairySouls.enableFairySoulsHelper": "Enable Fairy Souls Helper", + "text.autoconfig.skyblocker.option.general.shortcuts": "Shortcuts", + "text.autoconfig.skyblocker.option.general.shortcuts.enableShortcuts": "Enable Shortcuts", + "text.autoconfig.skyblocker.option.general.shortcuts.enableShortcuts.@Tooltip": "Only works on Hypixel. Edit shortcuts with \"/skyblocker shortcuts\". At least one of the following options must be enabled for this to take effect.", + "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandShortcuts": "Enable Command Shortcuts", + "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandShortcuts.@Tooltip": "Shortcuts for commands consisting of only one word. Edit shortcuts with \"/skyblocker shortcuts\". Shortcuts must be enabled for this to take effect.", + "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandArgShortcuts": "Enable Command Argument Shortcuts", + "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandArgShortcuts.@Tooltip": "Shortcuts that replace an argument/word of a command with multiple arguments/words. Edit shortcuts with \"/skyblocker shortcuts\". Shortcuts must be enabled for this to take effect.", "text.autoconfig.skyblocker.option.general.quicknav": "Quicknav", "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Enable Quicknav", "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "View backpack preview without holding Shift", @@ -214,7 +221,7 @@ "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "Enable Background", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", - + "text.autoconfig.skyblocker.option.locations.rift": "The Rift", "text.autoconfig.skyblocker.option.locations.rift.mirrorverseWaypoints": "Enable Mirrorverse Waypoints", "text.autoconfig.skyblocker.option.locations.rift.mcGrubberStacks": "McGrubber Stacks", -- cgit From 04a598fa906928c0f706b0ce6cd3d3add30faed2 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Thu, 29 Jun 2023 22:59:34 +0800 Subject: Add Shortcuts config screen --- .../skyblocker/skyblock/shortcut/Shortcuts.java | 8 ++ .../shortcut/ShortcutsConfigListWidget.java | 148 +++++++++++++++++++++ .../skyblock/shortcut/ShortcutsConfigScreen.java | 23 ++++ .../resources/assets/skyblocker/lang/en_us.json | 7 +- 4 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java (limited to 'src/main/resources') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/Shortcuts.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/Shortcuts.java index f6483e52..2fbe4315 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/Shortcuts.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/Shortcuts.java @@ -32,6 +32,10 @@ public class Shortcuts { public static final Map commands = new HashMap<>(); public static final Map commandArgs = new HashMap<>(); + public static boolean isShortcutsLoaded() { + return shortcutsLoaded.isDone(); + } + public static void init() { shortcutsLoaded = CompletableFuture.runAsync(Shortcuts::loadShortcuts); ClientLifecycleEvents.CLIENT_STOPPING.register(Shortcuts::saveShortcuts); @@ -196,6 +200,10 @@ public class Shortcuts { source.sendFeedback(Text.of("§7/" + SkyblockerMod.NAMESPACE + " " + command)); } return Command.SINGLE_SUCCESS; + })).then(literal("shortcuts").executes(context -> { + // Queue the screen or else the screen will be immediately closed after executing this command + SkyblockerMod.getInstance().scheduler.queueOpenScreen(ShortcutsConfigScreen::new); + return Command.SINGLE_SUCCESS; }))); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java new file mode 100644 index 00000000..893d9169 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java @@ -0,0 +1,148 @@ +package me.xmrvizzy.skyblocker.skyblock.shortcut; + +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.Element; +import net.minecraft.client.gui.Selectable; +import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; +import net.minecraft.client.gui.screen.narration.NarrationPart; +import net.minecraft.client.gui.widget.ElementListWidget; +import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.text.Text; + +import java.util.List; + +public class ShortcutsConfigListWidget extends ElementListWidget { + public ShortcutsConfigListWidget(MinecraftClient minecraftClient, int width, int height, int top, int bottom, int itemHeight) { + super(minecraftClient, width, height, top, bottom, itemHeight); + ShortcutCategoryEntry commandCategory = new ShortcutCategoryEntry("skyblocker.shortcuts.targetCommand", "skyblocker.shortcuts.replacementCommand"); + addEntry(commandCategory); + if (!Shortcuts.isShortcutsLoaded()) { + addEntry(new ShortcutLoadingEntry()); + } else { + Shortcuts.commands.keySet().stream().sorted().forEach(commandTarget -> addEntry(new ShortcutEntry(commandTarget, Shortcuts.commands.get(commandTarget), commandCategory))); + } + ShortcutCategoryEntry commandArgCategory = new ShortcutCategoryEntry("skyblocekr.shortcuts.targetCommandArg", "skyblocker.shortcuts.replacementCommandArg"); + addEntry(commandArgCategory); + if (!Shortcuts.isShortcutsLoaded()) { + addEntry(new ShortcutLoadingEntry()); + } else { + Shortcuts.commandArgs.keySet().stream().sorted().forEach(commandArgTarget -> addEntry(new ShortcutEntry(commandArgTarget, Shortcuts.commandArgs.get(commandArgTarget), commandArgCategory))); + } + } + + @Override + public int getRowWidth() { + return super.getRowWidth() + 100; + } + + @Override + protected int getScrollbarPositionX() { + return super.getScrollbarPositionX() + 50; + } + + protected abstract static class AbstractShortcutEntry extends ElementListWidget.Entry { + } + + private class ShortcutCategoryEntry extends AbstractShortcutEntry { + private final Text targetName; + private final Text replacementName; + + private ShortcutCategoryEntry(String targetName, String replacementName) { + this.targetName = Text.translatable(targetName); + this.replacementName = Text.translatable(replacementName); + } + + @Override + public List children() { + return List.of(); + } + + @Override + public List selectableChildren() { + return List.of(new Selectable() { + @Override + public SelectionType getType() { + return SelectionType.HOVERED; + } + + @Override + public void appendNarrations(NarrationMessageBuilder builder) { + builder.put(NarrationPart.TITLE, targetName, replacementName); + } + }); + } + + @Override + public void render(DrawContext context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) { + context.drawCenteredTextWithShadow(client.textRenderer, targetName, width / 2 - 85, y + 5, 0xFFFFFF); + context.drawCenteredTextWithShadow(client.textRenderer, replacementName, width / 2 + 85, y + 5, 0xFFFFFF); + } + } + + private class ShortcutLoadingEntry extends AbstractShortcutEntry { + private final Text text; + + private ShortcutLoadingEntry() { + this.text = Text.of("§c§lShortcuts not loaded yet"); + } + + @Override + public List children() { + return List.of(); + } + + @Override + public List selectableChildren() { + return List.of(new Selectable() { + @Override + public SelectionType getType() { + return SelectionType.HOVERED; + } + + @Override + public void appendNarrations(NarrationMessageBuilder builder) { + builder.put(NarrationPart.TITLE, text); + } + }); + } + + @Override + public void render(DrawContext context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) { + context.drawCenteredTextWithShadow(client.textRenderer, text, width / 2, y + 5, 0xFFFFFF); + } + } + + private class ShortcutEntry extends AbstractShortcutEntry { + private final List children; + private final TextFieldWidget target; + private final TextFieldWidget replacement; + + private ShortcutEntry(String target, String replacement, ShortcutCategoryEntry category) { + this.target = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, width / 2 - 160, 5, 150, 20, category.targetName); + this.replacement = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, width / 2 + 10, 5, 150, 20, category.replacementName); + this.target.setText(target); + this.replacement.setText(replacement); + children = List.of(this.target, this.replacement); + } + + @Override + public List children() { + return children; + } + + @Override + public List selectableChildren() { + return children; + } + + @Override + public void render(DrawContext context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) { + target.setY(y); + replacement.setY(y); + target.render(context, mouseX, mouseY, tickDelta); + replacement.render(context, mouseX, mouseY, tickDelta); + context.drawCenteredTextWithShadow(client.textRenderer, "→", width / 2, y + 5, 0xFFFFFF); + } + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java new file mode 100644 index 00000000..2f020604 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java @@ -0,0 +1,23 @@ +package me.xmrvizzy.skyblocker.skyblock.shortcut; + +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.text.Text; + +public class ShortcutsConfigScreen extends Screen { + public ShortcutsConfigScreen() { + super(Text.translatable("skyblocker.shortcuts.config")); + } + + @Override + protected void init() { + super.init(); + addDrawableChild(new ShortcutsConfigListWidget(client, width, height, 32, height - 32, 25)); + } + + @Override + public void render(DrawContext context, int mouseX, int mouseY, float delta) { + super.render(context, mouseX, mouseY, delta); + context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 16, 0xFFFFFF); + } +} diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 247fb3cd..d647c1e1 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -272,5 +272,10 @@ "skyblocker.rift.mania": "Mania!", "skyblocker.rift.stakeNow": "Stake now!", "skyblocker.fairySouls.markAllFound": "Marked all fairy souls in the current island as found", - "skyblocker.fairySouls.markAllMissing": "Marked all fairy souls in the current island as missing" + "skyblocker.fairySouls.markAllMissing": "Marked all fairy souls in the current island as missing", + "skyblocker.shortcuts.config": "Shortcuts Config", + "skyblocker.shortcuts.targetCommand": "Target Command", + "skyblocker.shortcuts.replacementCommand": "Replacement Command", + "skyblocekr.shortcuts.targetCommandArg": "Target Command Argument", + "skyblocker.shortcuts.replacementCommandArg": "Replacement Command Argument" } -- cgit From 6e1dcf2861e6f084e75a9602cc270aaecb151bdc Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Fri, 30 Jun 2023 18:39:32 +0800 Subject: Add shortcuts editing --- .../skyblocker/skyblock/shortcut/Shortcuts.java | 52 ++++++---- .../shortcut/ShortcutsConfigListWidget.java | 110 +++++++++++++++++---- .../skyblock/shortcut/ShortcutsConfigScreen.java | 66 ++++++++++++- .../resources/assets/skyblocker/lang/en_us.json | 16 ++- 4 files changed, 200 insertions(+), 44 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/Shortcuts.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/Shortcuts.java index 2fbe4315..799eab7c 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/Shortcuts.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/Shortcuts.java @@ -14,6 +14,7 @@ import net.fabricmc.fabric.api.client.message.v1.ClientSendMessageEvents; import net.minecraft.client.MinecraftClient; import net.minecraft.command.CommandRegistryAccess; import net.minecraft.text.Text; +import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -28,37 +29,48 @@ import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.lit public class Shortcuts { private static final Logger LOGGER = LoggerFactory.getLogger(Shortcuts.class); private static final File SHORTCUTS_FILE = SkyblockerMod.CONFIG_DIR.resolve("shortcuts.json").toFile(); + @Nullable private static CompletableFuture shortcutsLoaded; public static final Map commands = new HashMap<>(); public static final Map commandArgs = new HashMap<>(); public static boolean isShortcutsLoaded() { - return shortcutsLoaded.isDone(); + return shortcutsLoaded != null && shortcutsLoaded.isDone(); } public static void init() { - shortcutsLoaded = CompletableFuture.runAsync(Shortcuts::loadShortcuts); + loadShortcuts(); ClientLifecycleEvents.CLIENT_STOPPING.register(Shortcuts::saveShortcuts); ClientCommandRegistrationCallback.EVENT.register(Shortcuts::registerCommands); ClientSendMessageEvents.MODIFY_COMMAND.register(Shortcuts::modifyCommand); } - private static void loadShortcuts() { - try (BufferedReader reader = new BufferedReader(new FileReader(SHORTCUTS_FILE))) { - Type shortcutsType = new TypeToken>>() {}.getType(); - Map> shortcuts = SkyblockerMod.GSON.fromJson(reader, shortcutsType); - commands.putAll(shortcuts.get("commands")); - commandArgs.putAll(shortcuts.get("commandArgs")); - LOGGER.info("[Skyblocker] Loaded {} command shortcuts and {} command argument shortcuts", commands.size(), commandArgs.size()); - } catch (FileNotFoundException e) { - registerDefaultShortcuts(); - LOGGER.warn("[Skyblocker] Shortcuts file not found, using default shortcuts. This is normal when using for the first time.", e); - } catch (IOException e) { - LOGGER.error("[Skyblocker] Failed to load shortcuts file", e); + protected static void loadShortcuts() { + if (shortcutsLoaded != null && !isShortcutsLoaded()) { + return; } + shortcutsLoaded = CompletableFuture.runAsync(() -> { + try (BufferedReader reader = new BufferedReader(new FileReader(SHORTCUTS_FILE))) { + Type shortcutsType = new TypeToken>>() { + }.getType(); + Map> shortcuts = SkyblockerMod.GSON.fromJson(reader, shortcutsType); + commands.clear(); + commandArgs.clear(); + commands.putAll(shortcuts.get("commands")); + commandArgs.putAll(shortcuts.get("commandArgs")); + LOGGER.info("[Skyblocker] Loaded {} command shortcuts and {} command argument shortcuts", commands.size(), commandArgs.size()); + } catch (FileNotFoundException e) { + registerDefaultShortcuts(); + LOGGER.warn("[Skyblocker] Shortcuts file not found, using default shortcuts. This is normal when using for the first time.", e); + } catch (IOException e) { + LOGGER.error("[Skyblocker] Failed to load shortcuts file", e); + } + }); } private static void registerDefaultShortcuts() { + commands.clear(); + commandArgs.clear(); commands.put("/s", "/skyblock"); commands.put("/sk", "/skyblock"); commands.put("/sky", "/skyblock"); @@ -156,7 +168,7 @@ public class Shortcuts { commands.put("/visit p", "/visit portalhub"); } - private static void saveShortcuts(MinecraftClient client) { + protected static void saveShortcuts(MinecraftClient client) { JsonObject shortcutsJson = new JsonObject(); shortcutsJson.add("commands", SkyblockerMod.GSON.toJsonTree(commands)); shortcutsJson.add("commandArgs", SkyblockerMod.GSON.toJsonTree(commandArgs)); @@ -183,15 +195,15 @@ public class Shortcuts { FabricClientCommandSource source = context.getSource(); String status = SkyblockerConfig.get().general.shortcuts.enableShortcuts && SkyblockerConfig.get().general.shortcuts.enableCommandShortcuts ? "§a§l (Enabled)" : "§c§l (Disabled)"; source.sendFeedback(Text.of("§e§lSkyblocker §fCommand Shortcuts" + status)); - if (!shortcutsLoaded.isDone()) { - source.sendFeedback(Text.of("§c§lShortcuts not loaded yet")); + if (!isShortcutsLoaded()) { + source.sendFeedback(Text.translatable("skyblocker.shortcuts.notLoaded")); } else for (Map.Entry command : commands.entrySet()) { source.sendFeedback(Text.of("§7" + command.getKey() + " §f→ §7" + command.getValue())); } status = SkyblockerConfig.get().general.shortcuts.enableShortcuts && SkyblockerConfig.get().general.shortcuts.enableCommandArgShortcuts ? "§a§l (Enabled)" : "§c§l (Disabled)"; source.sendFeedback(Text.of("§e§lSkyblocker §fCommand Argument Shortcuts" + status)); - if (!shortcutsLoaded.isDone()) { - source.sendFeedback(Text.of("§c§lShortcuts not loaded yet")); + if (!isShortcutsLoaded()) { + source.sendFeedback(Text.translatable("skyblocker.shortcuts.notLoaded")); } else for (Map.Entry commandArg : commandArgs.entrySet()) { source.sendFeedback(Text.of("§7" + commandArg.getKey() + " §f→ §7" + commandArg.getValue())); } @@ -209,7 +221,7 @@ public class Shortcuts { private static String modifyCommand(String command) { if (Utils.isOnHypixel() && SkyblockerConfig.get().general.shortcuts.enableShortcuts) { - if (!shortcutsLoaded.isDone()) { + if (!isShortcutsLoaded()) { LOGGER.warn("[Skyblocker] Shortcuts not loaded yet, skipping shortcut for command: {}", command); return command; } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java index 893d9169..210f0bd6 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigListWidget.java @@ -9,25 +9,35 @@ import net.minecraft.client.gui.screen.narration.NarrationPart; import net.minecraft.client.gui.widget.ElementListWidget; import net.minecraft.client.gui.widget.TextFieldWidget; import net.minecraft.text.Text; +import org.jetbrains.annotations.Nullable; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.Optional; public class ShortcutsConfigListWidget extends ElementListWidget { - public ShortcutsConfigListWidget(MinecraftClient minecraftClient, int width, int height, int top, int bottom, int itemHeight) { + private final ShortcutsConfigScreen screen; + protected final List categories = new ArrayList<>(); + + public ShortcutsConfigListWidget(MinecraftClient minecraftClient, ShortcutsConfigScreen screen, int width, int height, int top, int bottom, int itemHeight) { super(minecraftClient, width, height, top, bottom, itemHeight); - ShortcutCategoryEntry commandCategory = new ShortcutCategoryEntry("skyblocker.shortcuts.targetCommand", "skyblocker.shortcuts.replacementCommand"); + this.screen = screen; + ShortcutCategoryEntry commandCategory = new ShortcutCategoryEntry("skyblocker.shortcuts.command.target", "skyblocker.shortcuts.command.replacement"); + categories.add(commandCategory); addEntry(commandCategory); if (!Shortcuts.isShortcutsLoaded()) { addEntry(new ShortcutLoadingEntry()); } else { - Shortcuts.commands.keySet().stream().sorted().forEach(commandTarget -> addEntry(new ShortcutEntry(commandTarget, Shortcuts.commands.get(commandTarget), commandCategory))); + Shortcuts.commands.keySet().stream().sorted().forEach(commandTarget -> addEntry(new ShortcutEntry(commandCategory, commandTarget, Shortcuts.commands.get(commandTarget)))); } - ShortcutCategoryEntry commandArgCategory = new ShortcutCategoryEntry("skyblocekr.shortcuts.targetCommandArg", "skyblocker.shortcuts.replacementCommandArg"); + ShortcutCategoryEntry commandArgCategory = new ShortcutCategoryEntry("skyblocker.shortcuts.commandArg.target", "skyblocker.shortcuts.commandArg.replacement", "skyblocker.shortcuts.commandArg.tooltip"); + categories.add(commandArgCategory); addEntry(commandArgCategory); if (!Shortcuts.isShortcutsLoaded()) { addEntry(new ShortcutLoadingEntry()); } else { - Shortcuts.commandArgs.keySet().stream().sorted().forEach(commandArgTarget -> addEntry(new ShortcutEntry(commandArgTarget, Shortcuts.commandArgs.get(commandArgTarget), commandArgCategory))); + Shortcuts.commandArgs.keySet().stream().sorted().forEach(commandArgTarget -> addEntry(new ShortcutEntry(commandArgCategory, commandArgTarget, Shortcuts.commandArgs.get(commandArgTarget)))); } } @@ -41,16 +51,62 @@ public class ShortcutsConfigListWidget extends ElementListWidget { + protected Optional getCategory() { + if (getSelectedOrNull() instanceof ShortcutCategoryEntry category) { + return Optional.of(category); + } else if (getSelectedOrNull() instanceof ShortcutEntry shortcutEntry) { + return Optional.of(shortcutEntry.category); + } + return Optional.empty(); + } + + protected Map getShortcutsMap(ShortcutCategoryEntry category) { + return switch (categories.indexOf(category)) { + case 0 -> Shortcuts.commands; + case 1 -> Shortcuts.commandArgs; + default -> throw new IllegalStateException("Unexpected category: " + category); + }; + } + + @Override + public void setSelected(@Nullable ShortcutsConfigListWidget.AbstractShortcutEntry entry) { + super.setSelected(entry); + screen.updateButtons(); + } + + protected void addShortcutAfterSelected() { + getCategory().ifPresent(category -> { + children().add(children().indexOf(getSelectedOrNull()) + 1, new ShortcutEntry(category)); + getShortcutsMap(category).put("", ""); + }); + } + + @Override + protected boolean removeEntry(AbstractShortcutEntry entry) { + return super.removeEntry(entry); + } + + protected static abstract class AbstractShortcutEntry extends ElementListWidget.Entry { } - private class ShortcutCategoryEntry extends AbstractShortcutEntry { + protected class ShortcutCategoryEntry extends AbstractShortcutEntry { private final Text targetName; private final Text replacementName; + @Nullable + private final Text tooltip; private ShortcutCategoryEntry(String targetName, String replacementName) { + this(targetName, replacementName, (Text) null); + } + + private ShortcutCategoryEntry(String targetName, String replacementName, String tooltip) { + this(targetName, replacementName, Text.translatable(tooltip)); + } + + private ShortcutCategoryEntry(String targetName, String replacementName, @Nullable Text tooltip) { this.targetName = Text.translatable(targetName); this.replacementName = Text.translatable(replacementName); + this.tooltip = tooltip; } @Override @@ -77,6 +133,9 @@ public class ShortcutsConfigListWidget extends ElementListWidget children; - private final TextFieldWidget target; - private final TextFieldWidget replacement; - - private ShortcutEntry(String target, String replacement, ShortcutCategoryEntry category) { - this.target = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, width / 2 - 160, 5, 150, 20, category.targetName); - this.replacement = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, width / 2 + 10, 5, 150, 20, category.replacementName); - this.target.setText(target); - this.replacement.setText(replacement); - children = List.of(this.target, this.replacement); + protected final ShortcutCategoryEntry category; + protected final TextFieldWidget target; + protected final TextFieldWidget replacement; + private String oldTarget; + + protected ShortcutEntry(ShortcutCategoryEntry category) { + this(category, "", ""); + } + + private ShortcutEntry(ShortcutCategoryEntry category, String targetString, String replacementString) { + this.category = category; + target = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, width / 2 - 160, 5, 150, 20, category.targetName); + replacement = new TextFieldWidget(MinecraftClient.getInstance().textRenderer, width / 2 + 10, 5, 150, 20, category.replacementName); + oldTarget = targetString; + target.setText(targetString); + replacement.setText(replacementString); + target.setChangedListener(newTarget -> { + Map map = getShortcutsMap(category); + map.remove(oldTarget); + map.put(newTarget, replacement.getText()); + oldTarget = newTarget; + }); + replacement.setChangedListener(newReplacement -> getShortcutsMap(category).put(target.getText(), newReplacement)); + children = List.of(target, replacement); } @Override diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java index 2f020604..49581761 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/shortcut/ShortcutsConfigScreen.java @@ -1,18 +1,76 @@ package me.xmrvizzy.skyblocker.skyblock.shortcut; import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.screen.ConfirmScreen; 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.GridWidget; +import net.minecraft.client.gui.widget.SimplePositioningWidget; +import net.minecraft.screen.ScreenTexts; import net.minecraft.text.Text; public class ShortcutsConfigScreen extends Screen { + + private ShortcutsConfigListWidget shortcutsConfigListWidget; + private ButtonWidget buttonDelete; + private ButtonWidget buttonNew; + private ButtonWidget buttonDone; + private double scrollAmount; + public ShortcutsConfigScreen() { super(Text.translatable("skyblocker.shortcuts.config")); } + @Override + public void setTooltip(Text tooltip) { + super.setTooltip(tooltip); + } + @Override protected void init() { super.init(); - addDrawableChild(new ShortcutsConfigListWidget(client, width, height, 32, height - 32, 25)); + shortcutsConfigListWidget = new ShortcutsConfigListWidget(client, this, width, height, 32, height - 64, 25); + addDrawableChild(shortcutsConfigListWidget); + GridWidget gridWidget = new GridWidget(); + gridWidget.getMainPositioner().marginX(5).marginY(2); + GridWidget.Adder adder = gridWidget.createAdder(2); + buttonDelete = ButtonWidget.builder(Text.translatable("selectServer.delete"), button -> { + if (client != null && shortcutsConfigListWidget.getSelectedOrNull() instanceof ShortcutsConfigListWidget.ShortcutEntry shortcutEntry) { + scrollAmount = shortcutsConfigListWidget.getScrollAmount(); + client.setScreen(new ConfirmScreen(this::deleteEntry, Text.translatable("skyblocker.shortcuts.deleteQuestion"), Text.translatable("skyblocker.shortcuts.deleteWarning", shortcutEntry.target.getText() + " → " + shortcutEntry.replacement.getText()), Text.translatable("selectServer.deleteButton"), ScreenTexts.CANCEL)); + } + }).build(); + adder.add(buttonDelete); + buttonNew = ButtonWidget.builder(Text.translatable("skyblocker.shortcuts.new"), buttonNew -> shortcutsConfigListWidget.addShortcutAfterSelected()).build(); + adder.add(buttonNew); + adder.add(ButtonWidget.builder(ScreenTexts.CANCEL, button -> { + if (client != null) { + client.setScreen(null); + } + Shortcuts.loadShortcuts(); // Cancel changes by reloading shortcuts from disk + }).build()); + buttonDone = ButtonWidget.builder(ScreenTexts.DONE, button -> { + if (client != null) { + client.setScreen(null); + Shortcuts.saveShortcuts(client); // Save shortcuts to disk + } + }).tooltip(Tooltip.of(Text.translatable("skyblocker.shortcuts.commandSuggestionTooltip"))).build(); + adder.add(buttonDone); + gridWidget.refreshPositions(); + SimplePositioningWidget.setPos(gridWidget, 0, this.height - 64, this.width, 64); + gridWidget.forEachChild(this::addDrawableChild); + updateButtons(); + } + + private void deleteEntry(boolean confirmedAction) { + if (client != null) { + if (confirmedAction && shortcutsConfigListWidget.getSelectedOrNull() instanceof ShortcutsConfigListWidget.ShortcutEntry shortcutEntry) { + shortcutsConfigListWidget.getShortcutsMap(shortcutEntry.category).remove(shortcutEntry.target.getText()); + } + client.setScreen(this); // Re-inits the screen and creates a new instance of ShortcutsConfigListWidget + shortcutsConfigListWidget.setScrollAmount(scrollAmount); + } } @Override @@ -20,4 +78,10 @@ public class ShortcutsConfigScreen extends Screen { super.render(context, mouseX, mouseY, delta); context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 16, 0xFFFFFF); } + + protected void updateButtons() { + buttonDelete.active = Shortcuts.isShortcutsLoaded() && shortcutsConfigListWidget.getSelectedOrNull() instanceof ShortcutsConfigListWidget.ShortcutEntry; + buttonNew.active = Shortcuts.isShortcutsLoaded() && shortcutsConfigListWidget.getCategory().isPresent(); + buttonDone.active = Shortcuts.isShortcutsLoaded(); + } } diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index d647c1e1..b907cf1b 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -35,7 +35,7 @@ "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandShortcuts": "Enable Command Shortcuts", "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandShortcuts.@Tooltip": "Shortcuts for commands consisting of only one word. Edit shortcuts with \"/skyblocker shortcuts\". Shortcuts must be enabled for this to take effect.", "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandArgShortcuts": "Enable Command Argument Shortcuts", - "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandArgShortcuts.@Tooltip": "Shortcuts that replace an argument/word of a command with multiple arguments/words. Edit shortcuts with \"/skyblocker shortcuts\". Shortcuts must be enabled for this to take effect.", + "text.autoconfig.skyblocker.option.general.shortcuts.enableCommandArgShortcuts.@Tooltip": "Shortcuts that replace one or more word(s)/argument(s) of a command which has multiple words/arguments. Edit shortcuts with \"/skyblocker shortcuts\". Shortcuts must be enabled for this to take effect.", "text.autoconfig.skyblocker.option.general.quicknav": "Quicknav", "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Enable Quicknav", "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "View backpack preview without holding Shift", @@ -274,8 +274,14 @@ "skyblocker.fairySouls.markAllFound": "Marked all fairy souls in the current island as found", "skyblocker.fairySouls.markAllMissing": "Marked all fairy souls in the current island as missing", "skyblocker.shortcuts.config": "Shortcuts Config", - "skyblocker.shortcuts.targetCommand": "Target Command", - "skyblocker.shortcuts.replacementCommand": "Replacement Command", - "skyblocekr.shortcuts.targetCommandArg": "Target Command Argument", - "skyblocker.shortcuts.replacementCommandArg": "Replacement Command Argument" + "skyblocker.shortcuts.notLoaded": "§c§lShortcuts not loaded yet", + "skyblocker.shortcuts.command.target": "Target Command", + "skyblocker.shortcuts.command.replacement": "Replacement Command", + "skyblocker.shortcuts.commandArg.target": "Target Command Argument", + "skyblocker.shortcuts.commandArg.replacement": "Replacement Command Argument", + "skyblocker.shortcuts.commandArg.tooltip": "Replace one or more word(s)/argument(s) of a command which has multiple words/arguments instead of matching the entire command.", + "skyblocker.shortcuts.deleteQuestion": "Are you sure you want to remove this shortcut?", + "skyblocker.shortcuts.deleteWarning": "Shortcut '%s' will be lost forever! (A long time!)", + "skyblocker.shortcuts.new": "New Shortcut", + "skyblocker.shortcuts.commandSuggestionTooltip": "Due to limitations of Minecraft, command suggestions will only work after a restart of the game." } -- cgit From 954e25b1a681e211b84f939a75925f8a96a01dd4 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Wed, 19 Jul 2023 10:32:34 +0800 Subject: Update fabric api to 0.86.0 --- gradle.properties | 2 +- src/main/resources/fabric.mod.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/resources') diff --git a/gradle.properties b/gradle.properties index ce4f22c0..fe9595f0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ loader_version=0.14.21 #Fabric api ## 1.20 -fabric_api_version=0.83.0+1.20 +fabric_api_version=0.86.0+1.20.1 # Dependencies ## Cloth Api (https://www.curseforge.com/minecraft/mc-mods/cloth-config/files) diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index ead46adc..5b383fe7 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -30,7 +30,7 @@ ], "depends": { "fabricloader": ">=0.14.21", - "fabric-api": ">=0.83.0+1.20", + "fabric-api": ">=0.86.0", "cloth-config2": "*", "minecraft": "~1.20" }, -- cgit From 20edc3b057346e70965ed2dffa131722f64a0d7a Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sat, 22 Jul 2023 22:51:46 -0400 Subject: Add show off message filter --- .../xmrvizzy/skyblocker/chat/ChatMessageListener.java | 1 + .../skyblocker/chat/filters/ShowOffFilter.java | 18 ++++++++++++++++++ .../xmrvizzy/skyblocker/config/SkyblockerConfig.java | 3 +++ src/main/resources/assets/skyblocker/lang/en_us.json | 3 ++- 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/chat/filters/ShowOffFilter.java (limited to 'src/main/resources') diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java index d58d03aa..5ea3e2a9 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java @@ -53,6 +53,7 @@ public interface ChatMessageListener { new MoltenWaveFilter(), new TeleportPadFilter(), new AutopetFilter(), + new ShowOffFilter() }; // Register all listeners to EVENT for (ChatMessageListener listener : listeners) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ShowOffFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ShowOffFilter.java new file mode 100644 index 00000000..a9835d21 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ShowOffFilter.java @@ -0,0 +1,18 @@ +package me.xmrvizzy.skyblocker.chat.filters; + +import me.xmrvizzy.skyblocker.chat.ChatFilterResult; +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; + +public class ShowOffFilter extends SimpleChatFilter { + private static final String EMBLEMS = "\u2E15\u273F\u2741\u2E19\u03B1\u270E\u2615\u2616\u2663\u213B\u2694\u27B6\u26A1\u2604\u269A\u2693\u2620\u269B\u2666\u2660\u2764\u2727\u238A\u1360\u262C\u269D\u29C9\uA214\u32D6\u2E0E\u26A0\uA541\u3020\u30C4\u2948\u2622\u2623\u273E\u269C\u0BD0\u0A6D\u2742\u16C3\u3023\u10F6\u0444\u266A\u266B\u04C3\u26C1\u26C3\u16DD\uA03E\u1C6A\u03A3\u09EB\u2603\u12DE"; + private static final String[] SHOW_TYPES = { "is holding", "is wearing", "is friends with a", "has" }; + + public ShowOffFilter() { + super("(?:§8\\[[§feadbc0-9]+§8\\] )?(?:[§76l]+[" + EMBLEMS + "] )?§[67abc](?:\\[[§A-Za-z0-9+]+\\] )?([A-Za-z0-9_]+)[§f7]+ (?:" + String.join("|", SHOW_TYPES) + ") §8\\[(.+)§8\\]"); + } + + @Override + protected ChatFilterResult state() { + return SkyblockerConfig.get().messages.hideShowOff; + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index c4eeb090..c965517a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -497,6 +497,9 @@ public class SkyblockerConfig implements ConfigData { public ChatFilterResult hideCombo = ChatFilterResult.PASS; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) public ChatFilterResult hideAutopet = ChatFilterResult.PASS; + @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON) + @ConfigEntry.Gui.Tooltip + public ChatFilterResult hideShowOff = ChatFilterResult.PASS; @ConfigEntry.Gui.Tooltip() public boolean hideMana = false; } diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index b907cf1b..054d3162 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -242,7 +242,8 @@ "text.autoconfig.skyblocker.option.messages.hideAutopet": "Hide Autopet Messages", "text.autoconfig.skyblocker.option.messages.hideMana": "Hide Mana Consumption Messages from Action Bar", "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Gives a better experience with FancyBar", - "text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "Hide empty item tooltips in menus", + "text.autoconfig.skyblocker.option.messages.hideShowOff": "Hide Show Off Messages", + "text.autoconfig.skyblocker.option.messages.hideShowOff.@Tooltip": "Filters messages from the /show command", "text.autoconfig.skyblocker.category.slayer": "Slayers", "text.autoconfig.skyblocker.option.slayer.vampireSlayer": "Vampire Slayer", "text.autoconfig.skyblocker.option.slayer.vampireSlayer.enableEffigyWaypoints": "Enable Effigy Waypoints", -- cgit From cfae3b8ca91484ef7d9dc7e0eff919ffeeff89c7 Mon Sep 17 00:00:00 2001 From: Kevin <92656833+kevinthegreat1@users.noreply.github.com> Date: Tue, 25 Jul 2023 02:15:16 -0400 Subject: Hide spammed warnings (#209) --- build.gradle | 15 ++++++----- gradle.properties | 2 ++ .../mixin/ClientPlayNetworkHandlerMixin.java | 29 +++++++++++++++------- .../xmrvizzy/skyblocker/mixin/ScoreboardMixin.java | 16 ++++++++++++ .../skyblocker/skyblock/FishingHelper.java | 4 +-- src/main/resources/skyblocker.mixins.json | 1 + 6 files changed, 50 insertions(+), 17 deletions(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/ScoreboardMixin.java (limited to 'src/main/resources') diff --git a/build.gradle b/build.gradle index 44d47adc..9e5e4e6a 100644 --- a/build.gradle +++ b/build.gradle @@ -40,6 +40,9 @@ dependencies { mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + // Fabric API. This is technically optional, but you probably want it anyway. + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}" + // Cloth config include modImplementation("me.shedaniel.cloth:cloth-config-fabric:${project.clothconfig_version}") { exclude group: "net.fabricmc.fabric-api" @@ -53,12 +56,6 @@ dependencies { modCompileOnly "me.shedaniel:RoughlyEnoughItems-api-fabric:${project.rei_version}" modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}" - // Fabric API. This is technically optional, but you probably want it anyway. - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}" - - // https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit used pull data from the NEU item repo - include implementation("org.eclipse.jgit:org.eclipse.jgit:6.4.0.202211300538-r") - // Renderer (https://github.com/0x3C50/Renderer) include modImplementation("com.github.0x3C50:Renderer:${project.renderer_version}"){ exclude group: "io.github.ladysnake" exclude module: "satin" @@ -66,6 +63,12 @@ dependencies { include modImplementation("meteordevelopment:discord-ipc:1.1") + // Mixin Extras (https://github.com/LlamaLad7/MixinExtras) + include implementation(annotationProcessor("com.github.llamalad7.mixinextras:mixinextras-fabric:${project.mixin_extras_version}")) + + // https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit used pull data from the NEU item repo + include implementation("org.eclipse.jgit:org.eclipse.jgit:6.4.0.202211300538-r") + // Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling) include implementation("com.logisticscraft:occlusionculling:${project.occlusionculling_version}") } diff --git a/gradle.properties b/gradle.properties index a97ef816..d28c538b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,6 +20,8 @@ rei_version=12.0.625 ## Renderer (https://github.com/0x3C50/Renderer) renderer_version = master-SNAPSHOT +## Mixin Extras (https://github.com/LlamaLad7/MixinExtras) +mixin_extras_version=0.2.0-beta.9 ## Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling) occlusionculling_version = 0.0.7-SNAPSHOT diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java index 80c98473..1d8b6565 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayNetworkHandlerMixin.java @@ -1,24 +1,35 @@ package me.xmrvizzy.skyblocker.mixin; +import com.llamalad7.mixinextras.injector.WrapWithCondition; import me.xmrvizzy.skyblocker.skyblock.FishingHelper; -import net.minecraft.client.MinecraftClient; +import me.xmrvizzy.skyblocker.utils.Utils; import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket; -import org.spongepowered.asm.mixin.Final; +import org.slf4j.Logger; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(ClientPlayNetworkHandler.class) public abstract class ClientPlayNetworkHandlerMixin { - @Shadow - @Final - private MinecraftClient client; - @Inject(method = "onPlaySound", at = @At("RETURN")) - private void skyblockmod_onPlaySound(PlaySoundS2CPacket packet, CallbackInfo ci) { - FishingHelper.onSound(client, packet); + private void skyblocker$onPlaySound(PlaySoundS2CPacket packet, CallbackInfo ci) { + FishingHelper.onSound(packet); + } + + @WrapWithCondition(method = "onEntityPassengersSet", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;)V")) + private boolean skyblocker$cancelEntityPassengersWarning(Logger instance, String msg) { + return !Utils.isOnHypixel(); + } + + @WrapWithCondition(method = "onPlayerList", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;)V")) + private boolean skyblocker$cancelPlayerListWarning(Logger instance, String format, Object arg) { + return !Utils.isOnHypixel(); + } + + @WrapWithCondition(method = "onTeam", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;[Ljava/lang/Object;)V")) + private boolean skyblocker$cancelTeamWarning(Logger instance, String format, Object... arg) { + return !Utils.isOnHypixel(); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ScoreboardMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ScoreboardMixin.java new file mode 100644 index 00000000..6f88821c --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ScoreboardMixin.java @@ -0,0 +1,16 @@ +package me.xmrvizzy.skyblocker.mixin; + +import com.llamalad7.mixinextras.injector.WrapWithCondition; +import me.xmrvizzy.skyblocker.utils.Utils; +import net.minecraft.scoreboard.Scoreboard; +import org.slf4j.Logger; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(Scoreboard.class) +public abstract class ScoreboardMixin { + @WrapWithCondition(method = "addTeam", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;)V")) + private boolean skyblocker$cancelTeamWarning(Logger instance, String format, Object arg) { + return !Utils.isOnHypixel(); + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FishingHelper.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FishingHelper.java index 8dee3fcb..b53157c5 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FishingHelper.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FishingHelper.java @@ -44,10 +44,10 @@ public class FishingHelper { startTime = 0; } - public static void onSound(MinecraftClient client, PlaySoundS2CPacket packet) { + public static void onSound(PlaySoundS2CPacket packet) { String path = packet.getSound().value().getId().getPath(); if (SkyblockerConfig.get().general.fishing.enableFishingHelper && startTime != 0 && System.currentTimeMillis() >= startTime + 2000 && ("entity.generic.splash".equals(path) || "entity.player.splash".equals(path))) { - ClientPlayerEntity player = client.player; + ClientPlayerEntity player = MinecraftClient.getInstance().player; if (player != null && player.fishHook != null) { Vec3d soundToFishHook = player.fishHook.getPos().subtract(packet.getX(), 0, packet.getZ()); if (Math.abs(normalYawVector.x * soundToFishHook.z - normalYawVector.z * soundToFishHook.x) < 0.2D && Math.abs(normalYawVector.dotProduct(soundToFishHook)) < 4D && player.getPos().squaredDistanceTo(packet.getX(), packet.getY(), packet.getZ()) > 1D) { diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json index 701d54e5..83861112 100644 --- a/src/main/resources/skyblocker.mixins.json +++ b/src/main/resources/skyblocker.mixins.json @@ -18,6 +18,7 @@ "PlayerListHudAccessor", "PlayerListHudMixin", "RecipeBookWidgetAccessor", + "ScoreboardMixin", "accessor.BeaconBlockEntityRendererInvoker", "accessor.FrustumInvoker" ], -- cgit From 17b50cb7bc0e06e2be08f275eb32a93d7e8f6b66 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 04:41:35 -0400 Subject: Add Etherwarp Overlay --- .../java/me/xmrvizzy/skyblocker/SkyblockerMod.java | 1 + .../skyblocker/config/SkyblockerConfig.java | 1 + .../skyblocker/skyblock/EtherwarpOverlay.java | 54 ++++++++++++++++++++++ .../resources/assets/skyblocker/lang/en_us.json | 1 + 4 files changed, 57 insertions(+) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java (limited to 'src/main/resources') diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index 0263f20c..50c60840 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -87,6 +87,7 @@ public class SkyblockerMod implements ClientModInitializer { TheRift.init(); TitleContainer.init(); OcclusionCulling.init(); + EtherwarpOverlay.init(); containerSolverManager.init(); scheduler.scheduleCyclic(Utils::update, 20); scheduler.scheduleCyclic(DiscordRPCManager::updateDataAndPresence, 100); diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index c965517a..6874f2ce 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -136,6 +136,7 @@ public class SkyblockerConfig implements ConfigData { public boolean acceptReparty = true; public boolean backpackPreviewWithoutShift = false; public boolean hideEmptyTooltips = true; + public boolean etherwarpOverlay = true; @ConfigEntry.Category("tabHud") @ConfigEntry.Gui.CollapsibleObject() diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java new file mode 100644 index 00000000..22048fcc --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/EtherwarpOverlay.java @@ -0,0 +1,54 @@ +package me.xmrvizzy.skyblocker.skyblock; + +import org.lwjgl.glfw.GLFW; + +import com.mojang.blaze3d.systems.RenderSystem; + +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip; +import me.xmrvizzy.skyblocker.utils.RenderHelper; +import me.xmrvizzy.skyblocker.utils.Utils; +import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; +import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.util.InputUtil; +import net.minecraft.item.ItemStack; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.BlockPos; + +public class EtherwarpOverlay { + private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); + private static final float[] COLOR_COMPONENTS = { 118f / 255f, 21f / 255f, 148f / 255f }; + + public static void init() { + WorldRenderEvents.AFTER_TRANSLUCENT.register(EtherwarpOverlay::renderEtherwarpOverlay); + } + + private static void renderEtherwarpOverlay(WorldRenderContext wrc) { + if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.etherwarpOverlay) { + ItemStack heldItem = CLIENT.player.getMainHandStack(); + String itemId = PriceInfoTooltip.getInternalNameFromNBT(heldItem); + + if (itemId != null && itemId.equals("ASPECT_OF_THE_VOID") && InputUtil.isKeyPressed(CLIENT.getWindow().getHandle(), GLFW.GLFW_KEY_LEFT_SHIFT)) { + HitResult result = CLIENT.player.raycast(61, wrc.tickDelta(), false); + + if (result instanceof BlockHitResult blockHit) { + BlockPos pos = blockHit.getBlockPos(); + BlockState state = CLIENT.world.getBlockState(pos); + if (state.getBlock() != Blocks.AIR && CLIENT.world.getBlockState(pos.up()).getBlock() == Blocks.AIR && CLIENT.world.getBlockState(pos.up(2)).getBlock() == Blocks.AIR) { + RenderSystem.polygonOffset(-1f, -10f); + RenderSystem.enablePolygonOffset(); + + RenderHelper.renderFilledIfVisible(wrc, pos, COLOR_COMPONENTS, 0.5f); + + RenderSystem.polygonOffset(0f, 0f); + RenderSystem.disablePolygonOffset(); + } + } + } + } + } +} diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 054d3162..736f5872 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -25,6 +25,7 @@ "text.autoconfig.skyblocker.option.general.experiments.enableSuperpairsSolver": "Enable Superpairs Solver", "text.autoconfig.skyblocker.option.general.experiments.enableUltrasequencerSolver": "Enable Ultrasequencer Solver", "text.autoconfig.skyblocker.option.general.acceptReparty": "Auto accept Reparty", + "text.autoconfig.skyblocker.option.general.etherwarpOverlay": "Etherwarp Overlay", "text.autoconfig.skyblocker.option.general.fishing": "Fishing Helper", "text.autoconfig.skyblocker.option.general.fishing.enableFishingHelper": "Enable Fishing Helper", "text.autoconfig.skyblocker.option.general.fairySouls": "Fairy Souls Helper", -- cgit From bf2b17b4e6a380a5a678e7638ce4bc65a4b15a20 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 28 Jul 2023 17:45:00 -0400 Subject: Remove invalid base64 log spam --- .../skyblocker/mixin/PlayerSkinProviderMixin.java | 27 ++++++++++++++++++++++ src/main/resources/skyblocker.mixins.json | 1 + 2 files changed, 28 insertions(+) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerSkinProviderMixin.java (limited to 'src/main/resources') diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerSkinProviderMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerSkinProviderMixin.java new file mode 100644 index 00000000..5b75eb47 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerSkinProviderMixin.java @@ -0,0 +1,27 @@ +package me.xmrvizzy.skyblocker.mixin; + +import java.util.concurrent.ExecutorService; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import me.xmrvizzy.skyblocker.utils.Utils; +import net.minecraft.client.texture.PlayerSkinProvider; + +@Mixin(PlayerSkinProvider.class) +public class PlayerSkinProviderMixin { + + @Redirect(method = "loadSkin(Lcom/mojang/authlib/GameProfile;Lnet/minecraft/client/texture/PlayerSkinProvider$SkinTextureAvailableCallback;Z)V", at = @At(value = "INVOKE", target = "Ljava/util/concurrent/ExecutorService;execute(Ljava/lang/Runnable;)V", remap = false)) + private void skyblocker$removeInvalidBase64LogSpam(ExecutorService executor, Runnable runnable) { + executor.execute(() -> { + try { + runnable.run(); + } catch (Throwable t) { + if (!(t instanceof IllegalArgumentException) || !Utils.isOnHypixel()) { + t.printStackTrace(); + } + } + }); + } +} diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json index 83861112..656f9d32 100644 --- a/src/main/resources/skyblocker.mixins.json +++ b/src/main/resources/skyblocker.mixins.json @@ -17,6 +17,7 @@ "MinecraftClientMixin", "PlayerListHudAccessor", "PlayerListHudMixin", + "PlayerSkinProviderMixin", "RecipeBookWidgetAccessor", "ScoreboardMixin", "accessor.BeaconBlockEntityRendererInvoker", -- cgit From d7eb0c372d733f734cedb47243fbf37c5c738b7c Mon Sep 17 00:00:00 2001 From: viciscat Date: Sun, 11 Jun 2023 13:50:55 +0000 Subject: Translated using Weblate (French) [skip ci] Currently translated at 59.1% (126 of 213 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/fr/ --- .../resources/assets/skyblocker/lang/fr_fr.json | 199 +++++++++++++-------- 1 file changed, 122 insertions(+), 77 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/fr_fr.json b/src/main/resources/assets/skyblocker/lang/fr_fr.json index a4fe390d..e84e2214 100644 --- a/src/main/resources/assets/skyblocker/lang/fr_fr.json +++ b/src/main/resources/assets/skyblocker/lang/fr_fr.json @@ -1,77 +1,122 @@ -{ - "key.categories.skyblocker": "Skyblocker", - "key.hotbarSlotLock": "Verrouillage de slot (Hotbar)", - "key.wikiLookup": "Recherche dans le wiki", - - "text.autoconfig.skyblocker.title": "Paramètres de Skyblocker", - - "text.autoconfig.skyblocker.category.general": "Général", - "text.autoconfig.skyblocker.option.general.bars": "Barres de vie, de mana, de défense et d'XP", - "text.autoconfig.skyblocker.option.general.bars.enableBars": "Activer les barres", - "text.autoconfig.skyblocker.option.general.bars.barpositions": "Configurer Les positions des barres", - "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Position de la barre de vie", - "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Position de la barre de mana", - "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "Position de la barre de défense", - "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "Position de la barre d'XP", - "text.autoconfig.skyblocker.option.general.quicknav": "Navigation rapide", - "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Navigation rapide activée", - "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Aperçu du sac à dos sans appuyer sur Maj", - "text.autoconfig.skyblocker.option.general.itemTooltip": "Info-bulles des objets", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "Afficher le prix des NPC", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Afficher le prix moyen d'achat immédiat (BIN)", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "Type de moyenne", - "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Vous pouvez choisir sur combien de jours la moyenne est calculée", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "Afficher le prix minimal d'achat immédiat (BIN)", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Afficher le prix d'achat et de vente au Bazar", - "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Afficher le musée et la date d'ajout", - "text.autoconfig.skyblocker.option.general.hitbox": "Hitboxes", - "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "Hitbox 1.8 de la terre labourée ", - "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "Hitbox 1.8 du levier", - "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cLes informations sur le prix des objets vont s'actualiser dans 60 secondes maximum. Sinon consultez le fichier latest.log", - "skyblocker.itemTooltip.noData": "§cNo Data", - - "text.autoconfig.skyblocker.category.richPresence": "Discord Rich Presence", - "text.autoconfig.skyblocker.option.richPresence.info": "Information à afficher", - "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Cette valeur n'a aucune importance si vous faites défiler", - "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Faire défiler les informations", - "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Activée", - "text.autoconfig.skyblocker.option.richPresence.customMessage": "Message personnalisé", - - "text.autoconfig.skyblocker.option.general.itemList": "Liste d'objets", - "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "Activer la liste d'objets", - - "text.autoconfig.skyblocker.category.locations": "Lieux", - "text.autoconfig.skyblocker.option.locations.dungeons": "Donjons", - "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "Améliorer Croesus", - "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "Griser les coffres qui ont déjà été ouverts.", - "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "Activer la carte", - "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Résoudre le puzzle des trois PNJ « Three Weirdos »", - "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "Résoudre le puzzle des blazes « Higher or Lower »", - "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Résoudre le quiz", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "Solveurs des terminaux", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "Résoudre le puzzle des couleurs « Color »", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "Résoudre le puzzle de l'ordre « Order »", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "Résoudre le puzzle des noms d'objets « Name »", - "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Mines des nains", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "Afficher le niveau de carburant des foreuses", - "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.option.locations.dwarvenMines.dwarvenHud.x": "X", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", - - "text.autoconfig.skyblocker.category.messages": "Messages", - "text.autoconfig.skyblocker.option.messages.hideAbility": "Cacher le rechargement des capacités", - "text.autoconfig.skyblocker.option.messages.hideHeal": "Cacher les messages de soin", - "text.autoconfig.skyblocker.option.messages.hideAOTE": "Cacher les messages de l'AOTE", - "text.autoconfig.skyblocker.option.messages.hideImplosion": "Cacher les messages d'implosion", - "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Cacher les messages de la compétence du bâton de Midas", - "text.autoconfig.skyblocker.option.messages.hideAds": "Cacher la publicité dans le chat public", - "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Cacher les messages des téléporteurs", - "text.autoconfig.skyblocker.option.messages.hideCombo": "Cacher les messages de combo", - "text.autoconfig.skyblocker.option.messages.hideAutopet": "Cacher les messages de l'auto-familier", - "text.autoconfig.skyblocker.option.messages.hideMana": "Cacher les messages de consommation de mana de la barre d'action", - "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Permet une meilleure expérience avec les barres" -} \ No newline at end of file +{ + "key.categories.skyblocker": "Skyblocker", + "key.hotbarSlotLock": "Verrouillage de slot (Hotbar)", + "key.wikiLookup": "Recherche dans le wiki", + "text.autoconfig.skyblocker.title": "Paramètres de Skyblocker", + "text.autoconfig.skyblocker.category.general": "Général", + "text.autoconfig.skyblocker.option.general.bars": "Barres de vie, de mana, de défense et d'XP", + "text.autoconfig.skyblocker.option.general.bars.enableBars": "Activer les barres", + "text.autoconfig.skyblocker.option.general.bars.barpositions": "Configurer Les positions des barres", + "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Position de la barre de vie", + "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Position de la barre de mana", + "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "Position de la barre de défense", + "text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition": "Position de la barre d'XP", + "text.autoconfig.skyblocker.option.general.quicknav": "Navigation rapide", + "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Navigation rapide activée", + "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Aperçu du sac à dos sans appuyer sur Maj", + "text.autoconfig.skyblocker.option.general.itemTooltip": "Info-bulles des objets", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "Afficher le prix des NPC", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Afficher le prix moyen d'achat immédiat (BIN)", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "Type de moyenne", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Vous pouvez choisir sur combien de jours la moyenne est calculée", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "Afficher le prix minimal d'achat immédiat (BIN)", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Afficher le prix d'achat et de vente au Bazar", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Afficher le musée et la date d'ajout", + "text.autoconfig.skyblocker.option.general.hitbox": "Hitboxes", + "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "Hitbox 1.8 de la terre labourée", + "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "Hitbox 1.8 du levier", + "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cLes informations sur le prix des objets vont s'actualiser dans 60 secondes maximum. Sinon consultez le fichier latest.log", + "skyblocker.itemTooltip.noData": "§cPas de données", + "text.autoconfig.skyblocker.category.richPresence": "Rich Presence Discord", + "text.autoconfig.skyblocker.option.richPresence.info": "Information à afficher", + "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Cette valeur n'a aucune importance si vous faites défiler", + "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Faire défiler les informations", + "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Activée", + "text.autoconfig.skyblocker.option.richPresence.customMessage": "Message personnalisé", + "text.autoconfig.skyblocker.option.general.itemList": "Liste d'objets", + "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "Activer la liste d'objets", + "text.autoconfig.skyblocker.category.locations": "Lieux", + "text.autoconfig.skyblocker.option.locations.dungeons": "Donjons", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "Améliorer Croesus", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "Griser les coffres qui ont déjà été ouverts.", + "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "Activer la carte", + "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Résoudre le puzzle des trois PNJ « Three Weirdos »", + "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "Résoudre le puzzle des blazes « Higher or Lower »", + "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Résoudre le quiz", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "Solveurs des terminaux", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "Résoudre le puzzle des couleurs « Color »", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "Résoudre le puzzle de l'ordre « Order »", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "Résoudre le puzzle des noms d'objets « Name »", + "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Mines des nains", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "Afficher le niveau de carburant des foreuses", + "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.option.locations.dwarvenMines.dwarvenHud.x": "X", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", + "text.autoconfig.skyblocker.category.messages": "Messages", + "text.autoconfig.skyblocker.option.messages.hideAbility": "Cacher le rechargement des capacités", + "text.autoconfig.skyblocker.option.messages.hideHeal": "Cacher les messages de soin", + "text.autoconfig.skyblocker.option.messages.hideAOTE": "Cacher les messages de l'AOTE", + "text.autoconfig.skyblocker.option.messages.hideImplosion": "Cacher les messages d'implosion", + "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Cacher les messages de la compétence du bâton de Midas", + "text.autoconfig.skyblocker.option.messages.hideAds": "Cacher la publicité dans le chat public", + "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Cacher les messages des téléporteurs", + "text.autoconfig.skyblocker.option.messages.hideCombo": "Cacher les messages de combo", + "text.autoconfig.skyblocker.option.messages.hideAutopet": "Cacher les messages de l'auto-familier", + "text.autoconfig.skyblocker.option.messages.hideMana": "Cacher les messages de consommation de mana de la barre d'action", + "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Permet une meilleure expérience avec les barres", + "text.autoconfig.skyblocker.option.locations.dungeons.mapScaling": "Taille de la Carte", + "text.autoconfig.skyblocker.option.quickNav.button1.render": "Render", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.lividColorText.@Tooltip": "Texte qui sera envoyé dans le chat lors du boss Livid. Le string \"[color]\" sera remplacé par la couleur Livid.", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor": "Couleur Livid", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColor": "Activer la Couleur Livid", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColor.@Tooltip": "Envoyer la Couler Livid dans le chat durant le boss Livid.", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.lividColorText": "Texte de la Couleur Livid", + "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER1": "Couche 1", + "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Désactivé", + "text.autoconfig.skyblocker.option.general.bars.barpositions.LAYER2": "Couche 2", + "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "Droite", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.ONE_DAY": "Prix pour 1 jour", + "text.autoconfig.skyblocker.option.locations.dungeons.mapX": "Carte X", + "text.autoconfig.skyblocker.option.locations.dungeons.mapY": "Carte Y", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style": "Style du HUD", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[0]": "Simple : Montre le nom et le pourcentage.", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[1]": "Détaillé : Montre le nom, pourcentage, barre de progression et une icone.", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[2]": "Classique : Montre le nom et pourcentage dans une boîte très simple.", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.ACTION_BAR": "Bouger vers la barre d'action", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.FILTER": "Filtre", + "text.autoconfig.skyblocker.option.locations.barn": "Grange", + "text.autoconfig.skyblocker.option.locations.barn.solveTreasureHunter": "Résoudre Chasseur de trésor", + "text.autoconfig.skyblocker.option.locations.barn.solveHungryHiker": "Résoudre Randonneur affamé", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "Désactivé", + "text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "Cacher les tooltips des items vides dans les menus", + "text.autoconfig.skyblocker.option.general.tabHud.tabHudScale.@Tooltip": "Valeur en %, relative à la taille de l'interface vanilla", + "key.skyblocker.playerTgl": "Passer le HUD Tab à la liste de joueurs", + "key.skyblocker.defaultTgl": "Passer le HUD Tab à la vue par défaut", + "key.skyblocker.genericTgl": "Passer le HUD Tab aux infos générales", + "text.autoconfig.skyblocker.option.general.tabHud": "HUD Tab joli", + "text.autoconfig.skyblocker.option.general.tabHud.tabHudEnabled": "Activer le HUD Tab joli", + "text.autoconfig.skyblocker.option.general.tabHud.tabHudScale": "Taille du HUD Tab joli", + "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "LIEU", + "text.autoconfig.skyblocker.category.quickNav": "Navigation rapide", + "text.autoconfig.skyblocker.option.quickNav.enableQuickNav": "Activer la navigation rapide", + "text.autoconfig.skyblocker.option.quickNav.button1": "Bouton 1", + "text.autoconfig.skyblocker.option.quickNav.button1.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button1.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button1.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button1.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button1.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button1.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button2": "Bouton 2", + "skyblocker.updaterepository.failed": "§b[§6Skyblocker§b] §cLa mise à jour de la repository a échoué. Supprimez les fichiers manuellement et relancez le jeu.", + "skyblocker.fishing.reelNow": "Enroulez la ligne !", + "text.autoconfig.skyblocker.option.general.fishing.enableFishingHelper": "Activer l'assistant de pêche", + "text.autoconfig.skyblocker.option.general.fishing": "Assistant de pêche", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.THREE_DAY": "Prix pour 3 jours", + "text.autoconfig.skyblocker.option.general.itemTooltip.avg.BOTH": "Les deux", + "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "PORTE-MONNAIE", + "text.autoconfig.skyblocker.option.richPresence.info.BITS": "BITS" +} -- cgit From 11e153bd464fc1de834bee9b12f5d421a0c5e858 Mon Sep 17 00:00:00 2001 From: Julienraptor01 Date: Sun, 11 Jun 2023 16:17:55 +0000 Subject: Translated using Weblate (French) [skip ci] Currently translated at 100.0% (213 of 213 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/fr/ --- .../resources/assets/skyblocker/lang/fr_fr.json | 91 +++++++++++++++++++++- 1 file changed, 89 insertions(+), 2 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/fr_fr.json b/src/main/resources/assets/skyblocker/lang/fr_fr.json index e84e2214..26a52d4f 100644 --- a/src/main/resources/assets/skyblocker/lang/fr_fr.json +++ b/src/main/resources/assets/skyblocker/lang/fr_fr.json @@ -22,7 +22,7 @@ "text.autoconfig.skyblocker.option.general.itemTooltip.enableLowestBIN": "Afficher le prix minimal d'achat immédiat (BIN)", "text.autoconfig.skyblocker.option.general.itemTooltip.enableBazaarPrice": "Afficher le prix d'achat et de vente au Bazar", "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Afficher le musée et la date d'ajout", - "text.autoconfig.skyblocker.option.general.hitbox": "Hitboxes", + "text.autoconfig.skyblocker.option.general.hitbox": "Boites de collisions", "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "Hitbox 1.8 de la terre labourée", "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "Hitbox 1.8 du levier", "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cLes informations sur le prix des objets vont s'actualiser dans 60 secondes maximum. Sinon consultez le fichier latest.log", @@ -118,5 +118,92 @@ "text.autoconfig.skyblocker.option.general.itemTooltip.avg.THREE_DAY": "Prix pour 3 jours", "text.autoconfig.skyblocker.option.general.itemTooltip.avg.BOTH": "Les deux", "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "PORTE-MONNAIE", - "text.autoconfig.skyblocker.option.richPresence.info.BITS": "BITS" + "text.autoconfig.skyblocker.option.richPresence.info.BITS": "BITS", + "text.autoconfig.skyblocker.option.quickNav.button4.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button4.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button7": "Bouton 7", + "text.autoconfig.skyblocker.option.quickNav.button2.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button2.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button2.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button2.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button2.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button9.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button9.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button9.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button9.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button9.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button9.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button9.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button10": "Bouton 10", + "text.autoconfig.skyblocker.option.quickNav.button10.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button10.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button10.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button10.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button10.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button10.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button3.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button3.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button3.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button3.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button2.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button2.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button3": "Bouton 3", + "text.autoconfig.skyblocker.option.quickNav.button3.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button3.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button3.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button4": "Bouton 4", + "text.autoconfig.skyblocker.option.quickNav.button4.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button4.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button4.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button4.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button4.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button5": "Bouton 5", + "text.autoconfig.skyblocker.option.quickNav.button5.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button5.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button5.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button5.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button5.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button5.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button5.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button6": "Bouton 6", + "text.autoconfig.skyblocker.option.quickNav.button6.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button6.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button6.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button6.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button6.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button6.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button6.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button7.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button7.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button7.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button7.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button7.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button7.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button7.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button8": "Bouton 8", + "text.autoconfig.skyblocker.option.quickNav.button8.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button8.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button8.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button8.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button8.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button8.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button8.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button9": "Bouton 9", + "text.autoconfig.skyblocker.option.quickNav.button10.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button11": "Bouton 11", + "text.autoconfig.skyblocker.option.quickNav.button11.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button11.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button11.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button11.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button11.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button11.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button11.clickEvent": "Evènement de clic", + "text.autoconfig.skyblocker.option.quickNav.button12": "Bouton 12", + "text.autoconfig.skyblocker.option.quickNav.button12.render": "Render", + "text.autoconfig.skyblocker.option.quickNav.button12.item": "Item", + "text.autoconfig.skyblocker.option.quickNav.button12.item.itemName": "Nom de l'item", + "text.autoconfig.skyblocker.option.quickNav.button12.item.count": "Nombre d'items", + "text.autoconfig.skyblocker.option.quickNav.button12.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button12.uiTitle": "Titre du menu", + "text.autoconfig.skyblocker.option.quickNav.button12.clickEvent": "Evènement de clic" } -- cgit From 9cfd46ddb927a2bdd2cef7be9007f32742d9c1a0 Mon Sep 17 00:00:00 2001 From: Aaron Date: Sun, 11 Jun 2023 16:46:11 +0000 Subject: Translated using Weblate (English (Canada)) [skip ci] Currently translated at 4.2% (9 of 213 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/en_CA/ --- src/main/resources/assets/skyblocker/lang/en_ca.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/en_ca.json b/src/main/resources/assets/skyblocker/lang/en_ca.json index 73255e03..fb708354 100644 --- a/src/main/resources/assets/skyblocker/lang/en_ca.json +++ b/src/main/resources/assets/skyblocker/lang/en_ca.json @@ -1,11 +1,11 @@ { - "text.autoconfig.skyblocker.option.general.bars": "Health, Mana, Defence & XP Bars", - - "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "Grey out chests that have already been opened.", - "text.autoconfig.skyblocker.option.locations.dungeons.lividColor": "Livid Colour", - "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColor": "Enable Livid Colour", - "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColor.@Tooltip": "Send the livid colour in the chat during the Livid boss fight.", - "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.lividColorText": "Livid Colour Text", - "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.lividColorText.@Tooltip": "Text which will be sent in the chat during the Livid boss fight. The string \"[color]\" will be replaced with the livid colour.", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "Solve Select Coloured" + "text.autoconfig.skyblocker.option.general.bars": "Health, Mana, Defence & XP Bars", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "Grey out chests that have already been opened.", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor": "Livid Colour", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColor": "Enable Livid Colour", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColor.@Tooltip": "Send the livid colour in the chat during the Livid boss fight.", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.lividColorText": "Livid Colour Text", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.lividColorText.@Tooltip": "Text which will be sent in the chat during the Livid boss fight. The string \"[color]\" will be replaced with the livid colour.", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "Solve Select Coloured", + "text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition": "Defence Bar Position" } -- cgit From b110d898c7240f8aad31ea16edc48afeee0e2c18 Mon Sep 17 00:00:00 2001 From: PumpkinXD Date: Tue, 13 Jun 2023 18:39:10 +0000 Subject: Translated using Weblate (Chinese (Simplified)) [skip ci] Currently translated at 100.0% (213 of 213 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/zh_Hans/ --- src/main/resources/assets/skyblocker/lang/zh_cn.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/zh_cn.json b/src/main/resources/assets/skyblocker/lang/zh_cn.json index 2708c250..8a93e900 100644 --- a/src/main/resources/assets/skyblocker/lang/zh_cn.json +++ b/src/main/resources/assets/skyblocker/lang/zh_cn.json @@ -81,8 +81,8 @@ "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.option.locations.dwarvenMines.dwarvenHud.x": "X", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "HUD所在横向位置", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "HUD所在纵向位置", "text.autoconfig.skyblocker.category.messages": "消息", "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "禁用", "text.autoconfig.skyblocker.option.messages.chatFilterResult.FILTER": "启用", @@ -195,5 +195,15 @@ "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.lividColorText.@Tooltip": "Livid Boss战时发送到聊天栏的信息, 字段 “[color]” 将被替换为真 Livid 的颜色", "key.skyblocker.playerTgl": "将tab键所显示的列表改为玩家列表", "key.skyblocker.defaultTgl": "将tab键所显示的列表改为默认空岛生存列表", - "key.skyblocker.genericTgl": "将tab键所显示的列表改为通用信息列表" + "key.skyblocker.genericTgl": "将tab键所显示的列表改为通用信息列表", + "text.autoconfig.skyblocker.option.general.tabHud.tabHudEnabled": "启用更好的Tab HUD", + "text.autoconfig.skyblocker.option.locations.dungeons.mapX": "地图所在横向位置", + "text.autoconfig.skyblocker.option.locations.dungeons.mapY": "地图所在纵向位置", + "text.autoconfig.skyblocker.option.general.tabHud": "更好的Tab HUD", + "text.autoconfig.skyblocker.option.general.tabHud.tabHudScale": "更好的Tab HUD缩放大小", + "text.autoconfig.skyblocker.option.general.tabHud.tabHudScale.@Tooltip": "相对于原版 GUI 的百分比大小", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style": "HUD风格", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[0]": "简约:仅显示委托及其进度百分比", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[1]": "精致:显示委托名,进度百分比与进度条以及图标", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[2]": "极简:仅在简单的方框内显示委托及其进度" } -- cgit From 2bd7cc384bdd0ee10158085ded1512361b1f7956 Mon Sep 17 00:00:00 2001 From: CrimsonIsle Date: Sun, 18 Jun 2023 18:59:08 +0000 Subject: Translated using Weblate (Russian) [skip ci] Currently translated at 100.0% (213 of 213 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/ru/ --- .../resources/assets/skyblocker/lang/ru_ru.json | 166 ++++++++++++++++++--- 1 file changed, 143 insertions(+), 23 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/ru_ru.json b/src/main/resources/assets/skyblocker/lang/ru_ru.json index e399eb62..5ccd5b21 100644 --- a/src/main/resources/assets/skyblocker/lang/ru_ru.json +++ b/src/main/resources/assets/skyblocker/lang/ru_ru.json @@ -6,15 +6,15 @@ "text.autoconfig.skyblocker.option.general.bars": "Полоски здоровья, маны, защиты и опыта", "text.autoconfig.skyblocker.option.general.bars.enableBars": "Включить полоски", "text.autoconfig.skyblocker.category.locations": "Локации", - "text.autoconfig.skyblocker.option.locations.dungeons": "Катакомбы", - "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "Включить карту", - "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Решать головоломку \"Три чудака\"", - "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "Решать головоломку с ифритами", - "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Решать головоломку с вопросами", - "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Гномьи шахты", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "Показывать топливо дрели", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Решать загадку Fetchur-а", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Решать загадку Puzzler-а", + "text.autoconfig.skyblocker.option.locations.dungeons": "Dungeons (Подземелья)", + "text.autoconfig.skyblocker.option.locations.dungeons.enableMap": "Включить Карту", + "text.autoconfig.skyblocker.option.locations.dungeons.solveThreeWeirdos": "Решать Головоломку Three Weirdos", + "text.autoconfig.skyblocker.option.locations.dungeons.blazesolver": "Решать Головоломку Blaze", + "text.autoconfig.skyblocker.option.locations.dungeons.solveTrivia": "Решать Головоломку Trivia", + "text.autoconfig.skyblocker.option.locations.dwarvenMines": "Гномьи Шахты", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.enableDrillFuel": "Показывать Топливо Дрели", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solveFetchur": "Показывать Решение Загадки Fetchur-а", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Показывать Решение Загадки Puzzler-а", "text.autoconfig.skyblocker.category.messages": "Сообщения", "text.autoconfig.skyblocker.option.messages.hideAbility": "Скрывать сообщения о перезарядке способностей", "text.autoconfig.skyblocker.option.messages.hideHeal": "Скрывать сообщения об исцелении", @@ -22,15 +22,15 @@ "text.autoconfig.skyblocker.option.messages.hideImplosion": "Скрывать сообщения Implosion", "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Скрывать сообщения Molten Wave", "text.autoconfig.skyblocker.option.messages.hideAds": "Скрывать рекламу в чате", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "Авто-решение терминалов", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "Решать выбор по цвету", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "Решать клик по возрастанию", - "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "Решать начинается с", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals": "Помощь В Решении Терминалов", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveColor": "Показывать Решение Select Colored", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveOrder": "Показывать Решение Click In Order", + "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "Показывать Решение Starts With", "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cИнформация о цене предмета обновится менее чем через 60 секунд. Если нет, проверьте latest.log", - "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Скрывать сообщения телепортаторов", + "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Скрывать сообщения Teleport Pad", "skyblocker.update.update_link": " §2§nНажми,§r", "text.autoconfig.skyblocker.option.general.quicknav": "Кнопки быстрого доступа", - "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Включено", + "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Включить кнопки быстрого доступа", "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Показать средние цены на BIN", "text.autoconfig.skyblocker.option.general.itemTooltip.avg": "Период времени (для средней цены)", "text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip": "Можно выбрать, за сколько дней будет браться средняя цена", @@ -39,7 +39,7 @@ "text.autoconfig.skyblocker.option.general.itemTooltip.enableMuseumDate": "Показать дату получения", "text.autoconfig.skyblocker.category.richPresence": "Активность в статусе Discord", "text.autoconfig.skyblocker.option.richPresence.info": "Отображаемая информация", - "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Не имеет значения при цикличном отбражении", + "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Не имеет значения при цикличном отображении", "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Отображать все опции циклично", "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Включено", "text.autoconfig.skyblocker.option.richPresence.customMessage": "Своё сообщение", @@ -56,10 +56,10 @@ "text.autoconfig.skyblocker.option.general.hitbox.oldFarmlandHitbox": "Использовать хитбокс пашни из 1.8", "text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition": "Расположение полоски здоровья", "text.autoconfig.skyblocker.option.general.backpackPreviewWithoutShift": "Просматривать содержимое рюкзаков без удержания кнопки Shift", - "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Отключить", + "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Выключена", "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Расположение полоски маны", "text.autoconfig.skyblocker.option.quickNav.button1.item": "Предмет", - "skyblocker.fishing.reelNow": "Лови сейчас же!", + "skyblocker.fishing.reelNow": "Тяни сейчас же!", "text.autoconfig.skyblocker.option.messages.hideAutopet": "Скрывать сообщения Autopet", "text.autoconfig.skyblocker.option.messages.hideMana": "Скрывать сообщения о расходе маны из Action Bar", "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "Справа", @@ -73,10 +73,10 @@ "text.autoconfig.skyblocker.option.general.hitbox.oldLeverHitbox": "Использовать хитбокс рычагов из 1.8", "text.autoconfig.skyblocker.option.general.itemTooltip.avg.ONE_DAY": "Цена за 1 день", "skyblocker.itemTooltip.noData": "§cНет данных", - "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "Кошелек", - "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "Локация", - "text.autoconfig.skyblocker.category.quickNav": "Быстрый доступ", - "text.autoconfig.skyblocker.option.quickNav.enableQuickNav": "Включить быстрый доступ", + "text.autoconfig.skyblocker.option.richPresence.info.PURSE": "PURSE", + "text.autoconfig.skyblocker.option.richPresence.info.LOCATION": "LOCATION", + "text.autoconfig.skyblocker.category.quickNav": "Быстрый Доступ", + "text.autoconfig.skyblocker.option.quickNav.enableQuickNav": "Включить Быстрый Доступ", "text.autoconfig.skyblocker.option.quickNav.button1": "Кнопка 1", "text.autoconfig.skyblocker.option.quickNav.button2": "Кнопка 2", "text.autoconfig.skyblocker.option.quickNav.button3": "Кнопка 3", @@ -86,5 +86,125 @@ "key.skyblocker.genericTgl": "Показывать общую информацию в меню TAB", "text.autoconfig.skyblocker.option.general.tabHud.tabHudEnabled": "Включить красивое TAB меню", "text.autoconfig.skyblocker.option.general.tabHud.tabHudScale": "Размер TAB меню", - "text.autoconfig.skyblocker.option.general.tabHud.tabHudScale.@Tooltip": "Значение в %, по отношению к размеру интерфейса игры" + "text.autoconfig.skyblocker.option.general.tabHud.tabHudScale.@Tooltip": "Значение в %, по отношению к размеру интерфейса игры", + "text.autoconfig.skyblocker.option.quickNav.button2.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.quickNav.button3.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button5.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.quickNav.button6.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button7.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button8.item": "Предмет", + "text.autoconfig.skyblocker.option.quickNav.button11.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button11.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.quickNav.button12.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper.@Tooltip": "Уже открытые сундуки будут закрашены серым.", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.lividColorText.@Tooltip": "Текст, который будет отправлен в чат во время боя с Livid. Вместо \"[color]\" отправится цвет босса.", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[1]": "Красивый: Показывает название, процент и шкалу выполнения, а также иконку.", + "text.autoconfig.skyblocker.option.locations.dungeons.mapScaling": "Размер Карты", + "text.autoconfig.skyblocker.option.quickNav.button4.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button5.item": "Предмет", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColor": "Включить Цвет Босса Livid", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor": "Цвет Босса Livid", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColor.@Tooltip": "Отправляет в чат информацию о том, какого цвета босс Livid.", + "text.autoconfig.skyblocker.option.locations.dungeons.lividColor.lividColorText": "Текст О Цвете Livid", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", + "text.autoconfig.skyblocker.option.locations.dungeons.mapX": "Карта по X", + "text.autoconfig.skyblocker.option.locations.dungeons.mapY": "Карта по Y", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style": "Стиль HUD", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[0]": "Упрощенный: Показывает название и процент выполнения.", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[2]": "Классический: Показывает название и процент выполнения в простом тёмном квадрате.", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enableBackground": "Включить Фон", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Включить", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dwarven HUD (Интерфейс Гномьих Шахт)", + "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Выглядит лучше если включены полоски (здоровья, маны и т.д.)", + "text.autoconfig.skyblocker.option.quickNav.button1.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.locations.barn": "Barn (Ферма)", + "text.autoconfig.skyblocker.option.quickNav.button1.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button1.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button1.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button1.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button1.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.ACTION_BAR": "Переместить в action bar", + "text.autoconfig.skyblocker.option.locations.barn.solveHungryHiker": "Показывать Решение Hungry Hiker", + "text.autoconfig.skyblocker.option.locations.barn.solveTreasureHunter": "Показывать Решение Treasure Hunter", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.FILTER": "Скрыть", + "text.autoconfig.skyblocker.option.messages.chatFilterResult.PASS": "Не скрывать", + "skyblocker.updaterepository.failed": "§b[§6Skyblocker§b] §cОшибка в обновлении местного репозитория. Перезапустите игру, удалив файлы вручную.", + "text.autoconfig.skyblocker.option.richPresence.info.BITS": "BITS", + "text.autoconfig.skyblocker.option.quickNav.button2.item": "Предмет", + "text.autoconfig.skyblocker.option.quickNav.button2.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button2.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button2.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button2.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.quickNav.button2.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button3.item": "Предмет", + "text.autoconfig.skyblocker.option.quickNav.button3.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button3.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button3.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button3.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.quickNav.button5.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button5.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button5.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.quickNav.button6": "Кнопка 6", + "text.autoconfig.skyblocker.option.quickNav.button6.item": "Предмет", + "text.autoconfig.skyblocker.option.quickNav.button6.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button6.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button6.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.quickNav.button6.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.quickNav.button7": "Кнопка 7", + "text.autoconfig.skyblocker.option.quickNav.button7.item": "Предмет", + "text.autoconfig.skyblocker.option.quickNav.button7.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button7.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button7.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.quickNav.button7.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.quickNav.button8": "Кнопка 8", + "text.autoconfig.skyblocker.option.quickNav.button8.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button8.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button6.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button7.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button8.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button3.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.quickNav.button4": "Кнопка 4", + "text.autoconfig.skyblocker.option.quickNav.button4.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button4.item": "Предмет", + "text.autoconfig.skyblocker.option.quickNav.button4.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button4.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button4.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.quickNav.button4.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.quickNav.button5": "Кнопка 5", + "text.autoconfig.skyblocker.option.quickNav.button5.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button5.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button8.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button8.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.quickNav.button8.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.quickNav.button9": "Кнопка 9", + "text.autoconfig.skyblocker.option.quickNav.button9.item": "Предмет", + "text.autoconfig.skyblocker.option.quickNav.button9.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button9.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button9.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button9.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.quickNav.button9.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.quickNav.button10": "Кнопка 10", + "text.autoconfig.skyblocker.option.quickNav.button9.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button10.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button10.item": "Предмет", + "text.autoconfig.skyblocker.option.quickNav.button10.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button10.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button10.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button10.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.quickNav.button10.clickEvent": "Команда по щелчку", + "text.autoconfig.skyblocker.option.quickNav.button11": "Кнопка 11", + "text.autoconfig.skyblocker.option.quickNav.button11.item": "Предмет", + "text.autoconfig.skyblocker.option.quickNav.button11.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button11.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button11.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button11.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.quickNav.button12": "Кнопка 12", + "text.autoconfig.skyblocker.option.quickNav.button12.render": "Отображать", + "text.autoconfig.skyblocker.option.quickNav.button12.item": "Предмет", + "text.autoconfig.skyblocker.option.quickNav.button12.item.itemName": "ID Предмета", + "text.autoconfig.skyblocker.option.quickNav.button12.item.count": "Количество", + "text.autoconfig.skyblocker.option.quickNav.button12.item.nbt": "NBT", + "text.autoconfig.skyblocker.option.quickNav.button12.uiTitle": "Название Кнопки", + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "Помощь в меню Croesus" } -- cgit From 9322e127691a33476466ae0350e4cb3aacda9489 Mon Sep 17 00:00:00 2001 From: CrimsonIsle Date: Mon, 19 Jun 2023 05:56:47 +0000 Subject: Translated using Weblate (Russian) [skip ci] Currently translated at 100.0% (213 of 213 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/ru/ --- src/main/resources/assets/skyblocker/lang/ru_ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/ru_ru.json b/src/main/resources/assets/skyblocker/lang/ru_ru.json index 5ccd5b21..30ec99c3 100644 --- a/src/main/resources/assets/skyblocker/lang/ru_ru.json +++ b/src/main/resources/assets/skyblocker/lang/ru_ru.json @@ -59,7 +59,7 @@ "text.autoconfig.skyblocker.option.general.bars.barpositions.NONE": "Выключена", "text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition": "Расположение полоски маны", "text.autoconfig.skyblocker.option.quickNav.button1.item": "Предмет", - "skyblocker.fishing.reelNow": "Тяни сейчас же!", + "skyblocker.fishing.reelNow": "Тяни!", "text.autoconfig.skyblocker.option.messages.hideAutopet": "Скрывать сообщения Autopet", "text.autoconfig.skyblocker.option.messages.hideMana": "Скрывать сообщения о расходе маны из Action Bar", "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "Справа", -- cgit From 95936192e19f5fb4e0e13377f018445176de4a80 Mon Sep 17 00:00:00 2001 From: CrimsonIsle Date: Sun, 25 Jun 2023 12:53:08 +0000 Subject: Translated using Weblate (Russian) [skip ci] Currently translated at 100.0% (221 of 221 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/ru/ --- src/main/resources/assets/skyblocker/lang/ru_ru.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/ru_ru.json b/src/main/resources/assets/skyblocker/lang/ru_ru.json index 30ec99c3..94423e6d 100644 --- a/src/main/resources/assets/skyblocker/lang/ru_ru.json +++ b/src/main/resources/assets/skyblocker/lang/ru_ru.json @@ -116,7 +116,7 @@ "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.enabled": "Включить", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud": "Dwarven HUD (Интерфейс Гномьих Шахт)", - "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Выглядит лучше если включены полоски (здоровья, маны и т.д.)", + "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Выглядит лучше, когда включены полоски Skyblocker (здоровья, маны и т.д.)", "text.autoconfig.skyblocker.option.quickNav.button1.clickEvent": "Команда по щелчку", "text.autoconfig.skyblocker.option.locations.barn": "Barn (Ферма)", "text.autoconfig.skyblocker.option.quickNav.button1.item.itemName": "ID Предмета", @@ -206,5 +206,13 @@ "text.autoconfig.skyblocker.option.quickNav.button12.item.count": "Количество", "text.autoconfig.skyblocker.option.quickNav.button12.item.nbt": "NBT", "text.autoconfig.skyblocker.option.quickNav.button12.uiTitle": "Название Кнопки", - "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "Помощь в меню Croesus" + "text.autoconfig.skyblocker.option.locations.dungeons.croesusHelper": "Помощь в меню Croesus", + "text.autoconfig.skyblocker.option.general.experiments": "Помощь в Экспериментах", + "text.autoconfig.skyblocker.option.general.experiments.enableUltrasequencerSolver": "Решать Ultrasequencer", + "skyblocker.fairySouls.markAllFound": "Все души фей (fairy souls), которые есть на этом острове, теперь отмечены как найденные", + "text.autoconfig.skyblocker.option.general.experiments.enableChronomatronSolver": "Решать Chronomatron", + "text.autoconfig.skyblocker.option.general.experiments.enableSuperpairsSolver": "Подсвечивать Пары Superpairs", + "skyblocker.fairySouls.markAllMissing": "Все души фей (fairy souls), которые есть на этом острове, теперь отмечены как еще не найденные", + "text.autoconfig.skyblocker.option.general.fairySouls": "Помощь В Нахождении Fairy Souls (Душ Фей)", + "text.autoconfig.skyblocker.option.general.fairySouls.enableFairySoulsHelper": "Включить Помощь В Поиске Fairy Souls" } -- cgit From cdc9957ebbe7bbe5e254372cec703aa719db6da5 Mon Sep 17 00:00:00 2001 From: CrimsonIsle Date: Sun, 2 Jul 2023 09:44:47 +0000 Subject: Translated using Weblate (Russian) [skip ci] Currently translated at 100.0% (246 of 246 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/ru/ --- .../resources/assets/skyblocker/lang/ru_ru.json | 27 +++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/ru_ru.json b/src/main/resources/assets/skyblocker/lang/ru_ru.json index 94423e6d..146b15f4 100644 --- a/src/main/resources/assets/skyblocker/lang/ru_ru.json +++ b/src/main/resources/assets/skyblocker/lang/ru_ru.json @@ -214,5 +214,30 @@ "text.autoconfig.skyblocker.option.general.experiments.enableSuperpairsSolver": "Подсвечивать Пары Superpairs", "skyblocker.fairySouls.markAllMissing": "Все души фей (fairy souls), которые есть на этом острове, теперь отмечены как еще не найденные", "text.autoconfig.skyblocker.option.general.fairySouls": "Помощь В Нахождении Fairy Souls (Душ Фей)", - "text.autoconfig.skyblocker.option.general.fairySouls.enableFairySoulsHelper": "Включить Помощь В Поиске Fairy Souls" + "text.autoconfig.skyblocker.option.general.fairySouls.enableFairySoulsHelper": "Включить Помощь В Поиске Fairy Souls", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMotesPrice": "Показать Цену Motes", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMotesPrice.@Tooltip": "Отображает цену продажи предмета за Motes, пока вы в The Rift.", + "text.autoconfig.skyblocker.option.locations.rift.mcGrubberStacks.@Tooltip": "Используется для рассчета цены предмета в Motes.", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.compactEffigyWaypoints": "Показывать Вейпоинты Effigy Компактно", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.effigyUpdateFrequency.@Tooltip": "Чем ниже значение, тем чаще происходит обновление, это может вызвать лаги.", + "text.autoconfig.skyblocker.option.locations.rift": "The Rift", + "text.autoconfig.skyblocker.option.locations.rift.mirrorverseWaypoints": "Включить Вейпоинты в Mirrorverse", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.enableHealingMelonIndicator": "Включить Индикатор Healing Melon", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.healingMelonHealthThreshold": "Предел Индикатора Healing Melon (в сердечках)", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.enableSteakStakeIndicator": "Включить Индикатор Steak Stake", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.steakStakeUpdateFrequency": "Частота Обновления Индикатора Steak Stake (в тиках)", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.steakStakeUpdateFrequency.@Tooltip": "Чем ниже значение, тем чаще происходит обновление, это может вызвать лаги.", + "skyblocker.rift.iceNow": "Лед!", + "skyblocker.rift.stakeNow": "Стейк!", + "skyblocker.rift.healNow": "Арбуз!", + "text.autoconfig.skyblocker.option.general.acceptReparty": "Автоматически принимать Reparty (Приглашение в новую группу от лидера предыдущей)", + "text.autoconfig.skyblocker.option.locations.rift.mcGrubberStacks": "Стаков McGrubber", + "text.autoconfig.skyblocker.category.slayer": "Slayers", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer": "Vampire Slayer", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.effigyUpdateFrequency": "Частота Обновления Вейпоинтов Effigy (в тиках)", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.enableEffigyWaypoints": "Включить Вейпоинты Effigy", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.enableHolyIceIndicator": "Включить Индикатор Holy Ice", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.holyIceIndicatorTickDelay": "Задержка Индикатора Holy Ice (в тиках)", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.holyIceUpdateFrequency": "Частота Обновления Индикатора Holy Ice (в тиках)", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.holyIceUpdateFrequency.@Tooltip": "Чем ниже значение, тем чаще происходит обновление, это может вызвать лаги." } -- cgit From bf58dd7d92bad0a81d55da2052636e30b54da825 Mon Sep 17 00:00:00 2001 From: PumpkinXD Date: Wed, 5 Jul 2023 09:54:17 +0000 Subject: Translated using Weblate (Chinese (Simplified)) [skip ci] Currently translated at 90.2% (222 of 246 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/zh_Hans/ --- src/main/resources/assets/skyblocker/lang/zh_cn.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/zh_cn.json b/src/main/resources/assets/skyblocker/lang/zh_cn.json index 8a93e900..a335322a 100644 --- a/src/main/resources/assets/skyblocker/lang/zh_cn.json +++ b/src/main/resources/assets/skyblocker/lang/zh_cn.json @@ -205,5 +205,14 @@ "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style": "HUD风格", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[0]": "简约:仅显示委托及其进度百分比", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[1]": "精致:显示委托名,进度百分比与进度条以及图标", - "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[2]": "极简:仅在简单的方框内显示委托及其进度" + "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[2]": "极简:仅在简单的方框内显示委托及其进度", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMotesPrice": "启用 Motes 价格显示", + "text.autoconfig.skyblocker.option.general.itemTooltip.enableMotesPrice.@Tooltip": "显示 Rift 中的物品售价,以Mote为单位", + "text.autoconfig.skyblocker.option.general.experiments": "实验台助手", + "text.autoconfig.skyblocker.option.general.experiments.enableSuperpairsSolver": "启用超级配对实验助手", + "text.autoconfig.skyblocker.option.general.experiments.enableChronomatronSolver": "启用序列记忆实验助手", + "text.autoconfig.skyblocker.option.general.experiments.enableUltrasequencerSolver": "启用超级序列实验助手", + "text.autoconfig.skyblocker.option.general.acceptReparty": "自动接受重新组队", + "text.autoconfig.skyblocker.option.general.fairySouls": "仙女之魂助手", + "text.autoconfig.skyblocker.option.general.fairySouls.enableFairySoulsHelper": "启用仙女之魂助手" } -- cgit From 992919ba70970ed81dda8017943095d3a2e660cd Mon Sep 17 00:00:00 2001 From: PumpkinXD Date: Wed, 5 Jul 2023 16:45:22 +0000 Subject: Translated using Weblate (Chinese (Simplified)) [skip ci] Currently translated at 91.0% (224 of 246 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/zh_Hans/ --- src/main/resources/assets/skyblocker/lang/zh_cn.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/zh_cn.json b/src/main/resources/assets/skyblocker/lang/zh_cn.json index a335322a..215a0bc2 100644 --- a/src/main/resources/assets/skyblocker/lang/zh_cn.json +++ b/src/main/resources/assets/skyblocker/lang/zh_cn.json @@ -214,5 +214,7 @@ "text.autoconfig.skyblocker.option.general.experiments.enableUltrasequencerSolver": "启用超级序列实验助手", "text.autoconfig.skyblocker.option.general.acceptReparty": "自动接受重新组队", "text.autoconfig.skyblocker.option.general.fairySouls": "仙女之魂助手", - "text.autoconfig.skyblocker.option.general.fairySouls.enableFairySoulsHelper": "启用仙女之魂助手" + "text.autoconfig.skyblocker.option.general.fairySouls.enableFairySoulsHelper": "启用仙女之魂助手", + "skyblocker.fairySouls.markAllFound": "将当前岛屿上的全部仙女之魂标记为已发现", + "text.autoconfig.skyblocker.option.slayer.vampireSlayer.steakStakeUpdateFrequency.@Tooltip": "值越小,更新越频繁(可能会导致卡顿)" } -- cgit From 69f24062882b03a22732ba5a71ba316743a04a30 Mon Sep 17 00:00:00 2001 From: CrimsonIsle Date: Thu, 6 Jul 2023 05:40:18 +0000 Subject: Translated using Weblate (Russian) [skip ci] Currently translated at 100.0% (246 of 246 strings) Translation: Skyblocker/Skyblocker Translate-URL: https://translate.hysky.de/projects/Skyblocker/skyblocker/ru/ --- src/main/resources/assets/skyblocker/lang/ru_ru.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/ru_ru.json b/src/main/resources/assets/skyblocker/lang/ru_ru.json index 146b15f4..7700d7bb 100644 --- a/src/main/resources/assets/skyblocker/lang/ru_ru.json +++ b/src/main/resources/assets/skyblocker/lang/ru_ru.json @@ -41,10 +41,10 @@ "text.autoconfig.skyblocker.option.richPresence.info": "Отображаемая информация", "text.autoconfig.skyblocker.option.richPresence.info.@Tooltip": "Не имеет значения при цикличном отображении", "text.autoconfig.skyblocker.option.richPresence.cycleMode": "Отображать все опции циклично", - "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Включено", + "text.autoconfig.skyblocker.option.richPresence.enableRichPresence": "Включить", "text.autoconfig.skyblocker.option.richPresence.customMessage": "Своё сообщение", "text.autoconfig.skyblocker.option.general.itemList": "Список предметов", - "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "Включено", + "text.autoconfig.skyblocker.option.general.itemList.enableItemList": "Включить Список Предметов", "text.autoconfig.skyblocker.option.messages.hideCombo": "Скрывать сообщения о комбо", "key.wikiLookup": "Быстрый переход на вики", "text.autoconfig.skyblocker.option.general.itemTooltip": "Описание предмета", -- cgit From 0fcca9331266912e2c4e68524c00efb09596c7a5 Mon Sep 17 00:00:00 2001 From: Weblate Date: Sat, 29 Jul 2023 00:55:07 +0200 Subject: Update translation files [skip ci] 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 | 3 --- src/main/resources/assets/skyblocker/lang/zh_tw.json | 2 -- 2 files changed, 5 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/es_es.json b/src/main/resources/assets/skyblocker/lang/es_es.json index 7c5ea062..ada79f10 100644 --- a/src/main/resources/assets/skyblocker/lang/es_es.json +++ b/src/main/resources/assets/skyblocker/lang/es_es.json @@ -95,11 +95,8 @@ "text.autoconfig.skyblocker.option.messages.hideAOTE": "Ocultar Mensajes de la AOTE", "text.autoconfig.skyblocker.option.messages.hideMana": "Ocultar los Mensajes del Consumo de Maná de la Barra de Acción", "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Da una mejor experiencia con FancyBar", - "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2¡Hay Una nueva versión disponible!", "skyblocker.update.update_link": " §2§nHas Click Aquí§r", - "skyblocker.update.update_message_end": " §aPara conocer mas sobre las nuevas características.", "skyblocker.update.hover_text": "Abrir Modrinth", - "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "Notificaciones sobre actualizaciones", "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2¡Se añadió tu API key automáticamente!", "skyblocker.updaterepository.failed": "§b[§6Skyblocker§b] §cLa actualización del repositorio local fallo. Elimina los archivos manualmente y reinicia el juego.", "text.autoconfig.skyblocker.option.quickNav.button11": "Botón 11", diff --git a/src/main/resources/assets/skyblocker/lang/zh_tw.json b/src/main/resources/assets/skyblocker/lang/zh_tw.json index 3613757e..e9dbcc73 100644 --- a/src/main/resources/assets/skyblocker/lang/zh_tw.json +++ b/src/main/resources/assets/skyblocker/lang/zh_tw.json @@ -13,9 +13,7 @@ "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "隱藏傳送點訊息", "text.autoconfig.skyblocker.option.messages.hideCombo": "隱藏連殺訊息", "text.autoconfig.skyblocker.option.messages.hideAutopet": "隱藏自動寵物訊息", - "skyblocker.update.hover_text": "打開Modrinth", "text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "隱藏選單玻璃物品資訊\"", - "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2已自动設定你的API金鑰!", "text.autoconfig.skyblocker.option.general.bars.barpositions.RIGHT": "快捷欄右側", "text.autoconfig.skyblocker.option.messages.hideAbility": "隱藏技能冷卻", "text.autoconfig.skyblocker.option.messages.hideHeal": "隱藏治療訊息", -- cgit From 9d150b2c7d645b907f85b39c2cdb40abceb264bb Mon Sep 17 00:00:00 2001 From: Weblate Date: Sat, 29 Jul 2023 02:46:38 +0200 Subject: Changes to be committed: modified: src/main/resources/assets/skyblocker/lang/id_id.json modified: src/main/resources/assets/skyblocker/lang/ko_kr.json --- src/main/resources/assets/skyblocker/lang/id_id.json | 4 ++-- src/main/resources/assets/skyblocker/lang/ko_kr.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/id_id.json b/src/main/resources/assets/skyblocker/lang/id_id.json index 67dc88f1..b015439c 100644 --- a/src/main/resources/assets/skyblocker/lang/id_id.json +++ b/src/main/resources/assets/skyblocker/lang/id_id.json @@ -28,5 +28,5 @@ "key.wikiLookup": "Pencarian Wiki", "text.autoconfig.skyblocker.option.general.quicknav": "Navigasi Cepat", "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Aktifkan Navigasi Cepat", - "text.autoconfig.skyblocker.option.general.itemTooltip": "Keterangan Item", -} \ No newline at end of file + "text.autoconfig.skyblocker.option.general.itemTooltip": "Keterangan Item" +} diff --git a/src/main/resources/assets/skyblocker/lang/ko_kr.json b/src/main/resources/assets/skyblocker/lang/ko_kr.json index ac6703e2..95f769d4 100644 --- a/src/main/resources/assets/skyblocker/lang/ko_kr.json +++ b/src/main/resources/assets/skyblocker/lang/ko_kr.json @@ -179,5 +179,5 @@ "text.autoconfig.skyblocker.option.messages.hideCombo": "콤보 메시지 가리기", "text.autoconfig.skyblocker.option.messages.hideAutopet": "Autopet 메시지 가리기", "text.autoconfig.skyblocker.option.messages.hideMana": "액션바에서 마나 사용 메시지 가리기", - "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBar 로 더 나은 기능을 사용합니다", + "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBar 로 더 나은 기능을 사용합니다" } -- cgit From c38a0c30a0e02d347cdc34d5d1e2ab7d4dc89ee2 Mon Sep 17 00:00:00 2001 From: Weblate Date: Sat, 29 Jul 2023 02:56:09 +0200 Subject: Update translation files [skip ci] 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 | 2 -- src/main/resources/assets/skyblocker/lang/ru_ru.json | 1 - src/main/resources/assets/skyblocker/lang/tr_tr.json | 2 -- 3 files changed, 5 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/es_es.json b/src/main/resources/assets/skyblocker/lang/es_es.json index ada79f10..4d394ef2 100644 --- a/src/main/resources/assets/skyblocker/lang/es_es.json +++ b/src/main/resources/assets/skyblocker/lang/es_es.json @@ -95,9 +95,7 @@ "text.autoconfig.skyblocker.option.messages.hideAOTE": "Ocultar Mensajes de la AOTE", "text.autoconfig.skyblocker.option.messages.hideMana": "Ocultar los Mensajes del Consumo de Maná de la Barra de Acción", "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Da una mejor experiencia con FancyBar", - "skyblocker.update.update_link": " §2§nHas Click Aquí§r", "skyblocker.update.hover_text": "Abrir Modrinth", - "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2¡Se añadió tu API key automáticamente!", "skyblocker.updaterepository.failed": "§b[§6Skyblocker§b] §cLa actualización del repositorio local fallo. Elimina los archivos manualmente y reinicia el juego.", "text.autoconfig.skyblocker.option.quickNav.button11": "Botón 11", "text.autoconfig.skyblocker.option.quickNav.button9.item.itemName": "Nombre del objeto", diff --git a/src/main/resources/assets/skyblocker/lang/ru_ru.json b/src/main/resources/assets/skyblocker/lang/ru_ru.json index 7700d7bb..588d20a1 100644 --- a/src/main/resources/assets/skyblocker/lang/ru_ru.json +++ b/src/main/resources/assets/skyblocker/lang/ru_ru.json @@ -28,7 +28,6 @@ "text.autoconfig.skyblocker.option.locations.dungeons.terminals.solveStartsWith": "Показывать Решение Starts With", "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cИнформация о цене предмета обновится менее чем через 60 секунд. Если нет, проверьте latest.log", "text.autoconfig.skyblocker.option.messages.hideTeleportPad": "Скрывать сообщения Teleport Pad", - "skyblocker.update.update_link": " §2§nНажми,§r", "text.autoconfig.skyblocker.option.general.quicknav": "Кнопки быстрого доступа", "text.autoconfig.skyblocker.option.general.quicknav.enableQuicknav": "Включить кнопки быстрого доступа", "text.autoconfig.skyblocker.option.general.itemTooltip.enableAvgBIN": "Показать средние цены на BIN", diff --git a/src/main/resources/assets/skyblocker/lang/tr_tr.json b/src/main/resources/assets/skyblocker/lang/tr_tr.json index 1b07aff8..28644814 100644 --- a/src/main/resources/assets/skyblocker/lang/tr_tr.json +++ b/src/main/resources/assets/skyblocker/lang/tr_tr.json @@ -38,7 +38,6 @@ "text.autoconfig.skyblocker.option.messages.hideAutopet": "Autopet mesajlarını filtrele", "text.autoconfig.skyblocker.option.messages.hideMana": "Aksiyon barındaki mana tüketimlerini gizle", "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBar ile daha iyi bir deneyim sunar", - "text.autoconfig.skyblocker.option.general.enableUpdateNotification": "Güncelleme Bildirimleri", "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2API anahtarınız otomatik olarak kaydedildi!", "text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "Menülerdeki boş eşya açıklamalarını gizle", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", @@ -48,7 +47,6 @@ "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", - "skyblocker.update.update_message": "§b[§6Skyblocker§b] §2Yeni bir sürüm mevcut!", "text.autoconfig.skyblocker.option.locations.dwarvenMines.solvePuzzler": "Puzzler'ın bulmacasını çöz", "key.hotbarSlotLock": "Slot Kilidi (Araç Çubuğu)", "key.wikiLookup": "Wiki Araması", -- cgit From b77098e8eb42e55a9768995c6436870bc31a9fd9 Mon Sep 17 00:00:00 2001 From: Weblate Date: Sat, 29 Jul 2023 03:00:49 +0200 Subject: Update translation files [skip ci] 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/tr_tr.json | 1 - 2 files changed, 2 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/es_es.json b/src/main/resources/assets/skyblocker/lang/es_es.json index 4d394ef2..a36f098c 100644 --- a/src/main/resources/assets/skyblocker/lang/es_es.json +++ b/src/main/resources/assets/skyblocker/lang/es_es.json @@ -95,7 +95,6 @@ "text.autoconfig.skyblocker.option.messages.hideAOTE": "Ocultar Mensajes de la AOTE", "text.autoconfig.skyblocker.option.messages.hideMana": "Ocultar los Mensajes del Consumo de Maná de la Barra de Acción", "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "Da una mejor experiencia con FancyBar", - "skyblocker.update.hover_text": "Abrir Modrinth", "skyblocker.updaterepository.failed": "§b[§6Skyblocker§b] §cLa actualización del repositorio local fallo. Elimina los archivos manualmente y reinicia el juego.", "text.autoconfig.skyblocker.option.quickNav.button11": "Botón 11", "text.autoconfig.skyblocker.option.quickNav.button9.item.itemName": "Nombre del objeto", diff --git a/src/main/resources/assets/skyblocker/lang/tr_tr.json b/src/main/resources/assets/skyblocker/lang/tr_tr.json index 28644814..8dee9a26 100644 --- a/src/main/resources/assets/skyblocker/lang/tr_tr.json +++ b/src/main/resources/assets/skyblocker/lang/tr_tr.json @@ -38,7 +38,6 @@ "text.autoconfig.skyblocker.option.messages.hideAutopet": "Autopet mesajlarını filtrele", "text.autoconfig.skyblocker.option.messages.hideMana": "Aksiyon barındaki mana tüketimlerini gizle", "text.autoconfig.skyblocker.option.messages.hideMana.@Tooltip": "FancyBar ile daha iyi bir deneyim sunar", - "skyblocker.api.got_key": "§b[§6Skyblocker§b] §2API anahtarınız otomatik olarak kaydedildi!", "text.autoconfig.skyblocker.option.general.hideEmptyTooltips": "Menülerdeki boş eşya açıklamalarını gizle", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.y": "Y", "text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.x": "X", -- cgit From bca948cc7a9630ebe380590f0f036e1d5ef2ee99 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Tue, 25 Jul 2023 15:11:10 +0800 Subject: Refactor mixins --- .../skyblocker/gui/ContainerSolverManager.java | 2 +- .../skyblocker/mixin/AccessorWorldRenderer.java | 13 ------- .../skyblocker/mixin/ClientPlayerEntityMixin.java | 7 ++-- .../skyblocker/mixin/DrawContextMixin.java | 44 +++++++++++----------- .../skyblocker/mixin/FarmlandBlockMixin.java | 20 ++++++---- .../skyblocker/mixin/HandledScreenAccessor.java | 17 --------- .../skyblocker/mixin/HandledScreenMixin.java | 8 ++-- .../xmrvizzy/skyblocker/mixin/InGameHudMixin.java | 6 +-- .../skyblocker/mixin/InventoryScreenMixin.java | 17 ++------- .../xmrvizzy/skyblocker/mixin/LeverBlockMixin.java | 3 +- .../skyblocker/mixin/PlayerListHudAccessor.java | 18 --------- .../skyblocker/mixin/PlayerListHudMixin.java | 26 +++++-------- .../skyblocker/mixin/RecipeBookWidgetAccessor.java | 14 ------- .../mixin/accessor/HandledScreenAccessor.java | 17 +++++++++ .../mixin/accessor/PlayerListHudAccessor.java | 17 +++++++++ .../mixin/accessor/RecipeBookWidgetAccessor.java | 14 +++++++ .../mixin/accessor/WorldRendererAccessor.java | 13 +++++++ .../skyblocker/skyblock/dungeon/OldLever.java | 18 +++------ .../skyblock/itemlist/ItemListWidget.java | 32 ++++++++-------- .../skyblock/quicknav/QuickNavButton.java | 6 +-- .../skyblock/rift/HealingMelonIndicator.java | 4 +- .../skyblock/tabhud/util/PlayerListMgr.java | 3 +- .../me/xmrvizzy/skyblocker/utils/FrustumUtils.java | 4 +- src/main/resources/skyblocker.mixins.json | 10 ++--- 24 files changed, 150 insertions(+), 183 deletions(-) delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudAccessor.java delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/HandledScreenAccessor.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/PlayerListHudAccessor.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/RecipeBookWidgetAccessor.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/WorldRendererAccessor.java (limited to 'src/main/resources') diff --git a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java index 0c27704d..7d187caa 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java +++ b/src/main/java/me/xmrvizzy/skyblocker/gui/ContainerSolverManager.java @@ -1,7 +1,7 @@ package me.xmrvizzy.skyblocker.gui; import com.mojang.blaze3d.systems.RenderSystem; -import me.xmrvizzy.skyblocker.mixin.HandledScreenAccessor; +import me.xmrvizzy.skyblocker.mixin.accessor.HandledScreenAccessor; import me.xmrvizzy.skyblocker.skyblock.dungeon.CroesusHelper; import me.xmrvizzy.skyblocker.skyblock.dungeon.terminal.ColorTerminal; import me.xmrvizzy.skyblocker.skyblock.dungeon.terminal.OrderTerminal; diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java deleted file mode 100644 index e9067851..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/AccessorWorldRenderer.java +++ /dev/null @@ -1,13 +0,0 @@ -package me.xmrvizzy.skyblocker.mixin; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import net.minecraft.client.render.Frustum; -import net.minecraft.client.render.WorldRenderer; - -@Mixin(WorldRenderer.class) -public interface AccessorWorldRenderer { - @Accessor - Frustum getFrustum(); -} \ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java index e48e725e..ea35ebbe 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/ClientPlayerEntityMixin.java @@ -4,7 +4,6 @@ import com.mojang.authlib.GameProfile; import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock; import me.xmrvizzy.skyblocker.skyblock.rift.HealingMelonIndicator; import me.xmrvizzy.skyblocker.utils.Utils; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.world.ClientWorld; @@ -25,8 +24,8 @@ public abstract class ClientPlayerEntityMixin extends AbstractClientPlayerEntity if (Utils.isOnSkyblock()) HotbarSlotLock.handleDropSelectedItem(this.getInventory().selectedSlot, cir); } - @Inject(method = "updateHealth", at = @At("HEAD")) - public void skyblocker$updateHealth(float health, CallbackInfo info) { - HealingMelonIndicator.updateHealth(MinecraftClient.getInstance()); + @Inject(method = "updateHealth", at = @At("RETURN")) + public void skyblocker$updateHealth(CallbackInfo info) { + HealingMelonIndicator.updateHealth(); } } \ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java index a8a490b8..e12f645a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/DrawContextMixin.java @@ -1,18 +1,6 @@ package me.xmrvizzy.skyblocker.mixin; -import java.awt.Color; -import java.util.regex.Pattern; - -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - import com.mojang.blaze3d.systems.RenderSystem; - import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.utils.ItemUtils; import me.xmrvizzy.skyblocker.utils.Utils; @@ -23,18 +11,28 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.util.math.ColorHelper; +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.awt.*; +import java.util.regex.Pattern; @Mixin(DrawContext.class) public abstract class DrawContextMixin { - @Shadow @Final private MatrixStack matrices; - - @Shadow - public void fill(RenderLayer layer, int x1, int x2, int y1, int y2, int color) { - } - + @Shadow + @Final + private MatrixStack matrices; + + @Shadow + public abstract void fill(RenderLayer layer, int x1, int x2, int y1, int y2, int color); + @Inject(method = "drawItemInSlot(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V", at = @At("HEAD")) public void skyblocker$renderItemBar(TextRenderer textRenderer, ItemStack stack, int x, int y, @Nullable String countOverride, CallbackInfo ci) { - if (Utils.isOnSkyblock() && SkyblockerConfig.get().locations.dwarvenMines.enableDrillFuel) { if (!stack.isEmpty()) { NbtCompound tag = stack.getNbt(); @@ -42,7 +40,7 @@ public abstract class DrawContextMixin { if (tag.getCompound("ExtraAttributes").contains("drill_fuel")) { float current = 3000.0F; float max = 3000.0F; - + for (String line : ItemUtils.getTooltipStrings(stack)) { if (line.contains("Fuel: ")) { String clear = Pattern.compile("[^0-9 /]").matcher(line).replaceAll("").trim(); @@ -52,17 +50,17 @@ public abstract class DrawContextMixin { break; } } - + matrices.push(); matrices.translate(0f, 0f, 200f); RenderSystem.disableDepthTest(); - + float hue = Math.max(0.0F, 1.0F - (max - current) / max); int width = Math.round(current / max * 13.0F); Color color = Color.getHSBColor(hue / 3.0F, 1.0F, 1.0F); this.fill(RenderLayer.getGuiOverlay(), x + 2, y + 13, x + 15, y + 15, 0xFF000000); this.fill(RenderLayer.getGuiOverlay(), x + 2, y + 13, x + 2 + width, y + 14, ColorHelper.Argb.getArgb(color.getAlpha(), color.getRed(), color.getGreen(), color.getBlue())); - + matrices.pop(); RenderSystem.enableDepthTest(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java index 761f8a68..d36773b2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/FarmlandBlockMixin.java @@ -1,34 +1,38 @@ package me.xmrvizzy.skyblocker.mixin; +import com.llamalad7.mixinextras.injector.ModifyReturnValue; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.utils.Utils; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.FarmlandBlock; -import net.minecraft.block.ShapeContext; import net.minecraft.util.math.BlockPos; import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(FarmlandBlock.class) public abstract class FarmlandBlockMixin extends Block { + @Shadow + @Final + protected static VoxelShape SHAPE; + protected FarmlandBlockMixin(Settings settings) { super(settings); } - @Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true) - public void skyblocker$onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable cir) { - if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.hitbox.oldFarmlandHitbox) - cir.setReturnValue(Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 16.0, 16.0)); + @ModifyReturnValue(method = "getOutlineShape", at = @At("RETURN")) + private VoxelShape skyblocker$replaceOutlineShape(VoxelShape original) { + return SkyblockerConfig.get().general.hitbox.oldFarmlandHitbox && Utils.isOnSkyblock() ? VoxelShapes.fullCube() : original; } @SuppressWarnings("deprecation") @Override public VoxelShape getCullingShape(BlockState state, BlockView world, BlockPos pos) { - return Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 15.0, 16.0); + return SHAPE; } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java deleted file mode 100644 index ea497b75..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenAccessor.java +++ /dev/null @@ -1,17 +0,0 @@ -package me.xmrvizzy.skyblocker.mixin; - -import net.minecraft.client.gui.screen.ingame.HandledScreen; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(HandledScreen.class) -public interface HandledScreenAccessor { - @Accessor - int getX(); - @Accessor - int getY(); - @Accessor - int getBackgroundWidth(); - @Accessor - int getBackgroundHeight(); -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java index 13272323..8a57f752 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/HandledScreenMixin.java @@ -34,14 +34,14 @@ import java.util.Map; @Mixin(HandledScreen.class) public abstract class HandledScreenMixin extends Screen { - protected HandledScreenMixin(Text title) { - super(title); - } - @Shadow @Nullable protected Slot focusedSlot; + protected HandledScreenMixin(Text title) { + super(title); + } + @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)) { diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java index 3e2db3e0..e1a14e4c 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InGameHudMixin.java @@ -27,7 +27,6 @@ public abstract class InGameHudMixin { @Unique private static final Identifier SLOT_LOCK = new Identifier(SkyblockerMod.NAMESPACE, "textures/gui/slot_lock.png"); @Unique - private final StatusBarTracker statusBarTracker = SkyblockerMod.getInstance().statusBarTracker; @Unique private final FancyStatusBars statusBars = new FancyStatusBars(); @@ -38,8 +37,7 @@ public abstract class InGameHudMixin { private int scaledWidth; @Shadow - public void setOverlayMessage(Text message, boolean tinted) { - } + public abstract void setOverlayMessage(Text message, boolean tinted); @Inject(method = "setOverlayMessage(Lnet/minecraft/text/Text;Z)V", at = @At("HEAD"), cancellable = true) private void skyblocker$onSetOverlayMessage(Text message, boolean tinted, CallbackInfo ci) { @@ -76,8 +74,6 @@ public abstract class InGameHudMixin { if (Utils.isInDungeons() && SkyblockerConfig.get().locations.dungeons.enableMap) DungeonMap.render(context.getMatrices()); - - //RenderSystem.setShaderTexture(0, ICONS); } @Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true) diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java index 64a1a4fe..729124fd 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/InventoryScreenMixin.java @@ -1,5 +1,6 @@ package me.xmrvizzy.skyblocker.mixin; +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemListWidget; import me.xmrvizzy.skyblocker.utils.Utils; @@ -7,21 +8,11 @@ import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(InventoryScreen.class) public abstract class InventoryScreenMixin { - @Redirect( - method = "", - at = @At( - value = "NEW", - target = "net/minecraft/client/gui/screen/recipebook/RecipeBookWidget" - ) - ) - RecipeBookWidget skyblocker$constructor() { - if (Utils.isOnSkyblock() && SkyblockerConfig.get().general.itemList.enableItemList) - return new ItemListWidget(); - else - return new RecipeBookWidget(); + @ModifyExpressionValue(method = "", at = @At(value = "NEW", target = "net/minecraft/client/gui/screen/recipebook/RecipeBookWidget")) + private RecipeBookWidget skyblocker$replaceRecipeBook(RecipeBookWidget original) { + return SkyblockerConfig.get().general.itemList.enableItemList && Utils.isOnSkyblock() ? new ItemListWidget() : original; } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java index 505de202..96a53878 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/LeverBlockMixin.java @@ -24,8 +24,7 @@ public abstract class LeverBlockMixin extends WallMountedBlock { public void skyblocker$onGetOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable cir) { if (Utils.isOnSkyblock()) { VoxelShape shape = OldLever.getShape(state.get(FACE), state.get(FACING)); - if (shape != null) - cir.setReturnValue(shape); + if (shape != null) cir.setReturnValue(shape); } } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudAccessor.java deleted file mode 100644 index db329775..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudAccessor.java +++ /dev/null @@ -1,18 +0,0 @@ -package me.xmrvizzy.skyblocker.mixin; - -import java.util.Comparator; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import net.minecraft.client.gui.hud.PlayerListHud; -import net.minecraft.client.network.PlayerListEntry; - -@Mixin(PlayerListHud.class) -public interface PlayerListHudAccessor { - - @Accessor("ENTRY_ORDERING") - public static Comparator getOrdering() { - throw new AssertionError(); - } -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java index ef65190f..0d900167 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/PlayerListHudMixin.java @@ -1,11 +1,5 @@ package me.xmrvizzy.skyblocker.mixin; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.skyblock.tabhud.TabHud; import me.xmrvizzy.skyblocker.skyblock.tabhud.screens.Screen; @@ -19,38 +13,36 @@ import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.scoreboard.Scoreboard; import net.minecraft.scoreboard.ScoreboardObjective; import net.minecraft.text.Text; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Environment(EnvType.CLIENT) @Mixin(PlayerListHud.class) public class PlayerListHudMixin { - @Shadow private Text footer; @Inject(at = @At("HEAD"), method = "render(Lnet/minecraft/client/gui/DrawContext;ILnet/minecraft/scoreboard/Scoreboard;Lnet/minecraft/scoreboard/ScoreboardObjective;)V", cancellable = true) - public void skyblocker$renderTabHud(DrawContext context, int scaledW, Scoreboard sb, ScoreboardObjective sbo, - CallbackInfo info) { - - if (!Utils.isOnSkyblock() - || !SkyblockerConfig.get().general.tabHud.tabHudEnabled - || TabHud.defaultTgl.isPressed()) { + public void skyblocker$renderTabHud(DrawContext context, int w, Scoreboard sb, ScoreboardObjective sbo, CallbackInfo info) { + if (!Utils.isOnSkyblock() || !SkyblockerConfig.get().general.tabHud.tabHudEnabled || TabHud.defaultTgl.isPressed()) { return; } - MinecraftClient client = MinecraftClient.getInstance(); - ClientPlayNetworkHandler nwH = client.getNetworkHandler(); + ClientPlayNetworkHandler nwH = MinecraftClient.getInstance().getNetworkHandler(); if (nwH == null) { return; } - int w = scaledW; int h = MinecraftClient.getInstance().getWindow().getScaledHeight(); try { Screen screen = Screen.getCorrect(w, h, footer); screen.render(context); info.cancel(); } catch (Exception e) { - TabHud.LOGGER.error("Drawing default hud. Reason: Screen exception {}", e); + TabHud.LOGGER.error("[Skyblocker] Encountered unknown exception while drawing default hud", e); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java deleted file mode 100644 index 808b2950..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/mixin/RecipeBookWidgetAccessor.java +++ /dev/null @@ -1,14 +0,0 @@ -package me.xmrvizzy.skyblocker.mixin; - -import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; -import net.minecraft.client.gui.widget.TextFieldWidget; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(RecipeBookWidget.class) -public interface RecipeBookWidgetAccessor { - @Accessor - String getSearchText(); - @Accessor - TextFieldWidget getSearchField(); -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/HandledScreenAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/HandledScreenAccessor.java new file mode 100644 index 00000000..ad35dae6 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/HandledScreenAccessor.java @@ -0,0 +1,17 @@ +package me.xmrvizzy.skyblocker.mixin.accessor; + +import net.minecraft.client.gui.screen.ingame.HandledScreen; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(HandledScreen.class) +public interface HandledScreenAccessor { + @Accessor + int getX(); + @Accessor + int getY(); + @Accessor + int getBackgroundWidth(); + @Accessor + int getBackgroundHeight(); +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/PlayerListHudAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/PlayerListHudAccessor.java new file mode 100644 index 00000000..7e335d73 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/PlayerListHudAccessor.java @@ -0,0 +1,17 @@ +package me.xmrvizzy.skyblocker.mixin.accessor; + +import net.minecraft.client.gui.hud.PlayerListHud; +import net.minecraft.client.network.PlayerListEntry; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import java.util.Comparator; + +@Mixin(PlayerListHud.class) +public interface PlayerListHudAccessor { + + @Accessor("ENTRY_ORDERING") + static Comparator getOrdering() { + throw new AssertionError(); + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/RecipeBookWidgetAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/RecipeBookWidgetAccessor.java new file mode 100644 index 00000000..0f20d4e4 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/RecipeBookWidgetAccessor.java @@ -0,0 +1,14 @@ +package me.xmrvizzy.skyblocker.mixin.accessor; + +import net.minecraft.client.gui.screen.recipebook.RecipeBookWidget; +import net.minecraft.client.gui.widget.TextFieldWidget; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(RecipeBookWidget.class) +public interface RecipeBookWidgetAccessor { + @Accessor + String getSearchText(); + @Accessor + TextFieldWidget getSearchField(); +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/WorldRendererAccessor.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/WorldRendererAccessor.java new file mode 100644 index 00000000..831a3385 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/accessor/WorldRendererAccessor.java @@ -0,0 +1,13 @@ +package me.xmrvizzy.skyblocker.mixin.accessor; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import net.minecraft.client.render.Frustum; +import net.minecraft.client.render.WorldRenderer; + +@Mixin(WorldRenderer.class) +public interface WorldRendererAccessor { + @Accessor + Frustum getFrustum(); +} \ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java index 37320c92..13789fe1 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/OldLever.java @@ -7,11 +7,11 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.shape.VoxelShape; public class OldLever { - protected static final VoxelShape FLOOR_SHAPE; - protected static final VoxelShape NORTH_SHAPE; - protected static final VoxelShape SOUTH_SHAPE; - protected static final VoxelShape EAST_SHAPE; - protected static final VoxelShape WEST_SHAPE; + protected static final VoxelShape FLOOR_SHAPE = Block.createCuboidShape(4.0D, 0.0D, 4.0D, 12.0D, 10.0D, 12.0D); + protected static final VoxelShape NORTH_SHAPE = Block.createCuboidShape(5.0D, 3.0D, 10.0D, 11.0D, 13.0D, 16.0D); + protected static final VoxelShape SOUTH_SHAPE = Block.createCuboidShape(5.0D, 3.0D, 0.0D, 11.0D, 13.0D, 6.0D); + protected static final VoxelShape EAST_SHAPE = Block.createCuboidShape(0.0D, 3.0D, 5.0D, 6.0D, 13.0D, 11.0D); + protected static final VoxelShape WEST_SHAPE = Block.createCuboidShape(10.0D, 3.0D, 5.0D, 16.0D, 13.0D, 11.0D); public static VoxelShape getShape(WallMountLocation wallMountLocation, Direction direction) { if (!SkyblockerConfig.get().general.hitbox.oldLeverHitbox) @@ -37,12 +37,4 @@ public class OldLever { } return null; } - - static { - FLOOR_SHAPE = Block.createCuboidShape(4, 0, 4, 12, 10, 12); - NORTH_SHAPE = Block.createCuboidShape(5.0D, 3.0D, 10.0D, 11.0D, 13.0D, 16.0D); - SOUTH_SHAPE = Block.createCuboidShape(5.0D, 3.0D, 0.0D, 11.0D, 13.0D, 6.0D); - WEST_SHAPE = Block.createCuboidShape(10.0D, 3.0D, 5.0D, 16.0D, 13.0D, 11.0D); - EAST_SHAPE = Block.createCuboidShape(0.0D, 3.0D, 5.0D, 6.0D, 13.0D, 11.0D); - } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java index 3a1f91d3..04dc6820 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java @@ -1,7 +1,7 @@ package me.xmrvizzy.skyblocker.skyblock.itemlist; import com.mojang.blaze3d.systems.RenderSystem; -import me.xmrvizzy.skyblocker.mixin.RecipeBookWidgetAccessor; +import me.xmrvizzy.skyblocker.mixin.accessor.RecipeBookWidgetAccessor; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; @@ -15,7 +15,7 @@ import net.minecraft.screen.AbstractRecipeScreenHandler; import net.minecraft.text.Text; import net.minecraft.util.Formatting; -@Environment(value= EnvType.CLIENT) +@Environment(value = EnvType.CLIENT) public class ItemListWidget extends RecipeBookWidget implements Drawable, Selectable { private int parentWidth; private int parentHeight; @@ -23,10 +23,12 @@ public class ItemListWidget extends RecipeBookWidget implements Drawable, Select private TextFieldWidget searchField; private SearchResultsWidget results; - public ItemListWidget() { super(); } + public ItemListWidget() { + super(); + } public void updateSearchResult() { - this.results.updateSearchResult(((RecipeBookWidgetAccessor)this).getSearchText()); + this.results.updateSearchResult(((RecipeBookWidgetAccessor) this).getSearchText()); } @Override @@ -35,7 +37,7 @@ public class ItemListWidget extends RecipeBookWidget implements Drawable, Select this.parentWidth = parentWidth; this.parentHeight = parentHeight; this.leftOffset = narrow ? 0 : 86; - this.searchField = ((RecipeBookWidgetAccessor)this).getSearchField(); + this.searchField = ((RecipeBookWidgetAccessor) this).getSearchField(); int x = (this.parentWidth - 147) / 2 - this.leftOffset; int y = (this.parentHeight - 166) / 2; if (ItemRegistry.filesImported) { @@ -48,14 +50,14 @@ public class ItemListWidget extends RecipeBookWidget implements Drawable, Select public void render(DrawContext context, int mouseX, int mouseY, float delta) { if (this.isOpen()) { MatrixStack matrices = context.getMatrices(); - matrices.push(); + matrices.push(); matrices.translate(0.0D, 0.0D, 100.0D); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - this.searchField = ((RecipeBookWidgetAccessor)this).getSearchField(); + this.searchField = ((RecipeBookWidgetAccessor) this).getSearchField(); int i = (this.parentWidth - 147) / 2 - this.leftOffset; int j = (this.parentHeight - 166) / 2; context.drawTexture(TEXTURE, i, j, 1, 1, 147, 166); - this.searchField = ((RecipeBookWidgetAccessor)this).getSearchField(); + this.searchField = ((RecipeBookWidgetAccessor) this).getSearchField(); if (!ItemRegistry.filesImported && !this.searchField.isFocused() && this.searchField.getText().isEmpty()) { Text hintText = (Text.literal("Loading...")).formatted(Formatting.ITALIC).formatted(Formatting.GRAY); @@ -66,7 +68,7 @@ public class ItemListWidget extends RecipeBookWidget implements Drawable, Select } else { this.searchField.render(context, mouseX, mouseY, delta); } - if (ItemRegistry.filesImported){ + if (ItemRegistry.filesImported) { if (results == null) { int x = (this.parentWidth - 147) / 2 - this.leftOffset; int y = (this.parentHeight - 166) / 2; @@ -88,15 +90,15 @@ public class ItemListWidget extends RecipeBookWidget implements Drawable, Select @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (this.isOpen() && !this.client.player.isSpectator() && ItemRegistry.filesImported && results != null) { - if (this.searchField != null && this.searchField.mouseClicked(mouseX, mouseY, button)) { + if (this.isOpen() && this.client.player != null && !this.client.player.isSpectator() && ItemRegistry.filesImported && this.searchField != null && results != null) { + if (this.searchField.mouseClicked(mouseX, mouseY, button)) { this.results.closeRecipeView(); this.searchField.setFocused(true); return true; - } else - this.searchField.setFocused(false); + } else { + this.searchField.setFocused(false); return this.results.mouseClicked(mouseX, mouseY, button); - } else - return false; + } + } else return false; } } \ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java index c02463a3..d9e97976 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/quicknav/QuickNavButton.java @@ -3,7 +3,7 @@ package me.xmrvizzy.skyblocker.skyblock.quicknav; import com.mojang.blaze3d.systems.RenderSystem; import me.xmrvizzy.skyblocker.SkyblockerMod; -import me.xmrvizzy.skyblocker.mixin.HandledScreenAccessor; +import me.xmrvizzy.skyblocker.mixin.accessor.HandledScreenAccessor; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; @@ -19,7 +19,6 @@ import net.minecraft.util.Identifier; @Environment(value=EnvType.CLIENT) public class QuickNavButton extends ClickableWidget { - private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); private static final Identifier BUTTON_TEXTURE = new Identifier("textures/gui/container/creative_inventory/tabs.png"); private final int index; @@ -42,12 +41,9 @@ public class QuickNavButton extends ClickableWidget { if (screen instanceof HandledScreen handledScreen) { int x = ((HandledScreenAccessor)handledScreen).getX(); int y = ((HandledScreenAccessor)handledScreen).getY(); - int w = ((HandledScreenAccessor)handledScreen).getBackgroundWidth(); int h = ((HandledScreenAccessor)handledScreen).getBackgroundHeight(); if (h > 166) --h; // why is this even a thing - // this.x = x + this.index % 6 * 28 + 4; this.setX(x + this.index % 6 * 26 + 4); - // this.y = this.index < 6 ? y - 28 : y + h - 4; this.setY(this.index < 6 ? y - 26 : y + h - 4); this.u = 26; this.v = (index < 6 ? 0 : 64) + (toggled ? 32 : 0); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/HealingMelonIndicator.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/HealingMelonIndicator.java index fed34796..aa730c31 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/HealingMelonIndicator.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/HealingMelonIndicator.java @@ -12,12 +12,12 @@ import net.minecraft.util.Formatting; public class HealingMelonIndicator { private static final Title title = new Title("skyblocker.rift.healNow", Formatting.DARK_RED); - public static void updateHealth(MinecraftClient client) { + public static void updateHealth() { if (!SkyblockerConfig.get().slayer.vampireSlayer.enableHealingMelonIndicator || !Utils.isOnSkyblock() || !Utils.isInTheRift() || !Utils.getLocation().contains("Stillgore Château")) { TitleContainer.removeTitle(title); return; } - ClientPlayerEntity player = client.player; + ClientPlayerEntity player = MinecraftClient.getInstance().player; if (player != null && player.getHealth() <= SkyblockerConfig.get().slayer.vampireSlayer.healingMelonHealthThreshold * 2F) { RenderHelper.displayInTitleContainerAndPlaySound(title); } else { diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/PlayerListMgr.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/PlayerListMgr.java index ee4319dc..d0ce6b72 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/PlayerListMgr.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/util/PlayerListMgr.java @@ -4,11 +4,10 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import me.xmrvizzy.skyblocker.mixin.PlayerListHudAccessor; +import me.xmrvizzy.skyblocker.mixin.accessor.PlayerListHudAccessor; import me.xmrvizzy.skyblocker.utils.Utils; import net.minecraft.client.MinecraftClient; diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/FrustumUtils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/FrustumUtils.java index 565bd7a8..fd8ffdbd 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/FrustumUtils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/FrustumUtils.java @@ -1,6 +1,6 @@ package me.xmrvizzy.skyblocker.utils; -import me.xmrvizzy.skyblocker.mixin.AccessorWorldRenderer; +import me.xmrvizzy.skyblocker.mixin.accessor.WorldRendererAccessor; import me.xmrvizzy.skyblocker.mixin.accessor.FrustumInvoker; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.Frustum; @@ -9,7 +9,7 @@ import net.minecraft.util.math.Box; public class FrustumUtils { public static Frustum getFrustum() { - return ((AccessorWorldRenderer) MinecraftClient.getInstance().worldRenderer).getFrustum(); + return ((WorldRendererAccessor) MinecraftClient.getInstance().worldRenderer).getFrustum(); } public static boolean isBoxVisible(Box box) { diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json index 656f9d32..360a966a 100644 --- a/src/main/resources/skyblocker.mixins.json +++ b/src/main/resources/skyblocker.mixins.json @@ -3,25 +3,25 @@ "package": "me.xmrvizzy.skyblocker.mixin", "compatibilityLevel": "JAVA_17", "client": [ - "AccessorWorldRenderer", "ClientPlayerEntityMixin", "ClientPlayNetworkHandlerMixin", "DrawContextMixin", "FarmlandBlockMixin", "GenericContainerScreenHandlerMixin", - "HandledScreenAccessor", "HandledScreenMixin", "InGameHudMixin", "InventoryScreenMixin", "LeverBlockMixin", "MinecraftClientMixin", - "PlayerListHudAccessor", "PlayerListHudMixin", "PlayerSkinProviderMixin", - "RecipeBookWidgetAccessor", "ScoreboardMixin", "accessor.BeaconBlockEntityRendererInvoker", - "accessor.FrustumInvoker" + "accessor.FrustumInvoker", + "accessor.HandledScreenAccessor", + "accessor.PlayerListHudAccessor", + "accessor.RecipeBookWidgetAccessor", + "accessor.WorldRendererAccessor" ], "injectors": { "defaultRequire": 1 -- cgit From 71f4d8ee4f3089caed638bd6dd19357b4e84f6f9 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Tue, 25 Jul 2023 04:08:58 -0400 Subject: Import BetterInject --- build.gradle | 3 +++ gradle.properties | 3 +++ src/main/resources/fabric.mod.json | 3 +++ 3 files changed, 9 insertions(+) (limited to 'src/main/resources') diff --git a/build.gradle b/build.gradle index 9e5e4e6a..3d375d68 100644 --- a/build.gradle +++ b/build.gradle @@ -71,6 +71,9 @@ dependencies { // Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling) include implementation("com.logisticscraft:occlusionculling:${project.occlusionculling_version}") + + // BetterInject (https://github.com/caoimhebyrne/BetterInject) + include implementation(annotationProcessor("com.github.cbyrneee:BetterInject:${project.betterinject_version}")) } base { diff --git a/gradle.properties b/gradle.properties index f39bf2cb..06c16d22 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,6 +25,9 @@ mixin_extras_version=0.2.0-beta.9 ## Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling) occlusionculling_version = 0.0.7-SNAPSHOT +## Better Inject (https://github.com/caoimhebyrne/BetterInject) +betterinject_version=0.1.3 + # Mod Properties mod_version = 1.11.0 maven_group = me.xmrvizzy diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 5b383fe7..71d9763e 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -18,6 +18,9 @@ "client": [ "me.xmrvizzy.skyblocker.SkyblockerMod" ], + "preLaunch": [ + "dev.cbyrne.betterinject.BetterInject::initialize" + ], "modmenu": [ "me.xmrvizzy.skyblocker.config.modmenu.ModMenuEntry" ], -- cgit From 09944126f865ad54137df83301d0e2a39b910214 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Sun, 30 Jul 2023 12:28:58 +0800 Subject: Add english localization --- src/main/resources/assets/skyblocker/lang/en_us.json | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index 736f5872..8e8de38a 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -71,6 +71,13 @@ "text.autoconfig.skyblocker.option.general.titleContainer.y": "Title Container Y Position", "text.autoconfig.skyblocker.option.general.titleContainer.direction": "Title Container Orientation", "text.autoconfig.skyblocker.option.general.titleContainer.alignment": "Title Container Horizontal Alignment", + "text.autoconfig.skyblocker.option.general.teleportOverlay": "Teleport Overlay", + "text.autoconfig.skyblocker.option.general.teleportOverlay.enableTeleportOverlays": "Enable Teleport Overlays", + "text.autoconfig.skyblocker.option.general.teleportOverlay.enableWeirdTransmission": "Enable Weird Transmission Overlay", + "text.autoconfig.skyblocker.option.general.teleportOverlay.enableInstantTransmission": "Enable Instant Transmission Overlay", + "text.autoconfig.skyblocker.option.general.teleportOverlay.enableEtherTransmission": "Enable Ether Transmission Overlay", + "text.autoconfig.skyblocker.option.general.teleportOverlay.enableSinrecallTransmission": "Enable Sinrecall Transmission Overlay", + "text.autoconfig.skyblocker.option.general.teleportOverlay.enableWitherImpact": "Enable Wither Impact Overlay", "skyblocker.itemTooltip.nullMessage": "§b[§6Skyblocker§b] §cItem price information on tooltip will renew in max 60 seconds. If not, check latest.log", "skyblocker.itemTooltip.noData": "§cNo Data", -- cgit