diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-12-29 20:22:48 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-30 09:22:48 +0800 |
| commit | 19530fabf7c3ab50bcede65c2e0546098fa2dfb4 (patch) | |
| tree | 35e06d393db6c18eeeb03f6496ff11053bb6d7d1 /src/main/java | |
| parent | add261c2e2a3f10bec125421f1db9679add479db (diff) | |
| download | Skyblocker-19530fabf7c3ab50bcede65c2e0546098fa2dfb4.tar.gz Skyblocker-19530fabf7c3ab50bcede65c2e0546098fa2dfb4.tar.bz2 Skyblocker-19530fabf7c3ab50bcede65c2e0546098fa2dfb4.zip | |
Fix pet icon and command history (#1114)
* Don't add commands sent by the mod to the command history
* Fix pet icon showing as a bone for skinned pets
* Hide automatic commands
---------
Co-authored-by: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>
Diffstat (limited to 'src/main/java')
18 files changed, 26 insertions, 28 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java index 658c00bb..3495e1f1 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/UIAndVisualsCategory.java @@ -196,7 +196,7 @@ public class UIAndVisualsCategory { .text(Text.translatable("text.skyblocker.open")) .action((screen, opt) -> { if (Utils.isOnSkyblock()) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/widgets"); + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/widgets", true); } else { MinecraftClient.getInstance().setScreen(new WidgetsConfigurationScreen(Location.HUB, ScreenMaster.ScreenLayer.MAIN_TAB, screen)); } diff --git a/src/main/java/de/hysky/skyblocker/mixins/InventoryScreenMixin.java b/src/main/java/de/hysky/skyblocker/mixins/InventoryScreenMixin.java index b35d79b2..a0ba8284 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/InventoryScreenMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/InventoryScreenMixin.java @@ -74,7 +74,7 @@ public abstract class InventoryScreenMixin extends HandledScreen<PlayerScreenHan private void skyblocker$addGardenPlotsWidget(CallbackInfo ci) { if (Utils.getLocation().equals(Location.GARDEN) && SkyblockerConfigManager.get().farming.garden.gardenPlotsWidget) { gardenPlotsWidget = new GardenPlotsWidget(x + backgroundWidth + 4, y); - deskButton = ButtonWidget.builder(Text.translatable("skyblocker.gardenPlots.openDesk"), button -> MessageScheduler.INSTANCE.sendMessageAfterCooldown("/desk")) + deskButton = ButtonWidget.builder(Text.translatable("skyblocker.gardenPlots.openDesk"), button -> MessageScheduler.INSTANCE.sendMessageAfterCooldown("/desk", true)) .dimensions(gardenPlotsWidget.getX() + 7, y + 108, 60, 15) .build(); // make desk button get selected before the widget but render after the widget diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/ConfirmationPromptHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/ConfirmationPromptHelper.java index 3bb0dd8a..7f4a7f46 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chat/ConfirmationPromptHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/ConfirmationPromptHelper.java @@ -29,7 +29,7 @@ public class ConfirmationPromptHelper { if (Utils.isOnSkyblock() && screen instanceof ChatScreen && SkyblockerConfigManager.get().chat.confirmationPromptHelper) { ScreenMouseEvents.beforeMouseClick(screen).register((_screen1, _mouseX, _mouseY, _button) -> { if (hasCommand()) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown(command); + MessageScheduler.INSTANCE.sendMessageAfterCooldown(command, true); command = null; commandFoundAt = 0; } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java index 94231f86..5239ad1a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/EggFinder.java @@ -90,7 +90,7 @@ public class EggFinder { .then(argument("blockPos", ClientBlockPosArgumentType.blockPos()) .then(argument("eggType", EggTypeArgumentType.eggType()) .executes(context -> { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("[Skyblocker] Chocolate " + context.getArgument("eggType", EggType.class) + " Egg found at " + context.getArgument("blockPos", ClientPosArgument.class).toAbsoluteBlockPos(context.getSource()).toShortString() + "!"); + MessageScheduler.INSTANCE.sendMessageAfterCooldown("[Skyblocker] Chocolate " + context.getArgument("eggType", EggType.class) + " Egg found at " + context.getArgument("blockPos", ClientPosArgument.class).toAbsoluteBlockPos(context.getSource()).toShortString() + "!", false); return Command.SINGLE_SUCCESS; }))))))); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java index 5727cda7..a00025d0 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java @@ -95,7 +95,7 @@ public class DungeonScore { score = calculateScore(); if (!sent270 && !sent300 && score >= 270 && score < 300) { if (SCORE_CONFIG.enableDungeonScore270Message) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/pc " + Constants.PREFIX.get().getString() + SCORE_CONFIG.dungeonScore270Message.replaceAll("\\[score]", "270")); + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/pc " + Constants.PREFIX.get().getString() + SCORE_CONFIG.dungeonScore270Message.replaceAll("\\[score]", "270"), false); } if (SCORE_CONFIG.enableDungeonScore270Title) { client.inGameHud.setDefaultTitleFade(); @@ -110,14 +110,14 @@ public class DungeonScore { int crypts = getCrypts(); if (!sentCrypts && score >= SCORE_CONFIG.dungeonCryptsMessageThreshold && crypts < 5) { if (SCORE_CONFIG.enableDungeonCryptsMessage) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/pc " + Constants.PREFIX.get().getString() + SCORE_CONFIG.dungeonCryptsMessage.replaceAll("\\[crypts]", String.valueOf(crypts))); + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/pc " + Constants.PREFIX.get().getString() + SCORE_CONFIG.dungeonCryptsMessage.replaceAll("\\[crypts]", String.valueOf(crypts)), false); } sentCrypts = true; } if (!sent300 && score >= 300) { if (SCORE_CONFIG.enableDungeonScore300Message) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/pc " + Constants.PREFIX.get().getString() + SCORE_CONFIG.dungeonScore300Message.replaceAll("\\[score]", "300")); + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/pc " + Constants.PREFIX.get().getString() + SCORE_CONFIG.dungeonScore300Message.replaceAll("\\[score]", "300"), false); } if (SCORE_CONFIG.enableDungeonScore300Title) { client.inGameHud.setDefaultTitleFade(); @@ -215,7 +215,7 @@ public class DungeonScore { public static void handleEntityDeath(Entity entity) { if (mimicKilled) return; if (!isEntityMimic(entity)) return; - if (MIMIC_MESSAGE_CONFIG.sendMimicMessage) MessageScheduler.INSTANCE.sendMessageAfterCooldown(MIMIC_MESSAGE_CONFIG.mimicMessage); + if (MIMIC_MESSAGE_CONFIG.sendMimicMessage) MessageScheduler.INSTANCE.sendMessageAfterCooldown(MIMIC_MESSAGE_CONFIG.mimicMessage, false); mimicKilled = true; } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java index e6dc31c8..fc9bb8f6 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java @@ -104,7 +104,7 @@ public class LividColor { .append(CONFIG.lividColorText.replaceAll("\\[color]", colorString)) .formatted(LividColor.color); if (CONFIG.enableLividColorText) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown(message.getString()); + MessageScheduler.INSTANCE.sendMessageAfterCooldown(message.getString(), false); } if (CONFIG.enableLividColorTitle) { client.inGameHud.setDefaultTitleFade(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/Reparty.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/Reparty.java index 66288eed..47bd1096 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/Reparty.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/Reparty.java @@ -114,6 +114,6 @@ public class Reparty extends ChatPatternListener { } private void sendCommand(String command, int delay) { - MessageScheduler.INSTANCE.queueMessage(command, false, delay * BASE_DELAY); + MessageScheduler.INSTANCE.queueMessage(command, true, delay * BASE_DELAY); } -}
\ No newline at end of file +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java index 06e31a4c..860bc43d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java @@ -294,7 +294,7 @@ public class CrystalsLocationsManager { public static int shareWaypoint(String place) { if (activeWaypoints.containsKey(place)) { BlockPos pos = activeWaypoints.get(place).pos; - MessageScheduler.INSTANCE.sendMessageAfterCooldown(Constants.PREFIX.get().getString() + " " + place + ": " + pos.getX() + ", " + pos.getY() + ", " + pos.getZ()); + MessageScheduler.INSTANCE.sendMessageAfterCooldown(Constants.PREFIX.get().getString() + " " + place + ": " + pos.getX() + ", " + pos.getY() + ", " + pos.getZ(), false); } else { //send fail message if (CLIENT.player == null || CLIENT.getNetworkHandler() == null) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/GardenPlotsWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/GardenPlotsWidget.java index 4e4af42b..213315ca 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/garden/GardenPlotsWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/GardenPlotsWidget.java @@ -281,8 +281,8 @@ public class GardenPlotsWidget extends ClickableWidget { if (SkyblockerConfigManager.get().farming.garden.closeScreenOnPlotClick && MinecraftClient.getInstance().currentScreen != null) MinecraftClient.getInstance().currentScreen.close(); - if (hoveredSlot == 12) MessageScheduler.INSTANCE.sendMessageAfterCooldown("/warp garden"); - else MessageScheduler.INSTANCE.sendMessageAfterCooldown("/plottp " + gardenPlots[hoveredSlot].name); + if (hoveredSlot == 12) MessageScheduler.INSTANCE.sendMessageAfterCooldown("/warp garden", true); + else MessageScheduler.INSTANCE.sendMessageAfterCooldown("/plottp " + gardenPlots[hoveredSlot].name, true); } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java index 63771227..db946317 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/VisitorHelper.java @@ -79,7 +79,7 @@ public class VisitorHelper { // The text starts at `TEXT_START_X + ENTRY_INDENT + ITEM_INDENT` if (isMouseOverText(mouseX, mouseY, TEXT_START_X + ENTRY_INDENT + ITEM_INDENT, yPosition, textWidth, textRenderer.fontHeight)) { // Send command to buy the item from the bazaar - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/bz " + itemText); + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/bz " + itemText, true); return; } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java index a4a6b928..03da43cf 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemPrice.java @@ -55,9 +55,9 @@ public class ItemPrice { // Search up the item in the bazaar or auction house if (TooltipInfoType.BAZAAR.hasOrNullWarning(skyblockApiId)) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/bz " + itemName); + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/bz " + itemName, true); } else if (TooltipInfoType.LOWEST_BINS.hasOrNullWarning(skyblockApiId)) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/ahsearch " + itemName); + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/ahsearch " + itemName, true); } } else { player.sendMessage(Constants.PREFIX.get().append(Text.translatable("skyblocker.config.helpers.itemPrice.itemPriceLookupFailed")), false); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockInventoryScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockInventoryScreen.java index 084db5bb..6d6abf47 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockInventoryScreen.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/SkyblockInventoryScreen.java @@ -124,7 +124,7 @@ public class SkyblockInventoryScreen extends InventoryScreen { public boolean mouseClicked(double mouseX, double mouseY, int button) { for (Slot equipmentSlot : equipmentSlots) { if (isPointWithinBounds(equipmentSlot.x, equipmentSlot.y, 16, 16, mouseX, mouseY)) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown("/equipment"); + MessageScheduler.INSTANCE.sendMessageAfterCooldown("/equipment", true); return true; } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/UpcomingEventsTab.java b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/UpcomingEventsTab.java index e01c2adf..b19860bc 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/UpcomingEventsTab.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/itemlist/recipebook/UpcomingEventsTab.java @@ -81,7 +81,7 @@ public class UpcomingEventsTab implements RecipeTab { @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { if (this.hovered != null && this.hovered.getWarpCommand() != null) { - MessageScheduler.INSTANCE.sendMessageAfterCooldown(hovered.getWarpCommand()); + MessageScheduler.INSTANCE.sendMessageAfterCooldown(hovered.getWarpCommand(), true); return true; } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java b/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java index fc6721fc..0512efd3 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/quicknav/QuickNavButton.java @@ -104,7 +104,7 @@ public class QuickNavButton extends ClickableWidget { if (command == null || command.isEmpty()) { MinecraftClient.getInstance().player.sendMessage(Constants.PREFIX.get().append(Text.literal("Quick Nav button index " + (index + 1) + " has no command!").formatted(Formatting.RED)), false); } else { - MessageScheduler.INSTANCE.sendMessageAfterCooldown(command); + MessageScheduler.INSTANCE.sendMessageAfterCooldown(command, true); } this.alpha = 0.5f; } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/SearchOverManager.java b/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/SearchOverManager.java index f3c36d8e..31a698ae 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/SearchOverManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/searchoverlay/SearchOverManager.java @@ -385,7 +385,7 @@ public class SearchOverManager { } else { command = "/bz " + search; } - MessageScheduler.INSTANCE.sendMessageAfterCooldown(command); + MessageScheduler.INSTANCE.sendMessageAfterCooldown(command, true); } /** diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/PetWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/PetWidget.java index c25d4fe8..6c55410d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/PetWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/PetWidget.java @@ -35,7 +35,7 @@ public class PetWidget extends TabHudWidget { addComponent(new PlainTextComponent(line)); continue; } - String petName = split[1].trim(); + String petName = split[1].replace("✦", "").trim(); if (!petName.equals(prevString)) { icon = ItemRepository.getItemsStream().filter(stack -> { String trim = stack.getName().getString().trim(); diff --git a/src/main/java/de/hysky/skyblocker/utils/Utils.java b/src/main/java/de/hysky/skyblocker/utils/Utils.java index 6994b9e3..c51a097e 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Utils.java +++ b/src/main/java/de/hysky/skyblocker/utils/Utils.java @@ -456,7 +456,7 @@ public class Utils { @Override public void run() { - if (requestId == profileIdRequest) MessageScheduler.INSTANCE.sendMessageAfterCooldown("/profileid"); + if (requestId == profileIdRequest) MessageScheduler.INSTANCE.sendMessageAfterCooldown("/profileid", true); } }, 20 * 8); //8 seconds } diff --git a/src/main/java/de/hysky/skyblocker/utils/scheduler/MessageScheduler.java b/src/main/java/de/hysky/skyblocker/utils/scheduler/MessageScheduler.java index a1fe7f5a..a62ddc92 100644 --- a/src/main/java/de/hysky/skyblocker/utils/scheduler/MessageScheduler.java +++ b/src/main/java/de/hysky/skyblocker/utils/scheduler/MessageScheduler.java @@ -25,6 +25,7 @@ public class MessageScheduler extends Scheduler { * Sends a chat message or command after the minimum cooldown. Prefer this method to send messages or commands to the server. * * @param message the message to send + * @param hide whether to hide the message from the chat, default should be true for commands */ public void sendMessageAfterCooldown(String message, boolean hide) { if (lastMessage + MIN_DELAY < System.currentTimeMillis()) { @@ -35,10 +36,6 @@ public class MessageScheduler extends Scheduler { } } - public void sendMessageAfterCooldown(String message) { - sendMessageAfterCooldown(message, false); - } - private void sendMessage(String message, boolean hide) { MinecraftClient client = MinecraftClient.getInstance(); if (client.player == null) { @@ -47,7 +44,7 @@ public class MessageScheduler extends Scheduler { } message = StringHelper.truncateChat(StringUtils.normalizeSpace(message.trim())); - if (!hide) client.inGameHud.getChatHud().addToMessageHistory(message); + if (!hide) client.inGameHud.getChatHud().addToMessageHistory(message); if (message.startsWith("/")) { client.player.networkHandler.sendCommand(message.substring(1)); } else { @@ -59,6 +56,7 @@ public class MessageScheduler extends Scheduler { * Queues a chat message or command to send in {@code delay} ticks. Use this method to send messages or commands a set time in the future. The minimum cooldown is still respected. * * @param message the message to send + * @param hide whether to hide the message from the chat, default should be true for commands * @param delay the delay before sending the message in ticks */ public void queueMessage(String message, boolean hide, int delay) { |
