From 2aca8427b0d6ac0e45dcb8bff10d4502d60ce4f2 Mon Sep 17 00:00:00 2001 From: orchidalloy Date: Wed, 4 Sep 2019 21:42:22 -0400 Subject: [PATCH] Add summoning eye alert. --- .../skyblockaddons/gui/SkyblockAddonsGui.java | 3 ++- .../listeners/PlayerListener.java | 11 +++++++++-- .../listeners/RenderListener.java | 3 +++ .../biscuit/skyblockaddons/utils/Feature.java | 7 ++++--- .../skyblockaddons/utils/InventoryUtils.java | 18 +++++++++++++++++- 5 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/main/java/codes/biscuit/skyblockaddons/gui/SkyblockAddonsGui.java b/src/main/java/codes/biscuit/skyblockaddons/gui/SkyblockAddonsGui.java index 89ed75167d..f83a433e18 100644 --- a/src/main/java/codes/biscuit/skyblockaddons/gui/SkyblockAddonsGui.java +++ b/src/main/java/codes/biscuit/skyblockaddons/gui/SkyblockAddonsGui.java @@ -68,7 +68,8 @@ public void initGui() { Feature.IGNORE_ITEM_FRAME_CLICKS, Feature.HIDE_FOOD_ARMOR_BAR, Feature.HIDE_HEALTH_BAR, Feature.AVOID_BREAKING_STEMS, Feature.MAGMA_WARNING, Feature.DROP_CONFIRMATION, Feature.HIDE_PLAYERS_IN_LOBBY, Feature.MINION_STOP_WARNING, - Feature.SHOW_ITEM_ANVIL_USES, Feature.LOCK_SLOTS, Feature.DONT_RESET_CURSOR_INVENTORY}; + Feature.SHOW_ITEM_ANVIL_USES, Feature.LOCK_SLOTS, Feature.DONT_RESET_CURSOR_INVENTORY, + Feature.MAKE_ENDERCHESTS_GREEN_IN_END, Feature.SUMMONING_EYE_ALERT}; } else if (tab == EnumUtils.SkyblockAddonsGuiTab.FIXES) { array = new Feature[]{Feature.HIDE_BONES, Feature.DISABLE_EMBER_ROD, Feature.HIDE_AUCTION_HOUSE_PLAYERS, Feature.STOP_BOW_CHARGE_FROM_RESETTING, Feature.AVOID_PLACING_ENCHANTED_ITEMS, Feature.PREVENT_MOVEMENT_ON_DEATH diff --git a/src/main/java/codes/biscuit/skyblockaddons/listeners/PlayerListener.java b/src/main/java/codes/biscuit/skyblockaddons/listeners/PlayerListener.java index 78ccc9ec83..8adfb10427 100644 --- a/src/main/java/codes/biscuit/skyblockaddons/listeners/PlayerListener.java +++ b/src/main/java/codes/biscuit/skyblockaddons/listeners/PlayerListener.java @@ -52,6 +52,7 @@ public class PlayerListener { private long lastBoss = -1; private int magmaTick = 1; private int timerTick = 1; + private long lastScreenOpen = -1; private long lastMinionSound = -1; private Integer healthUpdate = null; private long lastHealthUpdate; @@ -271,8 +272,10 @@ public void onTick(TickEvent.ClientTickEvent e) { sentUpdate = true; } - if (main.getConfigValues().isEnabled(Feature.ITEM_PICKUP_LOG) && mc.currentScreen == null - && main.getPlayerListener().didntRecentlyJoinWorld()) { + if (mc.currentScreen != null) { + lastScreenOpen = System.currentTimeMillis(); + } else if (main.getConfigValues().isEnabled(Feature.ITEM_PICKUP_LOG) + && main.getPlayerListener().didntRecentlyJoinWorld()) { main.getInventoryUtils().getInventoryDifference(p.inventory.mainInventory); } } @@ -542,6 +545,10 @@ public boolean shouldResetMouse() { return System.currentTimeMillis() - lastClosedInv > 100; } + public boolean didntRecentlyCloseScreen() { + return System.currentTimeMillis() - lastScreenOpen > 500; + } + public boolean didntRecentlyJoinWorld() { return System.currentTimeMillis() - lastWorldJoin > 3000; } diff --git a/src/main/java/codes/biscuit/skyblockaddons/listeners/RenderListener.java b/src/main/java/codes/biscuit/skyblockaddons/listeners/RenderListener.java index c057524721..96c7ca6de6 100644 --- a/src/main/java/codes/biscuit/skyblockaddons/listeners/RenderListener.java +++ b/src/main/java/codes/biscuit/skyblockaddons/listeners/RenderListener.java @@ -127,6 +127,9 @@ private void renderWarnings(ScaledResolution scaledResolution) { case FULL_INVENTORY_WARNING: message = Message.MESSAGE_FULL_INVENTORY; break; + case SUMMONING_EYE_ALERT: + message = Message.MESSAGE_SUMMONING_EYE_FOUND; + break; } if (message != null) { String text = message.getMessage(); diff --git a/src/main/java/codes/biscuit/skyblockaddons/utils/Feature.java b/src/main/java/codes/biscuit/skyblockaddons/utils/Feature.java index df5a7cf143..8eeaac40ce 100644 --- a/src/main/java/codes/biscuit/skyblockaddons/utils/Feature.java +++ b/src/main/java/codes/biscuit/skyblockaddons/utils/Feature.java @@ -31,7 +31,7 @@ public enum Feature { DARK_AUCTION_TIMER(28, Message.SETTING_DARK_AUCTION_TIMER), ITEM_PICKUP_LOG(29, Message.SETTING_ITEM_PICKUP_LOG), AVOID_PLACING_ENCHANTED_ITEMS(30, Message.SETTING_AVOID_PLACING_ENCHANTED_ITEMS), - MAKE_ENDERCHESTS_GREEN_IN_END(31, Message.SETTING_MAKE_ENDERMEN_HOLDING_ITEMS_PINK), //TODO change this message + MAKE_ENDERCHESTS_GREEN_IN_END(31, Message.SETTING_MAKE_ENDERCHESTS_IN_END_GREEN), //TODO change this message AVOID_BREAKING_STEMS(32, Message.SETTING_AVOID_BREAKING_STEMS), STOP_BOW_CHARGE_FROM_RESETTING(31, Message.SETTING_STOP_BOW_CHARGE_FROM_RESETTING), SHOW_MAGMA_TIMER_IN_OTHER_GAMES(32, Message.SETTING_SHOW_MAGMA_TIMER_IN_OTHER_GAMES), @@ -41,6 +41,7 @@ public enum Feature { LOCK_SLOTS(36, Message.SETTING_LOCK_SLOTS), DONT_RESET_CURSOR_INVENTORY(37, Message.SETTING_DONT_RESET_CURSOR_INVENTORY), HIDE_HUD_BARS(38, null), //TODO migrate this + SUMMONING_EYE_ALERT(39, Message.SETTING_SUMMONING_EYE_ALERT), DISABLE_DOUBLE_DROP_AUTOMATICALLY(14, Message.SETTING_DISABLE_DOUBLE_DROP), @@ -66,9 +67,9 @@ public enum Feature { private int id; private Message message; - Feature(int id, Message message) { + Feature(int id, Message settingMessage) { this.id = id; - this.message = message; + this.message = settingMessage; } public int getId() { diff --git a/src/main/java/codes/biscuit/skyblockaddons/utils/InventoryUtils.java b/src/main/java/codes/biscuit/skyblockaddons/utils/InventoryUtils.java index 496b8f7f65..4e195a3818 100644 --- a/src/main/java/codes/biscuit/skyblockaddons/utils/InventoryUtils.java +++ b/src/main/java/codes/biscuit/skyblockaddons/utils/InventoryUtils.java @@ -13,6 +13,8 @@ */ public class InventoryUtils { + private static final String SUMMONING_EYE_DISPLAY_NAME = "\u00A75Summoning Eye"; + /** * Display name of the Quiver Arrow item */ @@ -63,7 +65,7 @@ public void getInventoryDifference(ItemStack[] currentInventory) { Map previousInventoryMap = new HashMap<>(); Map newInventoryMap = new HashMap<>(); - if(previousInventory != null) { + if (previousInventory != null) { for(int i = 0; i < newInventory.size(); i++) { ItemStack previousItem = previousInventory.get(i); @@ -114,7 +116,21 @@ public void getInventoryDifference(ItemStack[] currentInventory) { } else { itemPickupLog.put(diff.getDisplayName(), diff); } + if (main.getConfigValues().isEnabled(Feature.SUMMONING_EYE_ALERT) + && diff.getAmount() == 1 && diff.getDisplayName().equals(SUMMONING_EYE_DISPLAY_NAME) + && (main.getUtils().getLocation() == EnumUtils.Location.THE_END || main.getUtils().getLocation() == EnumUtils.Location.DRAGONS_NEST) + && main.getPlayerListener().didntRecentlyCloseScreen()){ + main.getUtils().playSound("random.orb", 0.5); + main.getRenderListener().setTitleFeature(Feature.SUMMONING_EYE_ALERT); + new Timer().schedule(new TimerTask() { + @Override + public void run() { + main.getRenderListener().setTitleFeature(null); + } + }, main.getConfigValues().getWarningSeconds() * 1000); + } } + } previousInventory = newInventory;