From fbb77126c796b2e5c8253bbd579ee3c2c34d0d88 Mon Sep 17 00:00:00 2001 From: illumineawake Date: Sun, 22 Aug 2021 18:57:01 +1000 Subject: [PATCH] bootstrap iutils: add additional filters to EquipmentItemStream and InventoryItemStream UtilsScript add new inventory and equipment check methods --- iutils/iutils.gradle.kts | 2 +- .../plugins/iutils/scripts/UtilsScript.java | 40 ++++++++---------- .../iutils/ui/EquipmentItemStream.java | 9 ++-- .../iutils/ui/InventoryItemStream.java | 8 ++++ plugins.json | 2 +- .../{iutils-4.4.8.jar => iutils-4.4.9.jar} | Bin 1032601 -> 1033431 bytes 6 files changed, 33 insertions(+), 28 deletions(-) rename release/{iutils-4.4.8.jar => iutils-4.4.9.jar} (97%) diff --git a/iutils/iutils.gradle.kts b/iutils/iutils.gradle.kts index 117066ad..5d42b57c 100644 --- a/iutils/iutils.gradle.kts +++ b/iutils/iutils.gradle.kts @@ -23,7 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -version = "4.4.8" +version = "4.4.9" project.extra["PluginName"] = "iUtils" project.extra["PluginDescription"] = "Illumine - Utils required for plugins to function with added automation" diff --git a/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/UtilsScript.java b/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/UtilsScript.java index daa3596c..1d463bd2 100644 --- a/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/UtilsScript.java +++ b/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/UtilsScript.java @@ -17,10 +17,7 @@ import net.runelite.client.plugins.iutils.walking.Walking; import javax.inject.Inject; import java.awt.event.KeyEvent; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -37,7 +34,7 @@ public abstract class UtilsScript extends Plugin { protected Equipment equipment; @Inject protected Combat combat; -// @Inject + // @Inject protected StandardSpellbook standardSpellbook; @Inject protected Prayers prayers; @@ -109,11 +106,10 @@ public abstract class UtilsScript extends Plugin { } protected void obtain(List items) { - if (items.isEmpty() || - - Items(items)) { + if (items.isEmpty() || hasItems(items)) { return; } + obtain(items.toArray(ItemQuantity[]::new)); } @@ -193,27 +189,27 @@ public abstract class UtilsScript extends Plugin { return bankItem == null ? 0 : bankItem.quantity(); } - protected boolean equipmentHasItemsID(Integer items) { - return game.equipment().withId(items).findFirst().isPresent(); + protected boolean equipmentHasItem(int... ids) { + return game.equipment().withId(ids).findFirst().isPresent(); } - protected boolean equipmentHasItemsID(Collection items) { + + protected boolean equipmentHasItem(Collection items) { return game.equipment().withId(items).findFirst().isPresent(); } - protected boolean inventoryHasItemsName(String items) { - return game.inventory().withNamePart(items).findFirst().isPresent(); - } - protected boolean inventoryHasItemsName(Collection items) { - for (String item : items) { - return game.inventory().withNamePart(item).findFirst().isPresent(); - } - return false; + protected boolean inventoryHasItem(String... names) { + return game.inventory().withNamePart(names).findFirst().isPresent(); } - protected boolean inventoryHasItems(Integer items) { - return game.inventory().withId(items).findFirst().isPresent(); + protected boolean inventoryHasItemName(Collection names) { + return game.inventory().withNamePart(names).findFirst().isPresent(); } - protected boolean inventoryHasItems(Collection items) { + + protected boolean inventoryHasItem(int... ids) { + return game.inventory().withId(ids).findFirst().isPresent(); + } + + protected boolean inventoryHasItem(Collection items) { return game.inventory().withId(items).findFirst().isPresent(); } diff --git a/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/EquipmentItemStream.java b/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/EquipmentItemStream.java index 665828d3..6e9c2cc6 100644 --- a/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/EquipmentItemStream.java +++ b/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/EquipmentItemStream.java @@ -5,6 +5,7 @@ import net.runelite.client.plugins.iutils.game.EquipmentItem; import net.runelite.client.plugins.iutils.util.RandomizedStreamAdapter; import java.util.Arrays; +import java.util.Collection; import java.util.Objects; import java.util.stream.Stream; @@ -27,14 +28,14 @@ public class EquipmentItemStream extends RandomizedStreamAdapter ids) { return filter(o -> ids.stream().anyMatch(id -> o.id() == id)); } /** * Returns a stream consisting of the elements of this stream that don't match - * any of the given {@link InventoryItem#id()}s + * any of the given {@link EquipmentItem#id()}s */ public EquipmentItemStream withoutId(Collection ids) { return filter(o -> ids.stream().noneMatch(id -> o.id() == id)); @@ -42,7 +43,7 @@ public class EquipmentItemStream extends RandomizedStreamAdapter Arrays.stream(ids).noneMatch(id -> o.id() == id)); @@ -72,7 +73,7 @@ public class EquipmentItemStream extends RandomizedStreamAdapter Arrays.stream(names).noneMatch(name -> o.name().toLowerCase().contains(name.toLowerCase()))); diff --git a/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/InventoryItemStream.java b/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/InventoryItemStream.java index 459f0bf6..8ff55e43 100644 --- a/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/InventoryItemStream.java +++ b/iutils/src/main/java/net/runelite/client/plugins/iutils/ui/InventoryItemStream.java @@ -75,6 +75,14 @@ public class InventoryItemStream extends RandomizedStreamAdapter Arrays.stream(names).anyMatch(name -> o.name().toLowerCase().contains(name.toLowerCase()))); } + /** + * Returns a stream consisting of the elements of this stream whose + * {@link InventoryItem#name()}s contain any of the given name parts + */ + public InventoryItemStream withNamePart(Collection names) { + return filter(o -> names.stream().anyMatch(name -> o.name().toLowerCase().contains(name.toLowerCase()))); + } + /** * Returns a stream consisting of the elements of this stream that don't match * any of the given {@link InventoryItem#name()}s diff --git a/plugins.json b/plugins.json index 5ff0cc5b..0829a472 100644 --- a/plugins.json +++ b/plugins.json @@ -1 +1 @@ -[{"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"BotUtils","description":"Illumine - Utils required for plugins to function with added automation","id":"botutils-plugin","releases":[{"date":"2021-08-21","sha512sum":"A71C4F1B739303A6B543B80D6F10826A780D86365A495F0FFD3D2EE8A49585C18ADEE0EE59DA4729FEA017055F6C8E52FB46944653DF75681D5354FA62464CF0","version":"5.1.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/botutils-5.1.0.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Disable Rendering","description":"Illumine - Disable rendering to improve performance","id":"disablerendering-plugin","releases":[{"date":"2021-08-21","sha512sum":"90BC7ECE4E41AF4FBF0CFB0E3A0A95D9522396C6351F52A951C1AF553C0F353A1FC49B3310030E57C3809983D00A427B7AA170E5CA6ABDD9159610517504DBCC","version":"1.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/disablerendering-1.0.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iBlackjack","description":"Illumine - Blackjack plugin","id":"iblackjack-plugin","releases":[{"date":"2021-08-21","sha512sum":"DE7063171C8DEFD8E17471060111624172D18E05478574C1267E3D62F0D328E2A9520DF3471B6C0A1710D228B4FAC8CB867AE968987C40718FBA32EC47AC0105","version":"2.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iblackjack-2.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iCombination Runecrafter Plugin","description":"Illumine - Combination Runecrafting plugin","id":"icombinationrunecrafterplugin-plugin","releases":[{"date":"2021-08-21","sha512sum":"525470A8CDE1E77C038D16D46FFD32F1E793F9A4F1095FFF11FEE9F682D80B2016EE369C5B0298D33B8C8D2E2404416501AF11856C8739A9D0DE3CB917031FF4","version":"3.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/icombinationrunecrafter-3.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iHerbCleaner","description":"Illumine - Herb Cleaner","id":"iherbcleaner-plugin","releases":[{"date":"2021-08-21","sha512sum":"947E7C27746385BA8B2F84B3900DB483430C94ADB92C0E9A5DF1B608A2B7DB0CC1EBF083FFEFE71095CDB922A407D12ED9E96F2700A33BD23FDE546844EFCAB6","version":"2.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iherbcleaner-2.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iMagic Caster","description":"Illumine automated magic caster","id":"imagiccaster-plugin","releases":[{"date":"2021-08-21","sha512sum":"B201FE2A998CA6584150F551A06BF6F2624DCF88082255EADBF2413A2D24FBA1865E7BAA0DC0B72939E76AD76C7E7B44CFB23C1536E20B350500CB48A14A7DCD","version":"4.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/imagiccaster-4.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iMenu Debugger Plugin","description":"Illumine - Menu Debugger plugin","id":"imenudebuggerplugin-plugin","releases":[{"date":"2021-08-21","sha512sum":"D9A00F68D0F8D185C6ABAB541BF6F84A516453F902000AE56E8A4223D0C8914FE17CA130E486E5423C187C99F4ED057D43117D98B413D3F8E4069CE7F590B001","version":"2.3.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/imenudebugger-2.3.0.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iPowerfighter Plugin","description":"Illumine - Powerfighter plugin","id":"ipowerfighterplugin-plugin","releases":[{"date":"2021-08-21","sha512sum":"91C82B66073E942668F888EC9816581C203FA9A69BBD109D694922370543CE1361D9B9608CD450EF4CB9C5B8C41A09D0C5F2525DF7F3749021F696E0A3E60223","version":"4.2.4","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/ipowerfighter-4.2.4.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iPower Skiller","description":"Illumine auto power skiller plugin","id":"ipowerskiller-plugin","releases":[{"date":"2021-08-21","sha512sum":"A39C5BD79FEF4F8839F406BBACD5162CE3E8CD3A7C0C8B8F13A706810162E9717C8AC0567B4F197DF80AE1DCED70AF8634FA765641D51A9C3A8FDF6249FBF376","version":"6.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/ipowerskiller-6.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuest Assistant","description":"Illumine - Quest Assistant plugin","id":"iquestassistant-plugin","releases":[{"date":"2021-08-21","sha512sum":"70DD51DCFFE14118FAB2DAB97636A11F20896F080CF82EC444085C26ECB5E847A2A751D7D2E066610802C96B71C466DE55B15B98353B97F165CB833DD5BEF29D","version":"1.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquestassistant-1.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuester Free","description":"Illumine - Free Quester plugin.","id":"iquesterfree-plugin","releases":[{"date":"2021-08-21","sha512sum":"B19CED68CBA64F6F37A221045BD178B892E293A30DBCB6C4EBA3E45C88BD2B001E44B1EBACE0C90253FAC80511D97966FB3C4F3424C705C79911B3695921DC25","version":"1.0.4","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquesterfree-1.0.4.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuick Eater","description":"Illumine - auto eat food, consume potions and equip items","id":"iquickeater-plugin","releases":[{"date":"2021-08-21","sha512sum":"7FDFB39B829D2D53625BEDDBC2F1D74A99B4E1DF819237F673A5A5D7B0476E44F3AD55E28883CB4965054AB6472510FF89A9A25956701332D06FA46DE93E8022","version":"5.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquickeater-5.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iRandom Handler","description":"illumine - Dismiss random events and handle genie","id":"irandomhandler-plugin","releases":[{"date":"2021-08-21","sha512sum":"FAC53D573FC9489E293B0DD19CDAF4A62E2C28874661D0CF4AC8BE1D8756AAD6752144615B21F70B595803C970D109A6C9BBC0E7BF0C57F848573EEE5DA0B04D","version":"3.1.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/irandomhandler-3.1.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iRooftop Agility","description":"Illumine automated rooftop agility plugin","id":"irooftopagility-plugin","releases":[{"date":"2021-08-21","sha512sum":"706A284A3354C409250895398CD68F9EE5D99A88304988E2AAB243BCDCC13D60709AF1C89967E7401629F9FB8FF92CB33E63DBEB896F34800E7BE9823C84BF30","version":"6.1.6","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/irooftopagility-6.1.6.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iTaskTemplate","description":"Illumine - Task Template plugin","id":"itasktemplate-plugin","releases":[{"date":"2021-08-21","sha512sum":"98C262B2D53F0ABDB3DE2961E514BB7DD496EAC9E5B3DB56B302146680BD8B180E91CB11F3F04502F828811AFFB45AFE0DCBBB170105E82BA65D14CAB82A1284","version":"4.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/itasktemplate-4.0.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iUtils","description":"Illumine - Utils required for plugins to function with added automation","id":"iutils-plugin","releases":[{"date":"2021-08-21","sha512sum":"0A67AC416F6F07256A08ADF55AC2DB57E9DFEF5B36F6A509E037D622FF56AAB7B0BC35FFB4475B5C8A7642184A033BCEEFD6E4931D7BCDCC08125A20CEB8AF1C","version":"4.4.8","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iutils-4.4.8.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iWorld Walker Plugin","description":"Illumine - World Walker plugin","id":"iworldwalkerplugin-plugin","releases":[{"date":"2021-08-21","sha512sum":"F1AAF978D489763F0DDC078CBF9AAD340D16B10B5D60DB02F5D60B38390FCE097380759B7B50558FBFF9DCE804BC11BEBFAE20EDF3A2DF520AA5C6EE785A6981","version":"4.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iworldwalker-4.0.1.jar?raw=true","requires":"^1.0.0"}]}] +[{"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"BotUtils","description":"Illumine - Utils required for plugins to function with added automation","id":"botutils-plugin","releases":[{"date":"2021-08-22","sha512sum":"A71C4F1B739303A6B543B80D6F10826A780D86365A495F0FFD3D2EE8A49585C18ADEE0EE59DA4729FEA017055F6C8E52FB46944653DF75681D5354FA62464CF0","version":"5.1.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/botutils-5.1.0.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Disable Rendering","description":"Illumine - Disable rendering to improve performance","id":"disablerendering-plugin","releases":[{"date":"2021-08-22","sha512sum":"90BC7ECE4E41AF4FBF0CFB0E3A0A95D9522396C6351F52A951C1AF553C0F353A1FC49B3310030E57C3809983D00A427B7AA170E5CA6ABDD9159610517504DBCC","version":"1.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/disablerendering-1.0.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iBlackjack","description":"Illumine - Blackjack plugin","id":"iblackjack-plugin","releases":[{"date":"2021-08-22","sha512sum":"DE7063171C8DEFD8E17471060111624172D18E05478574C1267E3D62F0D328E2A9520DF3471B6C0A1710D228B4FAC8CB867AE968987C40718FBA32EC47AC0105","version":"2.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iblackjack-2.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iCombination Runecrafter Plugin","description":"Illumine - Combination Runecrafting plugin","id":"icombinationrunecrafterplugin-plugin","releases":[{"date":"2021-08-22","sha512sum":"525470A8CDE1E77C038D16D46FFD32F1E793F9A4F1095FFF11FEE9F682D80B2016EE369C5B0298D33B8C8D2E2404416501AF11856C8739A9D0DE3CB917031FF4","version":"3.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/icombinationrunecrafter-3.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iHerbCleaner","description":"Illumine - Herb Cleaner","id":"iherbcleaner-plugin","releases":[{"date":"2021-08-22","sha512sum":"947E7C27746385BA8B2F84B3900DB483430C94ADB92C0E9A5DF1B608A2B7DB0CC1EBF083FFEFE71095CDB922A407D12ED9E96F2700A33BD23FDE546844EFCAB6","version":"2.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iherbcleaner-2.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iMagic Caster","description":"Illumine automated magic caster","id":"imagiccaster-plugin","releases":[{"date":"2021-08-22","sha512sum":"B201FE2A998CA6584150F551A06BF6F2624DCF88082255EADBF2413A2D24FBA1865E7BAA0DC0B72939E76AD76C7E7B44CFB23C1536E20B350500CB48A14A7DCD","version":"4.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/imagiccaster-4.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iMenu Debugger Plugin","description":"Illumine - Menu Debugger plugin","id":"imenudebuggerplugin-plugin","releases":[{"date":"2021-08-22","sha512sum":"D9A00F68D0F8D185C6ABAB541BF6F84A516453F902000AE56E8A4223D0C8914FE17CA130E486E5423C187C99F4ED057D43117D98B413D3F8E4069CE7F590B001","version":"2.3.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/imenudebugger-2.3.0.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iPowerfighter Plugin","description":"Illumine - Powerfighter plugin","id":"ipowerfighterplugin-plugin","releases":[{"date":"2021-08-22","sha512sum":"91C82B66073E942668F888EC9816581C203FA9A69BBD109D694922370543CE1361D9B9608CD450EF4CB9C5B8C41A09D0C5F2525DF7F3749021F696E0A3E60223","version":"4.2.4","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/ipowerfighter-4.2.4.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iPower Skiller","description":"Illumine auto power skiller plugin","id":"ipowerskiller-plugin","releases":[{"date":"2021-08-22","sha512sum":"A39C5BD79FEF4F8839F406BBACD5162CE3E8CD3A7C0C8B8F13A706810162E9717C8AC0567B4F197DF80AE1DCED70AF8634FA765641D51A9C3A8FDF6249FBF376","version":"6.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/ipowerskiller-6.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuest Assistant","description":"Illumine - Quest Assistant plugin","id":"iquestassistant-plugin","releases":[{"date":"2021-08-22","sha512sum":"70DD51DCFFE14118FAB2DAB97636A11F20896F080CF82EC444085C26ECB5E847A2A751D7D2E066610802C96B71C466DE55B15B98353B97F165CB833DD5BEF29D","version":"1.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquestassistant-1.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuester Free","description":"Illumine - Free Quester plugin.","id":"iquesterfree-plugin","releases":[{"date":"2021-08-22","sha512sum":"B19CED68CBA64F6F37A221045BD178B892E293A30DBCB6C4EBA3E45C88BD2B001E44B1EBACE0C90253FAC80511D97966FB3C4F3424C705C79911B3695921DC25","version":"1.0.4","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquesterfree-1.0.4.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuick Eater","description":"Illumine - auto eat food, consume potions and equip items","id":"iquickeater-plugin","releases":[{"date":"2021-08-22","sha512sum":"7FDFB39B829D2D53625BEDDBC2F1D74A99B4E1DF819237F673A5A5D7B0476E44F3AD55E28883CB4965054AB6472510FF89A9A25956701332D06FA46DE93E8022","version":"5.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquickeater-5.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iRandom Handler","description":"illumine - Dismiss random events and handle genie","id":"irandomhandler-plugin","releases":[{"date":"2021-08-22","sha512sum":"FAC53D573FC9489E293B0DD19CDAF4A62E2C28874661D0CF4AC8BE1D8756AAD6752144615B21F70B595803C970D109A6C9BBC0E7BF0C57F848573EEE5DA0B04D","version":"3.1.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/irandomhandler-3.1.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iRooftop Agility","description":"Illumine automated rooftop agility plugin","id":"irooftopagility-plugin","releases":[{"date":"2021-08-22","sha512sum":"706A284A3354C409250895398CD68F9EE5D99A88304988E2AAB243BCDCC13D60709AF1C89967E7401629F9FB8FF92CB33E63DBEB896F34800E7BE9823C84BF30","version":"6.1.6","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/irooftopagility-6.1.6.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iTaskTemplate","description":"Illumine - Task Template plugin","id":"itasktemplate-plugin","releases":[{"date":"2021-08-22","sha512sum":"98C262B2D53F0ABDB3DE2961E514BB7DD496EAC9E5B3DB56B302146680BD8B180E91CB11F3F04502F828811AFFB45AFE0DCBBB170105E82BA65D14CAB82A1284","version":"4.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/itasktemplate-4.0.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iUtils","description":"Illumine - Utils required for plugins to function with added automation","id":"iutils-plugin","releases":[{"date":"2021-08-22","sha512sum":"77708E4D4B0BCE99E27107FDBC0A5D3CF7EEBA06510BA372C18E6A494860AF809C038933C2E1678857E6741F2EF68798F3A33B712A0E2E7935A53F67EDE8BD12","version":"4.4.9","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iutils-4.4.9.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iWorld Walker Plugin","description":"Illumine - World Walker plugin","id":"iworldwalkerplugin-plugin","releases":[{"date":"2021-08-22","sha512sum":"F1AAF978D489763F0DDC078CBF9AAD340D16B10B5D60DB02F5D60B38390FCE097380759B7B50558FBFF9DCE804BC11BEBFAE20EDF3A2DF520AA5C6EE785A6981","version":"4.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iworldwalker-4.0.1.jar?raw=true","requires":"^1.0.0"}]}] diff --git a/release/iutils-4.4.8.jar b/release/iutils-4.4.9.jar similarity index 97% rename from release/iutils-4.4.8.jar rename to release/iutils-4.4.9.jar index ab66e317dc7f9879fed27afe4992bf8cbfbb5b4c..5b8d39687cec182bd7d9ea57e4a604c2b13840c1 100644 GIT binary patch delta 19271 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