From 1034b2563a47dfd9dbdbc163cb63bd696a77cb74 Mon Sep 17 00:00:00 2001 From: illumineawake Date: Wed, 23 Sep 2020 17:28:58 +1000 Subject: [PATCH] quickeater: support for antifire potions --- plugins.json | 2 +- quickeater/quickeater.gradle.kts | 4 +-- .../quickeater/QuickEaterConfiguration.java | 8 ++++++ .../plugins/quickeater/QuickEaterPlugin.java | 23 ++++++++++++++++++ release/quickeater-2.9.3.jar | Bin 9022 -> 0 bytes release/quickeater-3.0.0.jar | Bin 0 -> 9476 bytes 6 files changed, 34 insertions(+), 3 deletions(-) delete mode 100644 release/quickeater-2.9.3.jar create mode 100644 release/quickeater-3.0.0.jar diff --git a/plugins.json b/plugins.json index 947e1f77..edafb778 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":"2020-09-23","sha512sum":"1DFEE1994583354BE3D77DE906EBCBE6280DFBDB87A38A60197E329DA99BF6B29B36181C6F1BED7186FBECB40599B778CB7BD44667CF5F6158071B2F55F47F4F","version":"4.4.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/botutils-4.4.3.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Combination Runecrafter Plugin","description":"Illumine - Combination Runecrafting plugin","id":"combinationrunecrafterplugin-plugin","releases":[{"date":"2020-09-23","sha512sum":"14D98D10D291E56C1A2060FD709182D5B398213E97B4EB37654C5BB25093CE651B2847DC46B450DBAD247C0CAEB43351329001BF9959AE32553D75DCF7BF9885","version":"1.8.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/combinationrunecrafter-1.8.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Magic Caster","description":"Illumine automated magic caster","id":"magiccaster-plugin","releases":[{"date":"2020-09-23","sha512sum":"D68D6DB33F8A1C0D048B5809F54E2F68FD671BB7552D5E2842F7B60773F10F990A2C6DAF304C19D2F8ED058FB1D567ABC9E2FEA01020B2AE6A449DAE908A0225","version":"2.8.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/magiccaster-2.8.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Menu Debugger Plugin","description":"Illumine - Menu Debugger plugin","id":"menudebuggerplugin-plugin","releases":[{"date":"2020-09-23","sha512sum":"7EA2187DE376A21860077B04E77DD3C45FA793AC490705D136A20EA94BC2995C9DF8D142E03D61275C20347F199088C46F67FEDBB71EF167793E512DC08032A8","version":"0.0.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/menudebugger-0.0.3.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Powerfighter Plugin","description":"Illumine - Powerfighter plugin","id":"powerfighterplugin-plugin","releases":[{"date":"2020-09-23","sha512sum":"B88C7481BB6497A67349E32A9B4263E294F5DFED3533873399CD48FE4BD8A4B611CAE95A2746D1B7FEEB7AD67CBB1490AC6F726C5921D77DE1E60B408C384EAD","version":"1.9.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/powerfighter-1.9.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Power Skiller","description":"Illumine auto power skiller plugin","id":"powerskiller-plugin","releases":[{"date":"2020-09-23","sha512sum":"BED1A8AEDB45FC1EB6418F89AEB2D4D408FDFA24E47F6455C16587FB6593831CB0160433F69B308117462DC756DDB7AEBCF6EBA5041C9683704C6670A79D8B81","version":"4.6.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/powerskiller-4.6.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Quick Eater","description":"Illumine - auto eat food below configured HP","id":"quickeater-plugin","releases":[{"date":"2020-09-23","sha512sum":"4381155BE61D606412234E4158AC00F82416C7395AEA0C97C356960FAB3D544346D94DC08FD8C66EAAD66FCCA9D89D1C8E210D3F3DBFA5978CAA50E446FF049E","version":"2.9.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/quickeater-2.9.3.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Random Handler","description":"illumine - Dismiss random events and handle genie","id":"randomhandler-plugin","releases":[{"date":"2020-09-23","sha512sum":"3CCC170D39E12D832238DC466AE5CBF5FF97D9F2ACA5F6B405C614A9BD4C48C4E3A9C2AB8FD2364295C40705AD60E4BDA47CCCB9AE363EB00C6D889CEABA47A2","version":"1.0.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/randomhandler-1.0.2.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Rooftop Agility","description":"Illumine automated rooftop agility plugin","id":"rooftopagility-plugin","releases":[{"date":"2020-09-23","sha512sum":"EDA68BD23FCF50AE0E430499E7200B1370A724FC6B2FC224AE24B6019667AFCD9BBB64C8EB99F54388374F9AC9C1D474FEB8E90054E5F37747E964220828FFA4","version":"3.8.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/rooftopagility-3.8.1.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"World Walker Plugin","description":"Illumine - World Walker plugin","id":"worldwalkerplugin-plugin","releases":[{"date":"2020-09-23","sha512sum":"C453F2A99A8AE2DB7BB51179BCA04BF66DCB1C3FEE3A63D6091C238FE7B552DE8B3DB66495A698DD74AB70940C6E71BD5F2F338A95FAD874CB2D04314C7753C8","version":"1.0.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/worldwalker-1.0.3.jar?raw=true","requires":"0.0.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":"2020-09-23","sha512sum":"1DFEE1994583354BE3D77DE906EBCBE6280DFBDB87A38A60197E329DA99BF6B29B36181C6F1BED7186FBECB40599B778CB7BD44667CF5F6158071B2F55F47F4F","version":"4.4.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/botutils-4.4.3.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Combination Runecrafter Plugin","description":"Illumine - Combination Runecrafting plugin","id":"combinationrunecrafterplugin-plugin","releases":[{"date":"2020-09-23","sha512sum":"14D98D10D291E56C1A2060FD709182D5B398213E97B4EB37654C5BB25093CE651B2847DC46B450DBAD247C0CAEB43351329001BF9959AE32553D75DCF7BF9885","version":"1.8.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/combinationrunecrafter-1.8.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Magic Caster","description":"Illumine automated magic caster","id":"magiccaster-plugin","releases":[{"date":"2020-09-23","sha512sum":"D68D6DB33F8A1C0D048B5809F54E2F68FD671BB7552D5E2842F7B60773F10F990A2C6DAF304C19D2F8ED058FB1D567ABC9E2FEA01020B2AE6A449DAE908A0225","version":"2.8.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/magiccaster-2.8.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Menu Debugger Plugin","description":"Illumine - Menu Debugger plugin","id":"menudebuggerplugin-plugin","releases":[{"date":"2020-09-23","sha512sum":"7EA2187DE376A21860077B04E77DD3C45FA793AC490705D136A20EA94BC2995C9DF8D142E03D61275C20347F199088C46F67FEDBB71EF167793E512DC08032A8","version":"0.0.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/menudebugger-0.0.3.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Powerfighter Plugin","description":"Illumine - Powerfighter plugin","id":"powerfighterplugin-plugin","releases":[{"date":"2020-09-23","sha512sum":"B88C7481BB6497A67349E32A9B4263E294F5DFED3533873399CD48FE4BD8A4B611CAE95A2746D1B7FEEB7AD67CBB1490AC6F726C5921D77DE1E60B408C384EAD","version":"1.9.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/powerfighter-1.9.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Power Skiller","description":"Illumine auto power skiller plugin","id":"powerskiller-plugin","releases":[{"date":"2020-09-23","sha512sum":"BED1A8AEDB45FC1EB6418F89AEB2D4D408FDFA24E47F6455C16587FB6593831CB0160433F69B308117462DC756DDB7AEBCF6EBA5041C9683704C6670A79D8B81","version":"4.6.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/powerskiller-4.6.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Quick Eater","description":"Illumine - auto eat food below configured HP and consume potions","id":"quickeater-plugin","releases":[{"date":"2020-09-23","sha512sum":"46B980AF572615694B478668DC765C4340A95F4B54C1D4B579F803AA05644E1E44CAEA83EB8AB60A4715DE3A3863D876F69E4AA71A1D36F61F48CCF8499CA82F","version":"3.0.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/quickeater-3.0.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Random Handler","description":"illumine - Dismiss random events and handle genie","id":"randomhandler-plugin","releases":[{"date":"2020-09-23","sha512sum":"3CCC170D39E12D832238DC466AE5CBF5FF97D9F2ACA5F6B405C614A9BD4C48C4E3A9C2AB8FD2364295C40705AD60E4BDA47CCCB9AE363EB00C6D889CEABA47A2","version":"1.0.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/randomhandler-1.0.2.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Rooftop Agility","description":"Illumine automated rooftop agility plugin","id":"rooftopagility-plugin","releases":[{"date":"2020-09-23","sha512sum":"EDA68BD23FCF50AE0E430499E7200B1370A724FC6B2FC224AE24B6019667AFCD9BBB64C8EB99F54388374F9AC9C1D474FEB8E90054E5F37747E964220828FFA4","version":"3.8.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/rooftopagility-3.8.1.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"World Walker Plugin","description":"Illumine - World Walker plugin","id":"worldwalkerplugin-plugin","releases":[{"date":"2020-09-23","sha512sum":"C453F2A99A8AE2DB7BB51179BCA04BF66DCB1C3FEE3A63D6091C238FE7B552DE8B3DB66495A698DD74AB70940C6E71BD5F2F338A95FAD874CB2D04314C7753C8","version":"1.0.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/worldwalker-1.0.3.jar?raw=true","requires":"0.0.1"}]}] diff --git a/quickeater/quickeater.gradle.kts b/quickeater/quickeater.gradle.kts index b6e05ffe..68d9e6a9 100644 --- a/quickeater/quickeater.gradle.kts +++ b/quickeater/quickeater.gradle.kts @@ -23,10 +23,10 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -version = "2.9.3" +version = "3.0.0" project.extra["PluginName"] = "Quick Eater" -project.extra["PluginDescription"] = "Illumine - auto eat food below configured HP" +project.extra["PluginDescription"] = "Illumine - auto eat food below configured HP and consume potions" dependencies { compileOnly(project(":botutils")) diff --git a/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterConfiguration.java b/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterConfiguration.java index 01e28387..95c7002d 100644 --- a/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterConfiguration.java +++ b/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterConfiguration.java @@ -233,6 +233,14 @@ public interface QuickEaterConfiguration extends Config unhide = "drinkStamina" ) default int randEnergy() { return 20; } + + @ConfigItem( + keyName = "drinkAntiFire", + name = "Drink Anti-Fire Potions", + description = "Enable to drink Anti-Fire when burnt", + position = 2 + ) + default boolean drinkAntiFire() { return true; } @ConfigItem( keyName = "keepPNeckEquipped", diff --git a/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterPlugin.java b/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterPlugin.java index 73746b89..4dd067b4 100644 --- a/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterPlugin.java +++ b/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterPlugin.java @@ -37,6 +37,7 @@ import net.runelite.api.MenuOpcode; import net.runelite.api.Player; import net.runelite.api.Skill; import net.runelite.api.VarPlayer; +import net.runelite.api.events.ChatMessage; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.HitsplatApplied; @@ -113,6 +114,10 @@ public class QuickEaterPlugin extends Plugin ItemID.BATTLEMAGE_POTION1, ItemID.BATTLEMAGE_POTION2, ItemID.BATTLEMAGE_POTION3, ItemID.BATTLEMAGE_POTION4, ItemID.DIVINE_MAGIC_POTION1, ItemID.DIVINE_MAGIC_POTION2, ItemID.DIVINE_MAGIC_POTION3, ItemID.DIVINE_MAGIC_POTION4, ItemID.DIVINE_BATTLEMAGE_POTION1, ItemID.DIVINE_BATTLEMAGE_POTION2, ItemID.DIVINE_BATTLEMAGE_POTION3, ItemID.DIVINE_BATTLEMAGE_POTION4); + private final Set ANTI_FIRE_SET = Set.of(ItemID.ANTIFIRE_POTION1, ItemID.ANTIFIRE_POTION2, ItemID.ANTIFIRE_POTION3, ItemID.ANTIFIRE_POTION4, ItemID.SUPER_ANTIFIRE_POTION1, ItemID.SUPER_ANTIFIRE_POTION2, ItemID.SUPER_ANTIFIRE_POTION3, ItemID.SUPER_ANTIFIRE_POTION4, + ItemID.EXTENDED_ANTIFIRE1, ItemID.EXTENDED_ANTIFIRE2, ItemID.EXTENDED_ANTIFIRE3, ItemID.EXTENDED_ANTIFIRE4, ItemID.EXTENDED_SUPER_ANTIFIRE1, ItemID.EXTENDED_SUPER_ANTIFIRE2,ItemID.EXTENDED_SUPER_ANTIFIRE3,ItemID.EXTENDED_SUPER_ANTIFIRE4); + + private final String BURN_MESSAGE = ("You're horribly burnt by the dragon fire!"); private int timeout; private int drinkTimeout; @@ -238,6 +243,24 @@ public class QuickEaterPlugin extends Plugin } } + @Subscribe + private void onChatMessage(ChatMessage event) + { + if (event.getMessage().equals(BURN_MESSAGE) && config.drinkAntiFire()) + { + if (utils.inventoryContains(ANTI_FIRE_SET)) + { + log.debug("Drinking anti-fire"); + WidgetItem antiFireItem = utils.getInventoryWidgetItem(ANTI_FIRE_SET); + useItem(antiFireItem); + } + else + { + utils.sendGameMessage("You are Burnt but missing anti-fire potions"); + } + } + } + @Subscribe protected void onGameStateChanged(GameStateChanged event) { diff --git a/release/quickeater-2.9.3.jar b/release/quickeater-2.9.3.jar deleted file mode 100644 index 61b8e33b5fe0bd27977e5445246be151da7aafb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9022 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 s#eWAazZd&`wfxUw(J24tVt=fizmPx# diff --git a/release/quickeater-3.0.0.jar b/release/quickeater-3.0.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..b08314893ba9a9c34afa4f165a8b7fa46ad5eab7 GIT binary patch literal 9476 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 p>-S>6Z(ICXYz*oDT