├── .gitignore ├── .idea ├── .gitignore ├── LEECH.iml ├── compiler.xml ├── gradle.xml ├── jarRepositories.xml ├── kotlinc.xml ├── misc.xml ├── modules.xml ├── modules │ ├── AoeWarn │ │ └── Piggy-Converted.AoeWarn.main.iml │ ├── AutoJugHumidifier │ │ └── Piggy-Converted.AutoJugHumidifier.main.iml │ ├── AutoRifts │ │ └── Piggy-Converted.AutoRifts.main.iml │ ├── AutoTele │ │ └── EV-Converted.AutoTele.main.iml │ ├── CalvarionHelper │ │ └── EV-Converted.CalvarionHelper.main.iml │ ├── CannonReloader │ │ └── Piggy-Converted.CannonReloader.main.iml │ ├── DeveloperTools │ │ └── EV-Converted.DeveloperTools.main.iml │ ├── E3t4g │ │ └── EV-Converted.E3t4g.main.iml │ ├── EthanApi │ │ ├── EV-Converted.EthanApi.main.iml │ │ └── Piggy-Converted.EthanApi.main.iml │ ├── Example │ │ └── EV-Converted.Example.main.iml │ ├── GauntletFlicker │ │ └── EV-Converted.GauntletFlicker.main.iml │ ├── Harpoon2Ticker │ │ └── EV-Converted.Harpoon2Ticker.main.iml │ ├── HerbCleaner │ │ └── Piggy-Converted.HerbCleaner.main.iml │ ├── ItemCombiner │ │ └── Piggy-Converted.ItemCombiner.main.iml │ ├── JadAutoPrayers │ │ └── Piggy-Converted.JadAutoPrayers.main.iml │ ├── LavaRunecrafter │ │ └── EV-Converted.LavaRunecrafter.main.iml │ ├── NightmareHelper │ │ └── EV-Converted.NightmareHelper.main.iml │ ├── OneTickSwitcher │ │ └── Piggy-Converted.OneTickSwitcher.main.iml │ ├── PathingTesting │ │ └── EV-Converted.PathingTesting.main.iml │ ├── PiggyUtils │ │ └── Piggy-Converted.PiggyUtils.main.iml │ ├── PowerSkiller │ │ └── Piggy-Converted.PowerSkiller.main.iml │ ├── PrayAgainstPlayer │ │ └── Piggy-Converted.PrayAgainstPlayer.main.iml │ ├── PrayerFlicker │ │ └── EV-Converted.PrayerFlicker.main.iml │ ├── RooftopAgility │ │ └── Piggy-Converted.RooftopAgility.main.iml │ ├── RunEnabler │ │ └── EV-Converted.RunEnabler.main.iml │ ├── SixHourLog │ │ └── Piggy-Converted.SixHourLog.main.iml │ ├── SpeedDartMaker │ │ └── Piggy-Converted.SpeedDartMaker.main.iml │ ├── Superglass │ │ └── EV-Converted.Superglass.main.iml │ └── Upkeep │ │ └── EV-Converted.Upkeep.main.iml └── vcs.xml ├── Conversions ├── EV-Converted │ ├── .gitignore │ ├── .idea │ │ ├── .gitignore │ │ ├── .name │ │ ├── gradle.xml │ │ ├── kotlinc.xml │ │ ├── misc.xml │ │ ├── uiDesigner.xml │ │ └── vcs.xml │ ├── AutoTele │ │ ├── autotele.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── plugins │ │ │ ├── AutoTeleConfig.java │ │ │ └── AutoTelePlugin.java │ ├── CalvarionHelper │ │ ├── calvarionhelper.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── plugins │ │ │ ├── CalvarionHelperConfig.java │ │ │ ├── CalvarionHelperOverlay.java │ │ │ └── CalvarionHelperPlugin.java │ ├── DeveloperTools │ │ ├── developertools.gradle.kts │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── plugins │ │ │ │ │ ├── DevToolsConfig.java │ │ │ │ │ ├── DevToolsPlugin.java │ │ │ │ │ ├── children │ │ │ │ │ ├── DevToolsButton.java │ │ │ │ │ ├── DevToolsFrame.java │ │ │ │ │ ├── DevToolsPanel.java │ │ │ │ │ ├── InventoryDeltaPanel.java │ │ │ │ │ └── ShellFrame.java │ │ │ │ │ ├── overlays │ │ │ │ │ ├── CameraOverlay.java │ │ │ │ │ ├── DevToolsOverlay.java │ │ │ │ │ ├── LocationOverlay.java │ │ │ │ │ ├── SceneOverlay.java │ │ │ │ │ ├── SoundEffectOverlay.java │ │ │ │ │ ├── WidgetInfoTableModel.java │ │ │ │ │ ├── WidgetInspectorOverlay.java │ │ │ │ │ ├── WorldMapLocationOverlay.java │ │ │ │ │ └── WorldMapRegionOverlay.java │ │ │ │ │ ├── utils │ │ │ │ │ ├── InventoryInspector.java │ │ │ │ │ ├── InventoryItem.java │ │ │ │ │ ├── InventoryLog.java │ │ │ │ │ ├── InventoryLogNode.java │ │ │ │ │ ├── InventoryTreeNode.java │ │ │ │ │ ├── MovementFlag.java │ │ │ │ │ ├── ScriptInspector.java │ │ │ │ │ └── VarInspector.java │ │ │ │ │ └── widgets │ │ │ │ │ ├── WidgetField.java │ │ │ │ │ ├── WidgetInspector.java │ │ │ │ │ └── WidgetTreeNode.java │ │ │ └── resources │ │ │ │ └── devtools_icon.png │ │ │ └── test │ │ │ └── java │ │ │ └── DeveloperToolsTest.java │ ├── E3t4g │ │ ├── e3t4g.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── plugins │ │ │ └── e3t4gPlugin.java │ ├── EthanApi │ │ ├── ethanapi.gradle.kts │ │ └── src │ │ │ ├── main │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── plugins │ │ │ │ │ ├── Collections │ │ │ │ │ ├── Bank.java │ │ │ │ │ ├── BankInventory.java │ │ │ │ │ ├── BankItemWidget.java │ │ │ │ │ ├── DepositBox.java │ │ │ │ │ ├── ETileItem.java │ │ │ │ │ ├── Equipment.java │ │ │ │ │ ├── EquipmentItemWidget.java │ │ │ │ │ ├── Inventory.java │ │ │ │ │ ├── NPCs.java │ │ │ │ │ ├── Players.java │ │ │ │ │ ├── ShopInventory.java │ │ │ │ │ ├── TileItems.java │ │ │ │ │ ├── TileObjects.java │ │ │ │ │ ├── Widgets.java │ │ │ │ │ └── query │ │ │ │ │ │ ├── EquipmentItemQuery.java │ │ │ │ │ │ ├── ItemQuery.java │ │ │ │ │ │ ├── NPCQuery.java │ │ │ │ │ │ ├── PlayerQuery.java │ │ │ │ │ │ ├── QuickPrayer.java │ │ │ │ │ │ ├── TileItemQuery.java │ │ │ │ │ │ ├── TileObjectQuery.java │ │ │ │ │ │ └── WidgetQuery.java │ │ │ │ │ ├── EthanApiPlugin.java │ │ │ │ │ ├── InteractionApi │ │ │ │ │ ├── BankInteraction.java │ │ │ │ │ ├── BankInventoryInteraction.java │ │ │ │ │ ├── InteractionHelper.java │ │ │ │ │ ├── InventoryInteraction.java │ │ │ │ │ ├── NPCInteraction.java │ │ │ │ │ ├── PlayerInteractionHelper.java │ │ │ │ │ ├── PrayerInteraction.java │ │ │ │ │ └── TileObjectInteraction.java │ │ │ │ │ ├── PacketUtilsPlugin.java │ │ │ │ │ ├── Packets │ │ │ │ │ ├── BufferMethods.java │ │ │ │ │ ├── MousePackets.java │ │ │ │ │ ├── MovementPackets.java │ │ │ │ │ ├── NPCPackets.java │ │ │ │ │ ├── ObjectPackets.java │ │ │ │ │ ├── PacketUtils │ │ │ │ │ │ ├── ObfuscatedNames.java │ │ │ │ │ │ ├── ObjectAndType.java │ │ │ │ │ │ ├── PacketDef.java │ │ │ │ │ │ ├── PacketReflection.java │ │ │ │ │ │ ├── PacketType.java │ │ │ │ │ │ ├── PacketUtilsConfig.java │ │ │ │ │ │ ├── WidgetID.java │ │ │ │ │ │ └── WidgetInfoExtended.java │ │ │ │ │ ├── PlayerPackets.java │ │ │ │ │ ├── TileItemPackets.java │ │ │ │ │ └── WidgetPackets.java │ │ │ │ │ ├── PathFinding │ │ │ │ │ ├── GlobalCollisionMap.java │ │ │ │ │ └── Node.java │ │ │ │ │ └── Utility │ │ │ │ │ └── WorldAreaUtility.java │ │ │ └── resources │ │ │ │ └── ethan.png │ │ │ └── test │ │ │ └── java │ │ │ └── EthanApiTest.java │ ├── Example │ │ ├── example.gradle.kts │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── plugins │ │ │ │ ├── ExampleConfig.java │ │ │ │ ├── ExamplePlugin.java │ │ │ │ └── enums │ │ │ │ └── ExampleEnum.java │ │ │ └── test │ │ │ └── java │ │ │ └── plugins │ │ │ └── ExamplePluginTest.java │ ├── LavaRunecrafter │ │ ├── lavarunecrafter.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── plugins │ │ │ ├── LavaRunecrafterPlugin.java │ │ │ ├── LavaRunecrafterPluginConfig.java │ │ │ └── TeleportMethods.java │ ├── NightmareHelper │ │ ├── nightmarehelper.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── plugins │ │ │ ├── NightmareHelperPlugin.java │ │ │ ├── WeaponMap.java │ │ │ └── WeaponStyle.java │ ├── PathingTesting │ │ ├── pathingtesting.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── plugins │ │ │ ├── PathingTestingConfig.java │ │ │ ├── PathingTestingOverlay.java │ │ │ └── PathingTestingPlugin.java │ ├── PrayerFlicker │ │ ├── prayerflicker.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── plugins │ │ │ ├── EthanPrayerFlickerPlugin.java │ │ │ └── PrayerFlickerConfig.java │ ├── README.md │ ├── RunEnabler │ │ ├── runenabler.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── plugins │ │ │ └── RunEnablerPlugin.java │ ├── Superglass │ │ ├── src │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── plugins │ │ │ │ ├── Secondary.java │ │ │ │ ├── SuperGlassMakerPlugin.java │ │ │ │ └── SuperGlassMakerPluginConfig.java │ │ └── superglass.gradle.kts │ ├── Upkeep │ │ ├── src │ │ │ └── main │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── plugins │ │ │ │ ├── UpkeepPlugin.java │ │ │ │ └── UpkeepPluginConfig.java │ │ └── upkeep.gradle.kts │ ├── build.gradle.kts │ ├── buildSrc │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── kotlin │ │ │ ├── BootstrapPlugin.kt │ │ │ ├── BootstrapTask.kt │ │ │ ├── Dependencies.kt │ │ │ ├── JsonBuilder.kt │ │ │ ├── Project.kt │ │ │ ├── SemVer.kt │ │ │ ├── VersionPlugin.kt │ │ │ ├── VersionTask.kt │ │ │ └── VersionsTask.kt │ ├── gauntletFlicker │ │ ├── gauntletflicker.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── plugins │ │ │ └── GauntletFlickerPlugin.java │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── harpoon2ticker │ │ ├── harpoon2ticker.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── com │ │ │ └── plugins │ │ │ └── SwordFish2Tick.java │ └── settings.gradle.kts └── Piggy-Converted │ ├── .gitignore │ ├── .idea │ ├── .gitignore │ ├── .name │ ├── gradle.xml │ ├── kotlinc.xml │ ├── misc.xml │ ├── uiDesigner.xml │ └── vcs.xml │ ├── AoeWarn │ ├── aoewarn.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── AoeProjectileInfo.java │ │ ├── AoeWarningConfig.java │ │ ├── AoeWarningOverlay.java │ │ ├── AoeWarningPlugin.java │ │ ├── BombOverlay.java │ │ ├── ColorUtil.java │ │ ├── CrystalBomb.java │ │ ├── OverlayUtil.java │ │ └── ProjectileContainer.java │ ├── AutoJugHumidifier │ ├── autojughumidifier.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── AutoJugHumidifierConfig.java │ │ └── AutoJugHumidifierPlugin.java │ ├── AutoRifts │ ├── autorifts.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── AutoRiftsConfig.java │ │ ├── AutoRiftsOverlay.java │ │ ├── AutoRiftsPlugin.java │ │ └── data │ │ ├── Altar.java │ │ ├── Constants.java │ │ ├── State.java │ │ └── Utility.java │ ├── CannonReloader │ ├── cannonreloader.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── CannonReloaderConfig.java │ │ └── CannonReloaderPlugin.java │ ├── EthanApi │ ├── ethanapi.gradle.kts │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── plugins │ │ │ │ ├── Collections │ │ │ │ ├── Bank.java │ │ │ │ ├── BankInventory.java │ │ │ │ ├── BankItemWidget.java │ │ │ │ ├── DepositBox.java │ │ │ │ ├── ETileItem.java │ │ │ │ ├── Equipment.java │ │ │ │ ├── EquipmentItemWidget.java │ │ │ │ ├── Inventory.java │ │ │ │ ├── NPCs.java │ │ │ │ ├── Players.java │ │ │ │ ├── ShopInventory.java │ │ │ │ ├── TileItems.java │ │ │ │ ├── TileObjects.java │ │ │ │ ├── Widgets.java │ │ │ │ └── query │ │ │ │ │ ├── EquipmentItemQuery.java │ │ │ │ │ ├── ItemQuery.java │ │ │ │ │ ├── NPCQuery.java │ │ │ │ │ ├── PlayerQuery.java │ │ │ │ │ ├── QuickPrayer.java │ │ │ │ │ ├── TileItemQuery.java │ │ │ │ │ ├── TileObjectQuery.java │ │ │ │ │ └── WidgetQuery.java │ │ │ │ ├── EthanApiPlugin.java │ │ │ │ ├── InteractionApi │ │ │ │ ├── BankInteraction.java │ │ │ │ ├── BankInventoryInteraction.java │ │ │ │ ├── InteractionHelper.java │ │ │ │ ├── InventoryInteraction.java │ │ │ │ ├── NPCInteraction.java │ │ │ │ ├── PlayerInteractionHelper.java │ │ │ │ ├── PrayerInteraction.java │ │ │ │ └── TileObjectInteraction.java │ │ │ │ ├── PacketUtilsPlugin.java │ │ │ │ ├── Packets │ │ │ │ ├── BufferMethods.java │ │ │ │ ├── MousePackets.java │ │ │ │ ├── MovementPackets.java │ │ │ │ ├── NPCPackets.java │ │ │ │ ├── ObjectPackets.java │ │ │ │ ├── PacketUtils │ │ │ │ │ ├── ObfuscatedNames.java │ │ │ │ │ ├── ObjectAndType.java │ │ │ │ │ ├── PacketDef.java │ │ │ │ │ ├── PacketReflection.java │ │ │ │ │ ├── PacketType.java │ │ │ │ │ ├── PacketUtilsConfig.java │ │ │ │ │ ├── WidgetID.java │ │ │ │ │ └── WidgetInfoExtended.java │ │ │ │ ├── PlayerPackets.java │ │ │ │ ├── TileItemPackets.java │ │ │ │ └── WidgetPackets.java │ │ │ │ ├── PathFinding │ │ │ │ ├── GlobalCollisionMap.java │ │ │ │ └── Node.java │ │ │ │ └── Utility │ │ │ │ └── WorldAreaUtility.java │ │ └── resources │ │ │ └── ethan.png │ │ └── test │ │ └── java │ │ └── EthanApiTest.java │ ├── HerbCleaner │ ├── herbcleaner.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── HerbCleanerConfig.java │ │ ├── HerbCleanerPlugin.java │ │ └── HerbType.java │ ├── ItemCombiner │ ├── itemcombiner.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── ItemCombinerConfig.java │ │ └── ItemCombinerPlugin.java │ ├── JadAutoPrayers │ ├── jadautoprayers.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── JadAutoPrayersConfig.java │ │ └── JadAutoPrayersPlugin.java │ ├── OneTickSwitcher │ ├── onetickswitcher.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── OneTickSwitcherConfig.java │ │ └── OneTickSwitcherPlugin.java │ ├── PiggyUtils │ ├── piggyutils.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── API │ │ ├── BankUtil.java │ │ ├── EquipmentUtil.java │ │ ├── InventoryUtil.java │ │ ├── NpcUtil.java │ │ ├── ObjectUtil.java │ │ ├── PrayerUtil.java │ │ ├── SpellUtil.java │ │ └── TileItemUtil.java │ │ ├── BreakHandler │ │ └── ReflectBreakHandler.java │ │ ├── PiggyUtilsPlugin.java │ │ └── RLApi │ │ └── GraphicIDExtended.java │ ├── PowerSkiller │ ├── powerskiller.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── PowerSkillerConfig.java │ │ ├── PowerSkillerPlugin.java │ │ └── State.java │ ├── PrayAgainstPlayer │ ├── prayagainstplayer.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── PlayerContainer.java │ │ ├── PrayAgainstPlayerConfig.java │ │ ├── PrayAgainstPlayerOverlay.java │ │ ├── PrayAgainstPlayerOverlayPrayerTab.java │ │ ├── PrayAgainstPlayerPlugin.java │ │ └── WeaponType.java │ ├── README.md │ ├── RooftopAgility │ ├── rooftopagility.gradle.kts │ └── src │ │ └── main │ │ ├── Piggy-Converted │ │ ├── .gitignore │ │ └── build.gradle.kts │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── Course.java │ │ ├── Obstacles.java │ │ ├── Portals.java │ │ ├── RooftopAgilityConfig.java │ │ ├── RooftopAgilityOverlay.java │ │ ├── RooftopAgilityPlugin.java │ │ └── State.java │ ├── SixHourLog │ ├── sixhourlog.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ └── SixHourLogPlugin.java │ ├── SpeedDartMaker │ ├── speeddartmaker.gradle.kts │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── plugins │ │ ├── SpeedDartMakerConfig.java │ │ └── SpeedDartMakerPlugin.java │ ├── build.gradle.kts │ ├── buildSrc │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ ├── BootstrapPlugin.kt │ │ ├── BootstrapTask.kt │ │ ├── Dependencies.kt │ │ ├── JsonBuilder.kt │ │ ├── Project.kt │ │ ├── SemVer.kt │ │ ├── VersionPlugin.kt │ │ ├── VersionTask.kt │ │ └── VersionsTask.kt │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── LICENSE └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # BlueJ files 8 | *.ctxt 9 | 10 | # Mobile Tools for Java (J2ME) 11 | .mtj.tmp/ 12 | 13 | # Package Files # 14 | *.jar 15 | *.war 16 | *.nar 17 | *.ear 18 | *.zip 19 | *.tar.gz 20 | *.rar 21 | 22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 23 | hs_err_pid* 24 | replay_pid* 25 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/LEECH.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | 29 | 30 | 34 | 35 | -------------------------------------------------------------------------------- /.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/modules/AoeWarn/Piggy-Converted.AoeWarn.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/AutoJugHumidifier/Piggy-Converted.AutoJugHumidifier.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/AutoRifts/Piggy-Converted.AutoRifts.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/AutoTele/EV-Converted.AutoTele.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/CalvarionHelper/EV-Converted.CalvarionHelper.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/CannonReloader/Piggy-Converted.CannonReloader.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/DeveloperTools/EV-Converted.DeveloperTools.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/E3t4g/EV-Converted.E3t4g.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/EthanApi/EV-Converted.EthanApi.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/EthanApi/Piggy-Converted.EthanApi.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/Example/EV-Converted.Example.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/GauntletFlicker/EV-Converted.GauntletFlicker.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/Harpoon2Ticker/EV-Converted.Harpoon2Ticker.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/HerbCleaner/Piggy-Converted.HerbCleaner.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/ItemCombiner/Piggy-Converted.ItemCombiner.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/JadAutoPrayers/Piggy-Converted.JadAutoPrayers.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/LavaRunecrafter/EV-Converted.LavaRunecrafter.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/NightmareHelper/EV-Converted.NightmareHelper.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/OneTickSwitcher/Piggy-Converted.OneTickSwitcher.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/PathingTesting/EV-Converted.PathingTesting.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/PiggyUtils/Piggy-Converted.PiggyUtils.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/PowerSkiller/Piggy-Converted.PowerSkiller.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/PrayAgainstPlayer/Piggy-Converted.PrayAgainstPlayer.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/PrayerFlicker/EV-Converted.PrayerFlicker.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/RooftopAgility/Piggy-Converted.RooftopAgility.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/RunEnabler/EV-Converted.RunEnabler.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/SixHourLog/Piggy-Converted.SixHourLog.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/SpeedDartMaker/Piggy-Converted.SpeedDartMaker.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/Superglass/EV-Converted.Superglass.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/modules/Upkeep/EV-Converted.Upkeep.main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | build/ 3 | !gradle/wrapper/gradle-wrapper.jar 4 | !**/src/main/**/build/ 5 | !**/src/test/**/build/ 6 | 7 | ### IntelliJ IDEA ### 8 | .idea/modules.xml 9 | .idea/jarRepositories.xml 10 | .idea/compiler.xml 11 | .idea/libraries/ 12 | *.iws 13 | *.iml 14 | *.ipr 15 | out/ 16 | !**/src/main/**/out/ 17 | !**/src/test/**/out/ 18 | 19 | ### Eclipse ### 20 | .apt_generated 21 | .classpath 22 | .factorypath 23 | .project 24 | .settings 25 | .springBeans 26 | .sts4-cache 27 | bin/ 28 | !**/src/main/**/bin/ 29 | !**/src/test/**/bin/ 30 | 31 | ### NetBeans ### 32 | /nbproject/private/ 33 | /nbbuild/ 34 | /dist/ 35 | /nbdist/ 36 | /.nb-gradle/ 37 | 38 | ### VS Code ### 39 | .vscode/ 40 | 41 | ### Mac OS ### 42 | .DS_Store -------------------------------------------------------------------------------- /Conversions/EV-Converted/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/.idea/.name: -------------------------------------------------------------------------------- 1 | EthanVann-Plugins -------------------------------------------------------------------------------- /Conversions/EV-Converted/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 47 | 48 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/AutoTele/autotele.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Auto Teleport Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "AutoTele" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "AutoTelePlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/AutoTele/src/main/java/com/plugins/AutoTeleConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | 7 | @ConfigGroup("AutoTele") 8 | public interface AutoTeleConfig extends Config { 9 | @ConfigItem( 10 | keyName = "combatrange", 11 | name = "combat range only", 12 | description = "When checked you will only teleport from players able to attack you" 13 | ) 14 | default boolean combatrange() { 15 | return true; 16 | } 17 | 18 | @ConfigItem( 19 | keyName = "notify", 20 | name = "chat notification on enter wilderness?", 21 | description = "When enabled the plugin will tell you if you brought a teleport item or not when entering " + 22 | "the wilderness" 23 | ) 24 | default boolean alert() { 25 | return true; 26 | } 27 | // @ConfigItem( 28 | // keyName = "mage bonus failsafe", 29 | // name = "override weapon filter for enemies with positive mage bonus", 30 | // description = "When enabled the plugin will still tele from people with weaponfilter weapons if they have" + 31 | // " positive mage bonus" 32 | // ) 33 | // default boolean mageFilter() 34 | // { 35 | // return false; 36 | // } 37 | // @ConfigItem( 38 | // keyName = "weaponFilter", 39 | // name = "dont tele from enemies with these weapons", 40 | // description = "Values are a comma seperated list of ids or names, including wildcards, e.g 513,rune " + "pickaxe,dragon*" 41 | // ) 42 | // default String weaponFilter() 43 | // { 44 | // return ""; 45 | // } 46 | } 47 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/CalvarionHelper/calvarionhelper.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Calvarion Helper Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "CalvarionHelper" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "CalvarionHelperPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/CalvarionHelper/src/main/java/com/plugins/CalvarionHelperConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Alpha; 4 | import net.runelite.client.config.Config; 5 | import net.runelite.client.config.ConfigGroup; 6 | import net.runelite.client.config.ConfigItem; 7 | 8 | import java.awt.*; 9 | 10 | @ConfigGroup("Calvarion") 11 | public interface CalvarionHelperConfig extends Config { 12 | @ConfigItem( 13 | keyName = "lightning", 14 | name = "lightning colour", 15 | description = "" 16 | ) 17 | default Color lightning() { 18 | return Color.RED; 19 | } 20 | 21 | @ConfigItem( 22 | keyName = "swing", 23 | name = "swing colour", 24 | description = "" 25 | ) 26 | default Color swing() { 27 | return Color.BLUE; 28 | } 29 | 30 | @ConfigItem( 31 | keyName = "lightningFill", 32 | name = "lightning fill colour", 33 | description = "" 34 | ) 35 | @Alpha 36 | default Color lightningFill() { 37 | return new Color(0, 0, 0, 50); 38 | } 39 | 40 | @Alpha 41 | @ConfigItem( 42 | keyName = "swingFill", 43 | name = "swing fill colour", 44 | description = "" 45 | ) 46 | default Color swingFill() { 47 | return new Color(0, 0, 0, 50); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/CalvarionHelper/src/main/java/com/plugins/CalvarionHelperOverlay.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.api.Client; 4 | import net.runelite.api.Perspective; 5 | import net.runelite.api.coords.LocalPoint; 6 | import net.runelite.client.ui.overlay.Overlay; 7 | import net.runelite.client.ui.overlay.OverlayLayer; 8 | import net.runelite.client.ui.overlay.OverlayPosition; 9 | import net.runelite.client.ui.overlay.OverlayUtil; 10 | 11 | import java.awt.*; 12 | import java.awt.geom.Area; 13 | import java.util.concurrent.atomic.AtomicReference; 14 | 15 | 16 | public class CalvarionHelperOverlay extends Overlay { 17 | CalvarionHelperPlugin plugin; 18 | Client client; 19 | 20 | CalvarionHelperOverlay(Client client, CalvarionHelperPlugin plugin) { 21 | this.plugin = plugin; 22 | this.client = client; 23 | setPosition(OverlayPosition.DYNAMIC); 24 | setLayer(OverlayLayer.ABOVE_SCENE); 25 | 26 | } 27 | 28 | @Override 29 | public Dimension render(Graphics2D graphics) { 30 | //spiderlingTiles 31 | plugin.lightning.forEach((lightningTile, i) -> 32 | { 33 | if (lightningTile == null) { 34 | return; 35 | } 36 | renderArea(graphics, LocalPoint.fromWorld(client, lightningTile), plugin.config.lightning(), 1, plugin.config.lightningFill()); 37 | }); 38 | AtomicReference area = new AtomicReference<>(); 39 | plugin.swing.forEach((swingTile, i) -> 40 | { 41 | if (swingTile == null) { 42 | return; 43 | } 44 | OverlayUtil.renderPolygon(graphics, Perspective.getCanvasTilePoly(client, LocalPoint.fromWorld(client, 45 | swingTile)), plugin.config.swing(), plugin.config.swingFill(), new BasicStroke((float) 1)); 46 | }); 47 | return null; 48 | } 49 | 50 | private void renderArea(final Graphics2D graphics, final LocalPoint dest, final Color color, 51 | final double borderWidth, final Color fillColor) { 52 | if (dest == null) { 53 | return; 54 | } 55 | 56 | final Polygon poly = Perspective.getCanvasTileAreaPoly(client, dest, 3); 57 | 58 | if (poly == null) { 59 | return; 60 | } 61 | OverlayUtil.renderPolygon(graphics, poly, color, fillColor, new BasicStroke((float) borderWidth)); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/CalvarionHelper/src/main/java/com/plugins/CalvarionHelperPlugin.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import com.google.inject.Inject; 4 | import com.google.inject.Provides; 5 | import net.runelite.api.Client; 6 | import net.runelite.api.coords.WorldPoint; 7 | import net.runelite.api.events.GameTick; 8 | import net.runelite.api.events.GraphicsObjectCreated; 9 | import net.runelite.client.config.ConfigManager; 10 | import net.runelite.client.eventbus.Subscribe; 11 | import net.runelite.client.plugins.Plugin; 12 | import net.runelite.client.plugins.PluginDescriptor; 13 | import net.runelite.client.ui.overlay.OverlayManager; 14 | 15 | import java.util.HashMap; 16 | 17 | @PluginDescriptor( 18 | name = "CalvarionHelper", 19 | enabledByDefault = false, 20 | tags = {"ethan"} 21 | ) 22 | public class CalvarionHelperPlugin extends Plugin { 23 | @Inject 24 | Client client; 25 | @Inject 26 | OverlayManager overlayManager; 27 | @Inject 28 | CalvarionHelperConfig config; 29 | HashMap lightning = new HashMap<>(); 30 | HashMap swing = new HashMap<>(); 31 | CalvarionHelperOverlay overlay; 32 | 33 | @Provides 34 | public CalvarionHelperConfig getConfig(ConfigManager configManager) { 35 | return configManager.getConfig(CalvarionHelperConfig.class); 36 | } 37 | 38 | @Override 39 | protected void startUp() throws Exception { 40 | overlay = new CalvarionHelperOverlay(client, this); 41 | overlayManager.add(overlay); 42 | } 43 | 44 | @Subscribe 45 | public void onGameTick(GameTick e) { 46 | lightning.forEach((k, v) -> lightning.put(k, v - 1)); 47 | lightning.entrySet().removeIf(entry -> entry.getValue() <= 0); 48 | swing.forEach((k, v) -> swing.put(k, v - 1)); 49 | swing.entrySet().removeIf(entry -> entry.getValue() <= 0); 50 | } 51 | 52 | @Override 53 | protected void shutDown() throws Exception { 54 | overlayManager.remove(overlay); 55 | } 56 | 57 | @Subscribe 58 | public void onGraphicsObjectCreated(GraphicsObjectCreated e) { 59 | if (e.getGraphicsObject().getId() == 2346 || e.getGraphicsObject().getId() == 2347) { 60 | lightning.put(WorldPoint.fromLocal(client, e.getGraphicsObject().getLocation()), 4); 61 | return; 62 | } 63 | if (e.getGraphicsObject().getId() == 1446) { 64 | swing.put(WorldPoint.fromLocal(client, e.getGraphicsObject().getLocation()), 4); 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/developertools.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Developer Tools" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "Revamped Developer Tools - Cago" // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "DeveloperTools" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "DevToolsPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | } 10 | tasks { 11 | jar { 12 | manifest { 13 | attributes(mapOf( 14 | "Plugin-Version" to project.version, 15 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 16 | "Plugin-Provider" to project.extra["PluginProvider"], 17 | "Plugin-Description" to project.extra["PluginDescription"], 18 | "Plugin-License" to project.extra["PluginLicense"] 19 | )) 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/main/java/com/plugins/DevToolsConfig.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 Abex 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | package com.plugins; 26 | 27 | import net.runelite.client.config.Config; 28 | import net.runelite.client.config.ConfigGroup; 29 | import net.runelite.client.config.ConfigItem; 30 | 31 | @ConfigGroup("devtools") 32 | public interface DevToolsConfig extends Config 33 | { 34 | @ConfigItem( 35 | keyName = "inspectorAlwaysOnTop", 36 | name = "", 37 | description = "", 38 | hidden = true 39 | ) 40 | default boolean inspectorAlwaysOnTop() 41 | { 42 | return false; 43 | } 44 | 45 | @ConfigItem( 46 | keyName = "inspectorAlwaysOnTop", 47 | name = "", 48 | description = "" 49 | ) 50 | void inspectorAlwaysOnTop(boolean value); 51 | } 52 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/main/java/com/plugins/children/DevToolsButton.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018, Tomas Slusny 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | package com.plugins.children; 26 | 27 | import java.awt.Color; 28 | import javax.swing.JButton; 29 | import lombok.Getter; 30 | 31 | public class DevToolsButton extends JButton 32 | { 33 | @Getter 34 | private boolean active; 35 | 36 | public DevToolsButton(String title) 37 | { 38 | super(title); 39 | addActionListener((ev) -> setActive(!active)); 40 | this.setToolTipText(title); 41 | } 42 | 43 | void setActive(boolean active) 44 | { 45 | this.active = active; 46 | 47 | if (active) 48 | { 49 | setBackground(Color.GREEN); 50 | } 51 | else 52 | { 53 | setBackground(null); 54 | } 55 | } 56 | 57 | void addFrame(DevToolsFrame frame) 58 | { 59 | frame.setDevToolsButton(this); 60 | addActionListener(ev -> 61 | { 62 | if (isActive()) 63 | { 64 | frame.close(); 65 | } 66 | else 67 | { 68 | frame.open(); 69 | } 70 | }); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/main/java/com/plugins/children/DevToolsFrame.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2021 Abex 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | package com.plugins.children; 26 | 27 | import java.awt.event.WindowAdapter; 28 | import java.awt.event.WindowEvent; 29 | import javax.swing.JFrame; 30 | import lombok.AccessLevel; 31 | import lombok.Setter; 32 | import net.runelite.client.ui.ClientUI; 33 | 34 | public class DevToolsFrame extends JFrame 35 | { 36 | @Setter(AccessLevel.MODULE) 37 | protected DevToolsButton devToolsButton; 38 | 39 | public DevToolsFrame() 40 | { 41 | setIconImage(ClientUI.ICON); 42 | 43 | setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 44 | addWindowListener(new WindowAdapter() 45 | { 46 | @Override 47 | public void windowClosing(WindowEvent e) 48 | { 49 | close(); 50 | if(devToolsButton != null) { 51 | devToolsButton.setSelected(false); 52 | } 53 | 54 | } 55 | }); 56 | } 57 | 58 | public void open() 59 | { 60 | setVisible(true); 61 | toFront(); 62 | repaint(); 63 | } 64 | 65 | public void close() 66 | { 67 | setVisible(false); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/main/java/com/plugins/children/ShellFrame.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2021 Abex 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | package com.plugins.children; 26 | 27 | import java.util.concurrent.ScheduledExecutorService; 28 | import javax.inject.Inject; 29 | import javax.inject.Singleton; 30 | import net.runelite.client.RuneLite; 31 | import net.runelite.client.callback.ClientThread; 32 | import net.runelite.jshell.ShellPanel; 33 | 34 | @Singleton 35 | class ShellFrame extends DevToolsFrame 36 | { 37 | private final ShellPanel shellPanel; 38 | 39 | @Inject 40 | ShellFrame(ClientThread clientThread, ScheduledExecutorService executor) 41 | { 42 | this.shellPanel = new ShellPanel(executor) 43 | { 44 | @Override 45 | protected void invokeOnClientThread(Runnable r) 46 | { 47 | clientThread.invoke(r); 48 | } 49 | }; 50 | setContentPane(shellPanel); 51 | 52 | setTitle("RuneLite Shell"); 53 | 54 | pack(); 55 | } 56 | 57 | @Override 58 | public void open() 59 | { 60 | shellPanel.switchContext(RuneLite.getInjector()); 61 | super.open(); 62 | } 63 | 64 | @Override 65 | public void close() 66 | { 67 | super.close(); 68 | shellPanel.freeContext(); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/main/java/com/plugins/utils/InventoryItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, TheStonedTurtle 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | package com.plugins.utils; 26 | 27 | import lombok.AllArgsConstructor; 28 | import lombok.Data; 29 | import net.runelite.api.Item; 30 | 31 | @Data 32 | @AllArgsConstructor 33 | public class InventoryItem 34 | { 35 | private final int slot; 36 | private Item item; 37 | private final String name; 38 | private final boolean stackable; 39 | } 40 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/main/java/com/plugins/utils/InventoryLog.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, TheStonedTurtle 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | package com.plugins.utils; 26 | 27 | import javax.annotation.Nullable; 28 | import lombok.Value; 29 | import net.runelite.api.Item; 30 | 31 | @Value 32 | class InventoryLog 33 | { 34 | int containerId; 35 | @Nullable 36 | String containerName; 37 | Item[] items; 38 | int tick; 39 | } 40 | 41 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/main/java/com/plugins/utils/InventoryLogNode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, TheStonedTurtle 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | package com.plugins.utils; 26 | 27 | import javax.swing.tree.DefaultMutableTreeNode; 28 | import lombok.Getter; 29 | 30 | @Getter 31 | public class InventoryLogNode extends DefaultMutableTreeNode 32 | { 33 | private final InventoryLog log; 34 | 35 | InventoryLogNode(final InventoryLog log) 36 | { 37 | super(); 38 | 39 | this.log = log; 40 | } 41 | 42 | @Override 43 | public String toString() 44 | { 45 | return "Tick: " + log.getTick(); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/main/java/com/plugins/utils/InventoryTreeNode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, TheStonedTurtle 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | package com.plugins.utils; 26 | 27 | import javax.annotation.Nullable; 28 | import javax.swing.tree.DefaultMutableTreeNode; 29 | import lombok.Getter; 30 | 31 | @Getter 32 | class InventoryTreeNode extends DefaultMutableTreeNode 33 | { 34 | final int id; 35 | @Nullable 36 | final String name; 37 | 38 | InventoryTreeNode(final int id, @Nullable final String name) 39 | { 40 | super(); 41 | 42 | this.id = id; 43 | this.name = name; 44 | } 45 | 46 | @Override 47 | public String toString() 48 | { 49 | return id + (name == null ? "" : " - " + name); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/main/java/com/plugins/widgets/WidgetTreeNode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017, Adam 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | package com.plugins.widgets; 26 | 27 | import javax.swing.tree.DefaultMutableTreeNode; 28 | import net.runelite.api.widgets.Widget; 29 | 30 | class WidgetTreeNode extends DefaultMutableTreeNode 31 | { 32 | private final String type; 33 | 34 | public WidgetTreeNode(String type, Widget widget) 35 | { 36 | super(widget); 37 | this.type = type; 38 | } 39 | 40 | public Widget getWidget() 41 | { 42 | return (Widget) getUserObject(); 43 | } 44 | 45 | @Override 46 | public String toString() 47 | { 48 | return type + " " + WidgetInspector.getWidgetIdentifier(getWidget()); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/main/resources/devtools_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/EV-Converted/DeveloperTools/src/main/resources/devtools_icon.png -------------------------------------------------------------------------------- /Conversions/EV-Converted/DeveloperTools/src/test/java/DeveloperToolsTest.java: -------------------------------------------------------------------------------- 1 | 2 | import com.plugins.DevToolsPlugin; 3 | import com.plugins.EthanApiPlugin; 4 | import com.plugins.PacketUtilsPlugin; 5 | import net.runelite.client.RuneLite; 6 | import net.runelite.client.externalplugins.ExternalPluginManager; 7 | 8 | public class DeveloperToolsTest 9 | { 10 | public static void main(String[] args) throws Exception 11 | { 12 | ExternalPluginManager.loadBuiltin(DevToolsPlugin.class, EthanApiPlugin.class, PacketUtilsPlugin.class); 13 | RuneLite.main(args); 14 | } 15 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/E3t4g/e3t4g.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "3T Granite Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "E3t4g" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "e3t4gPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/ethanapi.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "EthanAPI Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "EthanApi" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "EthanApiPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation("org.roaringbitmap:RoaringBitmap:0.9.44") 9 | implementation("de.jflex:jflex:1.8.2") 10 | implementation("com.fifesoft:rsyntaxtextarea:3.1.1") 11 | implementation("com.fifesoft:autocomplete:2.6.1") 12 | implementation("com.fifesoft.rtext:rtext:2.0.7") 13 | } 14 | tasks { 15 | jar { 16 | manifest { 17 | attributes(mapOf( 18 | "Plugin-Version" to project.version, 19 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 20 | "Plugin-Provider" to project.extra["PluginProvider"], 21 | "Plugin-Description" to project.extra["PluginDescription"], 22 | "Plugin-License" to project.extra["PluginLicense"] 23 | )) 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Collections/ETileItem.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Collections; 2 | 3 | import com.plugins.Packets.MousePackets; 4 | import com.plugins.Packets.TileItemPackets; 5 | import net.runelite.api.TileItem; 6 | import net.runelite.api.coords.WorldPoint; 7 | 8 | public class ETileItem { 9 | public WorldPoint location; 10 | public TileItem tileItem; 11 | 12 | public ETileItem(WorldPoint worldLocation, TileItem tileItem) { 13 | this.location = worldLocation; 14 | this.tileItem = tileItem; 15 | } 16 | 17 | public WorldPoint getLocation() { 18 | return location; 19 | } 20 | 21 | public TileItem getTileItem() { 22 | return tileItem; 23 | } 24 | 25 | public void interact(boolean ctrlDown) { 26 | MousePackets.queueClickPacket(); 27 | TileItemPackets.queueTileItemAction(this, ctrlDown); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Collections/Inventory.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Collections; 2 | 3 | import com.plugins.Collections.query.ItemQuery; 4 | import net.runelite.api.Client; 5 | import net.runelite.api.GameState; 6 | import net.runelite.api.events.GameStateChanged; 7 | import net.runelite.api.events.ItemContainerChanged; 8 | import net.runelite.api.widgets.Widget; 9 | import net.runelite.api.widgets.WidgetInfo; 10 | import net.runelite.client.RuneLite; 11 | import net.runelite.client.eventbus.Subscribe; 12 | 13 | import java.util.ArrayList; 14 | import java.util.Arrays; 15 | import java.util.List; 16 | import java.util.Objects; 17 | import java.util.stream.Collectors; 18 | 19 | public class Inventory { 20 | static Client client = RuneLite.getInjector().getInstance(Client.class); 21 | static List inventoryItems = new ArrayList<>(); 22 | 23 | public static ItemQuery search() { 24 | return new ItemQuery(inventoryItems); 25 | } 26 | 27 | public static int getEmptySlots() { 28 | return 28 - search().result().size(); 29 | } 30 | public static boolean full(){ 31 | return getEmptySlots()==0; 32 | } 33 | 34 | public static int getItemAmount(int itemId) { 35 | return search().withId(itemId).result().size(); 36 | } 37 | 38 | public static int getItemAmount(String itemName) { 39 | return search().withName(itemName).result().size(); 40 | } 41 | 42 | @Subscribe 43 | public void onItemContainerChanged(ItemContainerChanged e) { 44 | client.runScript(6009, 9764864, 28, 1, -1); 45 | if (e.getContainerId() == 93) { 46 | Inventory.inventoryItems = 47 | Arrays.stream(client.getWidget(WidgetInfo.INVENTORY).getDynamicChildren()).filter(Objects::nonNull).filter(x -> x.getItemId() != 6512 && x.getItemId() != -1).collect(Collectors.toList()); 48 | } 49 | } 50 | 51 | @Subscribe 52 | public void onGameStateChanged(GameStateChanged gameStateChanged) { 53 | if (gameStateChanged.getGameState() == GameState.HOPPING || gameStateChanged.getGameState() == GameState.LOGIN_SCREEN || gameStateChanged.getGameState() == GameState.CONNECTION_LOST) { 54 | Inventory.inventoryItems.clear(); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Collections/NPCs.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Collections; 2 | 3 | import com.plugins.Collections.query.NPCQuery; 4 | import net.runelite.api.Client; 5 | import net.runelite.api.NPC; 6 | import net.runelite.api.events.GameTick; 7 | import net.runelite.client.RuneLite; 8 | import net.runelite.client.eventbus.Subscribe; 9 | 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | 13 | public class NPCs { 14 | static Client client = RuneLite.getInjector().getInstance(Client.class); 15 | private static final List npcList = new ArrayList<>(); 16 | 17 | public static NPCQuery search() { 18 | return new NPCQuery(npcList); 19 | } 20 | 21 | @Subscribe(priority = 10000) 22 | public void onGameTick(GameTick e) { 23 | npcList.clear(); 24 | for (NPC npc : client.getNpcs()) { 25 | if (npc == null) 26 | continue; 27 | if (npc.getId() == -1) 28 | continue; 29 | npcList.add(npc); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Collections/Players.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Collections; 2 | 3 | import com.plugins.Collections.query.PlayerQuery; 4 | import net.runelite.api.Client; 5 | import net.runelite.api.Player; 6 | import net.runelite.api.events.GameTick; 7 | import net.runelite.client.RuneLite; 8 | import net.runelite.client.eventbus.Subscribe; 9 | 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | 13 | public class Players { 14 | static List players = new ArrayList<>(); 15 | static Client client = RuneLite.getInjector().getInstance(Client.class); 16 | 17 | public static PlayerQuery search() { 18 | return new PlayerQuery(players); 19 | } 20 | 21 | @Subscribe 22 | public void onGameTick(GameTick e) { 23 | players.clear(); 24 | for (Player player : client.getPlayers()) { 25 | if (player == null) 26 | continue; 27 | players.add(player); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Collections/TileItems.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Collections; 2 | 3 | import com.plugins.Collections.query.TileItemQuery; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | public class TileItems { 9 | public static List tileItems = new ArrayList<>(); 10 | 11 | public static TileItemQuery search() { 12 | return new TileItemQuery(tileItems); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Collections/query/QuickPrayer.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Collections.query; 2 | 3 | public enum QuickPrayer { 4 | THICK_SKIN(0), 5 | BURST_OF_STRENGTH(1), 6 | CLARITY_OF_THOUGHT(2), 7 | SHARP_EYE(18), 8 | MYSTIC_WILL(19), 9 | ROCK_SKIN(3), 10 | SUPERHUMAN_STRENGTH(4), 11 | IMPROVED_REFLEXES(5), 12 | RAPID_RESTORE(6), 13 | RAPID_HEAL(7), 14 | PROTECT_ITEM(8), 15 | HAWK_EYE(20), 16 | MYSTIC_LORE(21), 17 | STEEL_SKIN(9), 18 | ULTIMATE_STRENGTH(10), 19 | INCREDIBLE_REFLEXES(11), 20 | PROTECT_FROM_MAGIC(12), 21 | PROTECT_FROM_MISSILES(13), 22 | PROTECT_FROM_MELEE(14), 23 | EAGLE_EYE(22), 24 | MYSTIC_MIGHT(23), 25 | RETRIBUTION(15), 26 | REDEMPTION(16), 27 | SMITE(17), 28 | PRESERVE(28), 29 | CHIVALRY(25), 30 | PIETY(26), 31 | RIGOUR(24), 32 | AUGURY(27); 33 | private final int index; 34 | private int varbit; 35 | 36 | QuickPrayer(int index) { 37 | this.varbit = varbit; 38 | this.index = index; 39 | } 40 | 41 | public int getIndex() { 42 | return index; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/BankInventoryInteraction.java: -------------------------------------------------------------------------------- 1 | package com.plugins.InteractionApi; 2 | 3 | import com.plugins.Collections.BankInventory; 4 | import com.plugins.Packets.MousePackets; 5 | import com.plugins.Packets.WidgetPackets; 6 | import net.runelite.api.widgets.Widget; 7 | 8 | import java.util.Optional; 9 | import java.util.function.Predicate; 10 | 11 | public class BankInventoryInteraction { 12 | public static boolean useItem(String name, String... actions) { 13 | return BankInventory.search().withName(name).first().flatMap(item -> 14 | { 15 | MousePackets.queueClickPacket(); 16 | WidgetPackets.queueWidgetAction(item, actions); 17 | return Optional.of(true); 18 | }).orElse(false); 19 | } 20 | 21 | public static boolean useItem(int id, String... actions) { 22 | return BankInventory.search().withId(id).first().flatMap(item -> 23 | { 24 | MousePackets.queueClickPacket(); 25 | WidgetPackets.queueWidgetAction(item, actions); 26 | return Optional.of(true); 27 | }).orElse(false); 28 | } 29 | 30 | public static boolean useItem(Predicate predicate, String... actions) { 31 | return BankInventory.search().filter(predicate).first().flatMap(item -> 32 | { 33 | MousePackets.queueClickPacket(); 34 | WidgetPackets.queueWidgetAction(item, actions); 35 | return Optional.of(true); 36 | }).orElse(false); 37 | } 38 | 39 | public static boolean useItemIndex(int index, String... actions) { 40 | return BankInventory.search().indexIs(index).first().flatMap(item -> 41 | { 42 | MousePackets.queueClickPacket(); 43 | WidgetPackets.queueWidgetAction(item, actions); 44 | return Optional.of(true); 45 | }).orElse(false); 46 | } 47 | 48 | public static boolean useItem(Widget item, String... actions) { 49 | if (item == null) { 50 | return false; 51 | } 52 | MousePackets.queueClickPacket(); 53 | WidgetPackets.queueWidgetAction(item, actions); 54 | return true; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/InteractionHelper.java: -------------------------------------------------------------------------------- 1 | package com.plugins.InteractionApi; 2 | 3 | import com.plugins.Packets.MousePackets; 4 | import com.plugins.Packets.WidgetPackets; 5 | import net.runelite.api.widgets.WidgetInfo; 6 | 7 | import java.util.List; 8 | 9 | public class InteractionHelper { 10 | static private final int quickPrayerWidgetID = WidgetInfo.MINIMAP_QUICK_PRAYER_ORB.getPackedId(); 11 | 12 | public static void toggleNormalPrayer(int packedWidgID) { 13 | MousePackets.queueClickPacket(); 14 | WidgetPackets.queueWidgetActionPacket(1, packedWidgID, -1, -1); 15 | } 16 | 17 | 18 | public static void toggleNormalPrayers(List packedWidgIDs) { 19 | for (Integer packedWidgID : packedWidgIDs) { 20 | MousePackets.queueClickPacket(); 21 | WidgetPackets.queueWidgetActionPacket(1, packedWidgID, -1, -1); 22 | } 23 | } 24 | 25 | public static void togglePrayer() { 26 | MousePackets.queueClickPacket(0, 0); 27 | WidgetPackets.queueWidgetActionPacket(1, quickPrayerWidgetID, -1, -1); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/InventoryInteraction.java: -------------------------------------------------------------------------------- 1 | package com.plugins.InteractionApi; 2 | 3 | import com.plugins.Collections.Inventory; 4 | import com.plugins.Packets.MousePackets; 5 | import com.plugins.Packets.WidgetPackets; 6 | import net.runelite.api.widgets.Widget; 7 | 8 | import java.util.Optional; 9 | import java.util.Set; 10 | import java.util.function.Predicate; 11 | 12 | public class InventoryInteraction { 13 | public static boolean useItem(String name, String... actions) { 14 | return Inventory.search().withName(name).first().flatMap(item -> 15 | { 16 | MousePackets.queueClickPacket(); 17 | WidgetPackets.queueWidgetAction(item, actions); 18 | return Optional.of(true); 19 | }).orElse(false); 20 | } 21 | 22 | public static boolean useItem(int id, String... actions) { 23 | return Inventory.search().withId(id).first().flatMap(item -> 24 | { 25 | MousePackets.queueClickPacket(); 26 | WidgetPackets.queueWidgetAction(item, actions); 27 | return Optional.of(true); 28 | }).orElse(false); 29 | } 30 | 31 | public static boolean useItem(Set id, String... actions) { 32 | return Inventory.search().withSet(id).first().flatMap(item -> 33 | { 34 | MousePackets.queueClickPacket(); 35 | WidgetPackets.queueWidgetAction(item, actions); 36 | return Optional.of(true); 37 | }).orElse(false); 38 | } 39 | 40 | public static boolean useItem(Predicate predicate, String... actions) { 41 | return Inventory.search().filter(predicate).first().flatMap(item -> 42 | { 43 | MousePackets.queueClickPacket(); 44 | WidgetPackets.queueWidgetAction(item, actions); 45 | return Optional.of(true); 46 | }).orElse(false); 47 | } 48 | 49 | public static boolean useItemIndex(int index, String... actions) { 50 | return Inventory.search().indexIs(index).first().flatMap(item -> 51 | { 52 | MousePackets.queueClickPacket(); 53 | WidgetPackets.queueWidgetAction(item, actions); 54 | return Optional.of(true); 55 | }).orElse(false); 56 | } 57 | 58 | public static boolean useItem(Widget item, String... actions) { 59 | if (item == null) { 60 | return false; 61 | } 62 | MousePackets.queueClickPacket(); 63 | WidgetPackets.queueWidgetAction(item, actions); 64 | return true; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/NPCInteraction.java: -------------------------------------------------------------------------------- 1 | package com.plugins.InteractionApi; 2 | 3 | import com.plugins.Collections.NPCs; 4 | import com.plugins.Collections.query.NPCQuery; 5 | import com.plugins.Packets.MousePackets; 6 | import com.plugins.Packets.NPCPackets; 7 | import net.runelite.api.NPC; 8 | import net.runelite.api.NPCComposition; 9 | 10 | import java.util.Optional; 11 | import java.util.function.Predicate; 12 | 13 | public class NPCInteraction { 14 | public static boolean interact(String name, String... actions) { 15 | return NPCs.search().withName(name).first().flatMap(npc -> 16 | { 17 | MousePackets.queueClickPacket(); 18 | NPCPackets.queueNPCAction(npc, actions); 19 | return Optional.of(true); 20 | }).orElse(false); 21 | } 22 | 23 | public static boolean interact(int id, String... actions) { 24 | return NPCs.search().withId(id).first().flatMap(npc -> 25 | { 26 | MousePackets.queueClickPacket(); 27 | NPCPackets.queueNPCAction(npc, actions); 28 | return Optional.of(true); 29 | }).orElse(false); 30 | } 31 | 32 | public static boolean interact(Predicate predicate, String... actions) { 33 | return NPCs.search().filter(predicate).first().flatMap(npc -> 34 | { 35 | MousePackets.queueClickPacket(); 36 | NPCPackets.queueNPCAction(npc, actions); 37 | return Optional.of(true); 38 | }).orElse(false); 39 | } 40 | 41 | public static boolean interactIndex(int index, String... actions) { 42 | return NPCs.search().indexIs(index).first().flatMap(npc -> 43 | { 44 | MousePackets.queueClickPacket(); 45 | NPCPackets.queueNPCAction(npc, actions); 46 | return Optional.of(true); 47 | }).orElse(false); 48 | } 49 | 50 | public static boolean interact(NPC npc, String... actions) { 51 | if (npc == null) { 52 | return false; 53 | } 54 | NPCComposition comp = NPCQuery.getNPCComposition(npc); 55 | if (comp == null) { 56 | return false; 57 | } 58 | MousePackets.queueClickPacket(); 59 | NPCPackets.queueNPCAction(npc, actions); 60 | return true; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/PlayerInteractionHelper.java: -------------------------------------------------------------------------------- 1 | package com.plugins.InteractionApi; 2 | 3 | import com.plugins.Collections.Players; 4 | import com.plugins.Packets.MousePackets; 5 | import com.plugins.Packets.PlayerPackets; 6 | import net.runelite.api.Player; 7 | 8 | import java.util.Optional; 9 | import java.util.function.Predicate; 10 | 11 | public class PlayerInteractionHelper { 12 | public static boolean interact(Player player, String... actions) { 13 | if (player == null) { 14 | return false; 15 | } 16 | MousePackets.queueClickPacket(); 17 | PlayerPackets.queuePlayerAction(player, actions); 18 | return true; 19 | } 20 | 21 | public static boolean interact(String name, String... actions) { 22 | return Players.search().withName(name).first().flatMap(Player -> 23 | { 24 | MousePackets.queueClickPacket(); 25 | PlayerPackets.queuePlayerAction(Player, actions); 26 | return Optional.of(true); 27 | }).orElse(false); 28 | } 29 | 30 | public static boolean interact(Predicate predicate, String... actions) { 31 | return Players.search().filter(predicate).first().flatMap(Player -> 32 | { 33 | MousePackets.queueClickPacket(); 34 | PlayerPackets.queuePlayerAction(Player, actions); 35 | return Optional.of(true); 36 | }).orElse(false); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/TileObjectInteraction.java: -------------------------------------------------------------------------------- 1 | package com.plugins.InteractionApi; 2 | 3 | import com.plugins.Collections.TileObjects; 4 | import com.plugins.Collections.query.TileObjectQuery; 5 | import com.plugins.Packets.MousePackets; 6 | import com.plugins.Packets.ObjectPackets; 7 | import net.runelite.api.ObjectComposition; 8 | import net.runelite.api.TileObject; 9 | 10 | import java.util.Optional; 11 | 12 | public class TileObjectInteraction { 13 | 14 | 15 | public static boolean interact(String name, String... actions) { 16 | return TileObjects.search().withName(name).first().flatMap(tileObject -> 17 | { 18 | MousePackets.queueClickPacket(); 19 | ObjectPackets.queueObjectAction(tileObject, false, actions); 20 | return Optional.of(true); 21 | }).orElse(false); 22 | } 23 | 24 | public static boolean interact(int id, String... actions) { 25 | return TileObjects.search().withId(id).first().flatMap(tileObject -> 26 | { 27 | MousePackets.queueClickPacket(); 28 | ObjectPackets.queueObjectAction(tileObject, false, actions); 29 | return Optional.of(true); 30 | }).orElse(false); 31 | } 32 | 33 | public static boolean interact(TileObject tileObject, String... actions) { 34 | if (tileObject == null) { 35 | return false; 36 | } 37 | ObjectComposition comp = TileObjectQuery.getObjectComposition(tileObject); 38 | if (comp == null) { 39 | return false; 40 | } 41 | MousePackets.queueClickPacket(); 42 | ObjectPackets.queueObjectAction(tileObject, false, actions); 43 | return true; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Packets/MovementPackets.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Packets; 2 | 3 | 4 | import com.plugins.Packets.PacketUtils.PacketDef; 5 | import com.plugins.Packets.PacketUtils.PacketReflection; 6 | import net.runelite.api.coords.WorldPoint; 7 | 8 | public class MovementPackets { 9 | public static void queueMovement(int worldPointX, int worldPointY, boolean ctrlDown) { 10 | int ctrl = ctrlDown ? 2 : 0; 11 | PacketReflection.sendPacket(PacketDef.MOVE_GAMECLICK, worldPointX, worldPointY, ctrl, 5); 12 | } 13 | 14 | public static void queueMovement(WorldPoint location) { 15 | queueMovement(location.getX(), location.getY(), false); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/ObjectAndType.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Packets.PacketUtils; 2 | 3 | public class ObjectAndType { 4 | Object object; 5 | Class type; 6 | 7 | public ObjectAndType(Object object, Class type) { 8 | this.object = object; 9 | this.type = type; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/PacketType.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Packets.PacketUtils; 2 | 3 | public enum PacketType { 4 | RESUME_PAUSEBUTTON, 5 | IF_BUTTON, 6 | OPNPC, 7 | OPPLAYER, 8 | OPOBJ, 9 | OPLOC, 10 | MOVE_GAMECLICK, 11 | EVENT_MOUSE_CLICK, 12 | IF_BUTTONT, 13 | OPNPCT, 14 | OPPLAYERT, 15 | OPOBJT, 16 | OPLOCT 17 | } 18 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/PacketUtilsConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Packets.PacketUtils; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | 7 | @ConfigGroup("PacketUtils") 8 | public interface PacketUtilsConfig extends Config { 9 | @ConfigItem( 10 | keyName = "debug", 11 | name = "debug", 12 | description = "enable menuaction debug output" 13 | ) 14 | default boolean debug() { 15 | return false; 16 | } 17 | 18 | @ConfigItem( 19 | keyName = "alwaysOn", 20 | name = "Always enabled.", 21 | description = "Makes this plugin always enabled on startup if the revision matches." 22 | ) 23 | default boolean alwaysOn() { 24 | return false; 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Packets/TileItemPackets.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Packets; 2 | 3 | import com.plugins.Collections.ETileItem; 4 | import com.plugins.Packets.PacketUtils.PacketDef; 5 | import com.plugins.Packets.PacketUtils.PacketReflection; 6 | import lombok.SneakyThrows; 7 | import net.runelite.api.widgets.Widget; 8 | 9 | public class TileItemPackets { 10 | @SneakyThrows 11 | public static void queueTileItemAction(int actionFieldNo, int objectId, int worldPointX, int worldPointY, 12 | boolean ctrlDown) { 13 | int ctrl = ctrlDown ? 1 : 0; 14 | switch (actionFieldNo) { 15 | case 1: 16 | PacketReflection.sendPacket(PacketDef.OPOBJ1, objectId, worldPointX, worldPointY, ctrl); 17 | break; 18 | case 2: 19 | PacketReflection.sendPacket(PacketDef.OPOBJ2, objectId, worldPointX, worldPointY, ctrl); 20 | break; 21 | case 3: 22 | PacketReflection.sendPacket(PacketDef.OPOBJ3, objectId, worldPointX, worldPointY, ctrl); 23 | break; 24 | case 4: 25 | PacketReflection.sendPacket(PacketDef.OPOBJ4, objectId, worldPointX, worldPointY, ctrl); 26 | break; 27 | case 5: 28 | PacketReflection.sendPacket(PacketDef.OPOBJ5, objectId, worldPointX, worldPointY, ctrl); 29 | break; 30 | } 31 | } 32 | 33 | public static void queueWidgetOnTileItem(int objectId, int worldPointX, int worldPointY, int sourceSlot, 34 | int sourceItemId, int sourceWidgetId, boolean ctrlDown) { 35 | int ctrl = ctrlDown ? 1 : 0; 36 | PacketReflection.sendPacket(PacketDef.OPOBJT, objectId, worldPointX, worldPointY, sourceSlot, sourceItemId, 37 | sourceWidgetId, ctrl); 38 | } 39 | 40 | public static void queueTileItemAction(ETileItem item, boolean ctrlDown) { 41 | queueTileItemAction(3, item.getTileItem().getId(), item.getLocation().getX(), item.getLocation().getY(), 42 | ctrlDown); 43 | } 44 | 45 | public static void queueWidgetOnTileItem(ETileItem item, Widget w, 46 | boolean ctrlDown) { 47 | queueWidgetOnTileItem(item.getTileItem().getId(), item.getLocation().getX(), item.getLocation().getY(), 48 | w.getIndex(), w.getItemId(), w.getId(), ctrlDown); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/PathFinding/Node.java: -------------------------------------------------------------------------------- 1 | package com.plugins.PathFinding; 2 | 3 | import net.runelite.api.coords.WorldPoint; 4 | 5 | public class Node { 6 | WorldPoint data; 7 | Node previous; 8 | 9 | Node(WorldPoint data) { 10 | this.data = data; 11 | } 12 | Node(){ 13 | this.data = null; 14 | this.previous = null; 15 | } 16 | Node(WorldPoint data, Node previous) { 17 | this.data = data; 18 | this.previous = previous; 19 | } 20 | 21 | public WorldPoint getData() { 22 | return data; 23 | } 24 | 25 | public Node getPrevious() { 26 | return previous; 27 | } 28 | 29 | public void setNode(WorldPoint data, Node previous){ 30 | this.data = data; 31 | this.previous = previous; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/java/com/plugins/Utility/WorldAreaUtility.java: -------------------------------------------------------------------------------- 1 | package com.plugins.Utility; 2 | 3 | import net.runelite.api.GameObject; 4 | import net.runelite.api.Point; 5 | import net.runelite.api.TileObject; 6 | import net.runelite.api.coords.LocalPoint; 7 | import net.runelite.api.coords.WorldArea; 8 | import net.runelite.api.coords.WorldPoint; 9 | 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | 13 | import static com.plugins.Packets.PacketUtils.PacketReflection.client; 14 | 15 | public class WorldAreaUtility { 16 | 17 | public static List objectInteractableTiles(TileObject e){ 18 | 19 | Point p; 20 | int x = 1; 21 | int y = 1; 22 | if (e instanceof GameObject) { 23 | GameObject gameObject = (GameObject) e; 24 | x = gameObject.sizeX(); 25 | y = gameObject.sizeY(); 26 | p = gameObject.getSceneMinLocation(); 27 | } else { 28 | p = new Point(e.getLocalLocation().getSceneX(), e.getLocalLocation().getSceneY()); 29 | } 30 | LocalPoint lp = new LocalPoint(p.getX(), p.getY()); 31 | WorldPoint location = WorldPoint.fromScene(client, lp.getX(), lp.getY(), e.getPlane()); 32 | List objectArea = new WorldArea(location, x, y).toWorldPointList(); 33 | ArrayList grownArea = new ArrayList<>(new WorldArea(location, x+1, y+1).toWorldPointList()); 34 | int corner1 = 0; 35 | int corner2 = x-1; 36 | int corner3 = (y*x)-x; 37 | int corner4 = (y*x)-1; 38 | grownArea.remove(corner4); 39 | grownArea.remove(corner3); 40 | grownArea.remove(corner2); 41 | grownArea.remove(corner1); 42 | grownArea.removeAll(objectArea); 43 | return grownArea; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/main/resources/ethan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/EV-Converted/EthanApi/src/main/resources/ethan.png -------------------------------------------------------------------------------- /Conversions/EV-Converted/EthanApi/src/test/java/EthanApiTest.java: -------------------------------------------------------------------------------- 1 | 2 | import com.plugins.EthanApiPlugin; 3 | import com.plugins.PacketUtilsPlugin; 4 | import net.runelite.client.RuneLite; 5 | import net.runelite.client.externalplugins.ExternalPluginManager; 6 | 7 | public class EthanApiTest 8 | { 9 | public static void main(String[] args) throws Exception 10 | { 11 | ExternalPluginManager.loadBuiltin(EthanApiPlugin.class, PacketUtilsPlugin.class); 12 | RuneLite.main(args); 13 | } 14 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/Example/example.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Example Plugin " // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "Cago's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "Example" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "ExamplePlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.github.weisj:darklaf:1.3.3.4") 10 | implementation("com.fifesoft.rtext:rtext:2.0.7") 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/Example/src/main/java/com/plugins/ExampleConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import com.plugins.enums.ExampleEnum; 4 | import net.runelite.client.config.*; 5 | 6 | import java.awt.*; 7 | 8 | @ConfigGroup("Example") 9 | public interface ExampleConfig extends Config { 10 | 11 | @ConfigSection( 12 | name = "Example", 13 | description = "Example", 14 | position = 0 15 | ) 16 | String Main = "Main"; 17 | 18 | @ConfigItem( 19 | keyName = "ExampleString", 20 | name = "ExampleString", 21 | description = "ExampleString", 22 | position = 1, 23 | section = "Main" 24 | ) 25 | default String Example() { return "String"; } 26 | 27 | @ConfigItem( 28 | keyName = "ExampleBoolean", 29 | name = "ExampleBoolean", 30 | description = "ExampleBoolean", 31 | position = 2, 32 | section = "Main" 33 | ) 34 | default boolean ExampleBoolean() { return false; } 35 | 36 | @ConfigItem( 37 | keyName = "ExampleInt", 38 | name = "ExampleInt", 39 | description = "ExampleInt", 40 | position = 3, 41 | section = "Main" 42 | ) 43 | default int ExampleInt() { return 0; } 44 | 45 | @ConfigItem( 46 | keyName = "ExampleHotKey", 47 | name = "ExampleHotKey", 48 | description = "ExampleHotKey", 49 | position = 4, 50 | section = "Main" 51 | ) 52 | default Keybind ExampleHotKey() { return Keybind.NOT_SET; } 53 | 54 | @ConfigItem( 55 | keyName = "ExampleColor", 56 | name = "ExampleColor", 57 | description = "ExampleColor", 58 | position = 5, 59 | section = "Main" 60 | ) 61 | default Color ExampleColor() { return Color.WHITE; } 62 | 63 | @ConfigItem( 64 | keyName = "ExampleEnum", 65 | name = "ExampleEnum", 66 | description = "ExampleEnum", 67 | position = 6, 68 | section = "Main" 69 | ) 70 | default ExampleEnum ExampleEnum() { return ExampleEnum.E; } 71 | 72 | 73 | } 74 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/Example/src/main/java/com/plugins/ExamplePlugin.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import com.google.inject.Provides; 4 | import com.plugins.Packets.MovementPackets; 5 | import net.runelite.api.ChatMessageType; 6 | import net.runelite.api.events.ChatMessage; 7 | import net.runelite.client.config.ConfigManager; 8 | import net.runelite.client.eventbus.Subscribe; 9 | import net.runelite.client.input.KeyManager; 10 | import net.runelite.client.plugins.Plugin; 11 | import net.runelite.client.plugins.PluginDependency; 12 | import net.runelite.client.util.HotkeyListener; 13 | 14 | import javax.inject.Inject; 15 | import java.io.IOException; 16 | import java.time.Duration; 17 | 18 | @PluginDependency(EthanApiPlugin.class) 19 | @PluginDependency(PacketUtilsPlugin.class) 20 | public class ExamplePlugin extends Plugin { 21 | 22 | @Inject 23 | KeyManager keyManager; 24 | 25 | @Inject 26 | private ExampleConfig config; 27 | 28 | private final HotkeyListener startButton = new HotkeyListener(() -> config.ExampleHotKey()) { 29 | @Override 30 | public void hotkeyPressed() { 31 | EthanApiPlugin.sendClientMessage("Start button pressed!"); 32 | } 33 | }; 34 | 35 | @Provides 36 | ExampleConfig getConfig(final ConfigManager configManager) { 37 | return configManager.getConfig(ExampleConfig.class); 38 | } 39 | 40 | @Override 41 | public void startUp() { 42 | EthanApiPlugin.sendClientMessage("Hello " + EthanApiPlugin.client.getLocalPlayer().getName() + "!"); 43 | } 44 | 45 | @Override 46 | public void shutDown() { 47 | EthanApiPlugin.sendClientMessage("Goodbye " + EthanApiPlugin.client.getLocalPlayer().getName() + "!"); 48 | } 49 | 50 | @Subscribe 51 | public void onChatMessage(ChatMessage event) { 52 | if (event.getType() == ChatMessageType.GAMEMESSAGE) { 53 | String message = event.getMessage(); 54 | if (message.contains("test")) { 55 | int x = EthanApiPlugin.client.getLocalPlayer().getWorldLocation().getX(); 56 | int y = EthanApiPlugin.client.getLocalPlayer().getWorldLocation().getY(); 57 | MovementPackets.queueMovement(x + 1, y + 1, false); 58 | EthanApiPlugin.sendClientMessage("Test walking successful!"); 59 | } 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/Example/src/main/java/com/plugins/enums/ExampleEnum.java: -------------------------------------------------------------------------------- 1 | package com.plugins.enums; 2 | 3 | public enum ExampleEnum { 4 | E,X,A,M,P,L; // ExampleEnum.E 5 | 6 | public String toString() { 7 | return this.name(); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/Example/src/test/java/plugins/ExamplePluginTest.java: -------------------------------------------------------------------------------- 1 | package plugins; 2 | 3 | import com.plugins.EthanApiPlugin; 4 | import com.plugins.ExamplePlugin; 5 | import com.plugins.PacketUtilsPlugin; 6 | import net.runelite.client.RuneLite; 7 | import net.runelite.client.externalplugins.ExternalPluginManager; 8 | 9 | public class ExamplePluginTest { 10 | 11 | public static void main(String[] args) throws Exception 12 | { 13 | ExternalPluginManager.loadBuiltin(ExamplePlugin.class, EthanApiPlugin.class, PacketUtilsPlugin.class); 14 | RuneLite.main(args); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/LavaRunecrafter/lavarunecrafter.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Lava Runcrafter Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "LavaRunecrafter" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "LavaRunecrafterPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/LavaRunecrafter/src/main/java/com/plugins/LavaRunecrafterPluginConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | 7 | @ConfigGroup("LavaRunecrafter") 8 | public interface LavaRunecrafterPluginConfig extends Config { 9 | @ConfigItem( 10 | keyName = "TeleMethod", 11 | name = "Teleport Method", 12 | description = "Which method you will use to get to the altar" 13 | ) 14 | default TeleportMethods TeleMethod() { 15 | return TeleportMethods.RING_OF_DUELING; 16 | } 17 | 18 | @ConfigItem( 19 | keyName = "VialSmasher", 20 | name = "Vial Smasher Enabled", 21 | description = "Does the account have vial smasher enabled?" 22 | ) 23 | default boolean VialSmasher() { 24 | return false; 25 | } 26 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/LavaRunecrafter/src/main/java/com/plugins/TeleportMethods.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | public enum TeleportMethods { 4 | RING_OF_ELEMENTS, 5 | RING_OF_DUELING 6 | } 7 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/NightmareHelper/nightmarehelper.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Phosani NM Helper Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "NightmareHelper" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "NightmareHelperPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/NightmareHelper/src/main/java/com/plugins/WeaponStyle.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | public enum WeaponStyle { 4 | MAGIC, 5 | RANGE, 6 | MELEE, 7 | CHINS, 8 | TRIDENTS 9 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/PathingTesting/pathingtesting.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Pathing Testing Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "PathingTesting" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "PathingTestingPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/PathingTesting/src/main/java/com/plugins/PathingTestingConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | 7 | @ConfigGroup("PathingTesting") 8 | public interface PathingTestingConfig extends Config { 9 | @ConfigItem( 10 | keyName = "x", 11 | name = "x", 12 | description = "" 13 | ) 14 | default int x() { 15 | return -1; 16 | } 17 | 18 | @ConfigItem( 19 | keyName = "y", 20 | name = "y", 21 | description = "" 22 | ) 23 | default int y() { 24 | return -1; 25 | } 26 | 27 | @ConfigItem( 28 | keyName = "run", 29 | name = "run", 30 | description = "" 31 | ) 32 | default boolean run() { 33 | return false; 34 | } 35 | @ConfigItem( 36 | keyName = "stop", 37 | name = "stop", 38 | description = "" 39 | ) 40 | default boolean stop() { 41 | return false; 42 | } 43 | @ConfigItem( 44 | keyName = "drawTiles", 45 | name = "drawTiles", 46 | description = "" 47 | ) 48 | default boolean drawTiles() { 49 | return false; 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/PrayerFlicker/prayerflicker.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Prayer Flicker Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "PrayerFlicker" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "EthanPrayerFlickerPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/PrayerFlicker/src/main/java/com/plugins/PrayerFlickerConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | import net.runelite.client.config.Keybind; 7 | 8 | @ConfigGroup("PrayerFlicker") 9 | public interface PrayerFlickerConfig extends Config { 10 | @ConfigItem( 11 | keyName = "Toggle", 12 | name = "Toggle", 13 | description = "" 14 | ) 15 | default Keybind toggle() { 16 | return Keybind.NOT_SET; 17 | } 18 | 19 | @ConfigItem( 20 | keyName = "minimapToggle", 21 | name = "Toggle with Minimap Orb", 22 | description = "Toggle using the Minimap Orb" 23 | ) 24 | default boolean minimapToggle() { 25 | return false; 26 | } 27 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/README.md: -------------------------------------------------------------------------------- 1 | ### EthanVann-Plugins converted by .Zalc (CagoMyre) 2 | 3 | Visit the [EthanVann-Plugins Repo](https://github.com/Ethan-Vann/EthanVannPlugins) for more information. -------------------------------------------------------------------------------- /Conversions/EV-Converted/RunEnabler/runenabler.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Run Enabler Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "RunEnabler" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "RunEnablerPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/RunEnabler/src/main/java/com/plugins/RunEnablerPlugin.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import com.plugins.EthanApiPlugin; 4 | import com.plugins.Packets.MousePackets; 5 | import com.plugins.Packets.WidgetPackets; 6 | import net.runelite.api.events.GameTick; 7 | import net.runelite.client.eventbus.Subscribe; 8 | import net.runelite.client.plugins.Plugin; 9 | import net.runelite.client.plugins.PluginDescriptor; 10 | 11 | 12 | @PluginDescriptor(name = "RunEnabler", description = "", enabledByDefault = false, tags = {"ethan"}) 13 | public class RunEnablerPlugin extends Plugin { 14 | @Subscribe 15 | public void onGameTick(GameTick e) { 16 | if (!EthanApiPlugin.loggedIn()) { 17 | return; 18 | } 19 | if (runIsOff() && hasMoreThanZeroEnergy()) { 20 | enableRun(); 21 | } 22 | } 23 | 24 | boolean runIsOff() { 25 | return EthanApiPlugin.getClient().getVarpValue(173) == 0; 26 | } 27 | 28 | boolean hasMoreThanZeroEnergy() { 29 | return EthanApiPlugin.getClient().getEnergy() > 100; 30 | } 31 | 32 | void enableRun() { 33 | MousePackets.queueClickPacket(); 34 | WidgetPackets.queueWidgetActionPacket(1, 10485787, -1, -1); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/Superglass/src/main/java/com/plugins/Secondary.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.api.ItemID; 4 | 5 | public enum Secondary { 6 | SODA_ASH(ItemID.SODA_ASH, 13), 7 | SEAWEED(ItemID.SEAWEED, 13), 8 | GIANT_SEAWEED(ItemID.GIANT_SEAWEED, 18); 9 | 10 | Secondary(int id, int sandAmount) { 11 | this.id = id; 12 | this.sandAmount = sandAmount; 13 | } 14 | 15 | public int getId() { 16 | return id; 17 | } 18 | 19 | public int getSandAmount() { 20 | return sandAmount; 21 | } 22 | 23 | private final int id; 24 | private final int sandAmount; 25 | } 26 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/Superglass/src/main/java/com/plugins/SuperGlassMakerPluginConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | 7 | @ConfigGroup("SuperGlassMaker") 8 | public interface SuperGlassMakerPluginConfig extends Config { 9 | @ConfigItem( 10 | keyName = "Secondary", 11 | name = "Secondary", 12 | description = "Which secondary you will use" 13 | ) 14 | default Secondary secondary() { 15 | return Secondary.GIANT_SEAWEED; 16 | } 17 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/Superglass/superglass.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Superglass Maker Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "Superglass" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "SuperGlassMakerPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/Upkeep/upkeep.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Upkeep Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "Upkeep" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "UpkeepPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Owain van Brakel 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | 26 | plugins { 27 | `kotlin-dsl` 28 | } 29 | 30 | repositories { 31 | jcenter() 32 | } 33 | 34 | dependencies { 35 | implementation(gradleApi()) 36 | implementation(group = "org.json", name = "json", version = "20190722") 37 | implementation(group = "com.savvasdalkitsis", name = "json-merge", version = "0.0.4") 38 | implementation(group = "com.squareup.okhttp3", name = "okhttp", version = "4.2.2") 39 | } 40 | 41 | kotlinDslPluginOptions { 42 | experimentalWarning.set(false) 43 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/buildSrc/src/main/kotlin/BootstrapPlugin.kt: -------------------------------------------------------------------------------- 1 | import org.gradle.api.Plugin 2 | import org.gradle.api.Project 3 | import org.gradle.kotlin.dsl.register 4 | 5 | class BootstrapPlugin : Plugin { 6 | override fun apply(project: Project) { 7 | project.tasks.register("bootstrapPlugins") {} 8 | } 9 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/buildSrc/src/main/kotlin/JsonBuilder.kt: -------------------------------------------------------------------------------- 1 | import org.json.JSONArray 2 | import org.json.JSONObject 3 | 4 | class JsonBuilder() { 5 | private var json = JSONObject() 6 | 7 | constructor(vararg pairs: Pair) : this() { 8 | add(*pairs) 9 | } 10 | 11 | fun add(vararg pairs: Pair) { 12 | for ((key, value) in pairs) { 13 | when (value) { 14 | is Boolean -> json.put(key, value) 15 | is Number -> add(key, value) 16 | is String -> json.put(key, value) 17 | is JsonBuilder -> json.put(key, value.json) 18 | is Array<*> -> add(key, value) 19 | is JSONObject -> json.put(key, value) 20 | is JSONArray -> json.put(key, value) 21 | } 22 | } 23 | } 24 | 25 | fun add(key: String, value: Number): JsonBuilder { 26 | when (value) { 27 | is Int -> json.put(key, value) 28 | is Long -> json.put(key, value) 29 | is Float -> json.put(key, value) 30 | is Double -> json.put(key, value) 31 | else -> {} 32 | } 33 | 34 | return this 35 | } 36 | 37 | fun add(key: String, items: Array): JsonBuilder { 38 | val jsonArray = JSONArray() 39 | items.forEach { 40 | when (it) { 41 | is String,is Long,is Int, is Boolean -> jsonArray.put(it) 42 | is JsonBuilder -> jsonArray.put(it.json) 43 | else -> try {jsonArray.put(it)} catch (ignored:Exception) { 44 | 45 | } 46 | } 47 | } 48 | 49 | json.put(key, jsonArray) 50 | 51 | return this 52 | } 53 | 54 | fun jsonObject() = json 55 | 56 | override fun toString() = json.toString() 57 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/buildSrc/src/main/kotlin/Project.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Owain van Brakel 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | 26 | fun nameToId(name: String): String { 27 | return name.replace("[^A-Za-z]".toRegex(), "").toLowerCase() + "-plugin" 28 | } 29 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/buildSrc/src/main/kotlin/SemVer.kt: -------------------------------------------------------------------------------- 1 | data class SemVer( 2 | var major: Int = 0, 3 | var minor: Int = 0, 4 | var patch: Int = 0 5 | ) : Comparable { 6 | companion object { 7 | @JvmStatic 8 | fun parse(version: String): SemVer { 9 | val pattern = Regex("""(0|[1-9]\d*)?(?:\.)?(0|[1-9]\d*)?(?:\.)?(0|[1-9]\d*)?(?:-([\dA-z\-]+(?:\.[\dA-z\-]+)*))?(?:\+([\dA-z\-]+(?:\.[\dA-z\-]+)*))?""") 10 | val result = pattern.matchEntire(version) 11 | ?: throw IllegalArgumentException("Invalid version string [$version]") 12 | return SemVer( 13 | major = if (result.groupValues[1].isEmpty()) 0 else result.groupValues[1].toInt(), 14 | minor = if (result.groupValues[2].isEmpty()) 0 else result.groupValues[2].toInt(), 15 | patch = if (result.groupValues[3].isEmpty()) 0 else result.groupValues[3].toInt() 16 | ) 17 | } 18 | } 19 | 20 | init { 21 | require(major >= 0) { "Major version must be a positive number" } 22 | require(minor >= 0) { "Minor version must be a positive number" } 23 | require(patch >= 0) { "Patch version must be a positive number" } 24 | } 25 | 26 | override fun toString(): String = buildString { 27 | append("$major.$minor.$patch") 28 | } 29 | 30 | override fun compareTo(other: SemVer): Int { 31 | if (major > other.major) return 1 32 | if (major < other.major) return -1 33 | if (minor > other.minor) return 1 34 | if (minor < other.minor) return -1 35 | if (patch > other.patch) return 1 36 | if (patch < other.patch) return -1 37 | 38 | return -1 39 | } 40 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/buildSrc/src/main/kotlin/VersionPlugin.kt: -------------------------------------------------------------------------------- 1 | import org.gradle.api.Plugin 2 | import org.gradle.api.Project 3 | import org.gradle.kotlin.dsl.register 4 | 5 | class VersionPlugin : Plugin { 6 | override fun apply(project: Project) { 7 | project.tasks.register("bumpVersion") {} 8 | project.tasks.register("bumpVersions") {} 9 | } 10 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/gauntletFlicker/gauntletflicker.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Gauntlet Flicker Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "gauntletFlicker" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "GauntletFlickerPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.caching=false 2 | org.gradle.warning.mode=all 3 | org.gradle.parallel=true 4 | org.gradle.console=rich 5 | org.gradle.configureondemand=true 6 | org.gradle.jvmargs=-XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 7 | kapt.incremental.apt=false 8 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/EV-Converted/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Conversions/EV-Converted/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Jul 12 20:59:40 CDT 2023 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.1-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /Conversions/EV-Converted/harpoon2ticker/harpoon2ticker.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Harpoon 2T Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "harpoon2ticker" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "SwordFish2Tick" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation("com.fifesoft.rtext:rtext:2.0.7") 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/EV-Converted/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "EV-Converted" 2 | 3 | include(":AutoTele") 4 | include(":CalvarionHelper") 5 | include(":E3t4g") 6 | include(":EthanApi") 7 | include(":GauntletFlicker") 8 | include(":Harpoon2Ticker") 9 | include(":LavaRunecrafter") 10 | include(":NightmareHelper") 11 | include(":PrayerFlicker") 12 | include(":PrayerFlicker") 13 | include(":RunEnabler") 14 | include(":Superglass") 15 | include(":Upkeep") 16 | include(":PathingTesting") 17 | include(":Example") 18 | include(":DeveloperTools") 19 | 20 | for (project in rootProject.children) { 21 | project.apply { 22 | projectDir = file(name) 23 | buildFileName = "$name.gradle.kts" 24 | 25 | require(projectDir.isDirectory) { "Project '${project.path} must have a $projectDir directory" } 26 | require(buildFile.isFile) { "Project '${project.path} must have a $buildFile build script" } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | build/ 3 | !gradle/wrapper/gradle-wrapper.jar 4 | !**/src/main/**/build/ 5 | !**/src/test/**/build/ 6 | 7 | ### IntelliJ IDEA ### 8 | .idea/modules.xml 9 | .idea/jarRepositories.xml 10 | .idea/compiler.xml 11 | .idea/libraries/ 12 | *.iws 13 | *.iml 14 | *.ipr 15 | out/ 16 | !**/src/main/**/out/ 17 | !**/src/test/**/out/ 18 | 19 | ### Eclipse ### 20 | .apt_generated 21 | .classpath 22 | .factorypath 23 | .project 24 | .settings 25 | .springBeans 26 | .sts4-cache 27 | bin/ 28 | !**/src/main/**/bin/ 29 | !**/src/test/**/bin/ 30 | 31 | ### NetBeans ### 32 | /nbproject/private/ 33 | /nbbuild/ 34 | /dist/ 35 | /nbdist/ 36 | /.nb-gradle/ 37 | 38 | ### VS Code ### 39 | .vscode/ 40 | 41 | ### Mac OS ### 42 | .DS_Store -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/.idea/.name: -------------------------------------------------------------------------------- 1 | EthanVann-Plugins -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 47 | 48 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AoeWarn/aoewarn.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "AOEWarn" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's Converted " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "AoeWarn" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "AoeWarningPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AoeWarn/src/main/java/com/plugins/ColorUtil.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import java.awt.Color; 4 | 5 | public class ColorUtil 6 | { 7 | /** 8 | * Modifies the alpha component on a Color 9 | * 10 | * @param color The color to set the alpha value on 11 | * @param alpha The alpha value to set on the color 12 | * @return color 13 | */ 14 | public static int setAlphaComponent(Color color, int alpha) 15 | { 16 | return setAlphaComponent(color.getRGB(), alpha); 17 | } 18 | 19 | /** 20 | * Modifies the alpha component on a Color 21 | * 22 | * @param color The color to set the alpha value on 23 | * @param alpha The alpha value to set on the color 24 | * @return color 25 | */ 26 | public static int setAlphaComponent(int color, int alpha) 27 | { 28 | if (alpha < 0 || alpha > 255) 29 | { 30 | throw new IllegalArgumentException("alpha must be between 0 and 255."); 31 | } 32 | return (color & 0x00ffffff) | (alpha << 24); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AoeWarn/src/main/java/com/plugins/CrystalBomb.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018, PallasDieKatze (Pallas Cat) 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | package com.plugins; 26 | 27 | import java.time.Instant; 28 | import lombok.AccessLevel; 29 | import lombok.Getter; 30 | import lombok.extern.slf4j.Slf4j; 31 | import net.runelite.api.GameObject; 32 | import net.runelite.api.coords.WorldPoint; 33 | 34 | @Slf4j 35 | @Getter(AccessLevel.PACKAGE) 36 | class CrystalBomb 37 | { 38 | private GameObject gameObject; 39 | private Instant plantedOn; 40 | private Instant lastClockUpdate; 41 | private int objectId; 42 | private int tickStarted; 43 | private WorldPoint worldLocation; 44 | 45 | CrystalBomb(GameObject gameObject, int startTick) 46 | { 47 | this.gameObject = gameObject; 48 | this.objectId = gameObject.getId(); 49 | this.plantedOn = Instant.now(); 50 | this.worldLocation = gameObject.getWorldLocation(); 51 | this.tickStarted = startTick; 52 | } 53 | 54 | void bombClockUpdate() 55 | { 56 | lastClockUpdate = Instant.now(); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AoeWarn/src/main/java/com/plugins/ProjectileContainer.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import java.time.Instant; 4 | import lombok.AccessLevel; 5 | import lombok.Getter; 6 | import lombok.Setter; 7 | import net.runelite.api.Projectile; 8 | import net.runelite.api.coords.LocalPoint; 9 | 10 | @Getter(AccessLevel.PACKAGE) 11 | class ProjectileContainer 12 | { 13 | private Projectile projectile; 14 | private Instant startTime; 15 | private AoeProjectileInfo aoeProjectileInfo; 16 | private int lifetime; 17 | private int finalTick; 18 | @Setter(AccessLevel.PACKAGE) 19 | private LocalPoint targetPoint; 20 | 21 | ProjectileContainer(Projectile projectile, Instant startTime, int lifetime, int finalTick) 22 | { 23 | this.projectile = projectile; 24 | this.startTime = startTime; 25 | this.targetPoint = null; 26 | this.aoeProjectileInfo = AoeProjectileInfo.getById(projectile.getId()); 27 | this.lifetime = lifetime; 28 | this.finalTick = finalTick; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AutoJugHumidifier/autojughumidifier.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Auto Jug Humidifier" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "AutoJugHumidifier" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "AutoJugHumidifierPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | } 11 | tasks { 12 | jar { 13 | manifest { 14 | attributes(mapOf( 15 | "Plugin-Version" to project.version, 16 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 17 | "Plugin-Provider" to project.extra["PluginProvider"], 18 | "Plugin-Description" to project.extra["PluginDescription"], 19 | "Plugin-License" to project.extra["PluginLicense"] 20 | )) 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AutoJugHumidifier/src/main/java/com/plugins/AutoJugHumidifierConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | import net.runelite.client.config.Keybind; 7 | 8 | @ConfigGroup("AutoJugFiller") 9 | public interface AutoJugHumidifierConfig extends Config { 10 | @ConfigItem( 11 | keyName = "Toggle", 12 | name = "Toggle", 13 | description = "", 14 | position = 0 15 | ) 16 | default Keybind toggle() { 17 | return Keybind.NOT_SET; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AutoRifts/autorifts.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "AutoRifts" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "AutoRifts" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "AutoRiftsPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AutoRifts/src/main/java/com/plugins/AutoRiftsOverlay.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import com.google.inject.Inject; 4 | import net.runelite.client.ui.overlay.OverlayPanel; 5 | import net.runelite.client.ui.overlay.components.LineComponent; 6 | import net.runelite.client.ui.overlay.components.TitleComponent; 7 | 8 | import java.awt.*; 9 | 10 | public class AutoRiftsOverlay extends OverlayPanel { 11 | 12 | private final AutoRiftsPlugin plugin; 13 | 14 | @Inject 15 | private AutoRiftsOverlay(AutoRiftsPlugin plugin) { 16 | this.plugin = plugin; 17 | } 18 | 19 | @Override 20 | public Dimension render(Graphics2D graphics) { 21 | panelComponent.getChildren().add(TitleComponent.builder() 22 | .text("Auto Rifts") 23 | .color(Color.WHITE) 24 | .build()); 25 | 26 | panelComponent.getChildren().add(TitleComponent.builder() 27 | .text(plugin.isStarted() ? "Running" : "Paused") 28 | .color(plugin.isStarted() ? Color.GREEN : Color.RED) 29 | .build()); 30 | 31 | panelComponent.getChildren().add(LineComponent.builder() 32 | .left("Elapsed Time: ") 33 | .leftColor(Color.YELLOW) 34 | .right(plugin.getElapsedTime()) 35 | .rightColor(Color.WHITE) 36 | .build()); 37 | 38 | panelComponent.getChildren().add(LineComponent.builder() 39 | .left("State") 40 | .leftColor(Color.YELLOW) 41 | .right(plugin.getState() == null ? "null" : plugin.getState().name()) 42 | .rightColor(Color.WHITE) 43 | .build()); 44 | 45 | return super.render(graphics); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AutoRifts/src/main/java/com/plugins/data/Altar.java: -------------------------------------------------------------------------------- 1 | package com.plugins.data; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public enum Altar { 7 | AIR(43701, Constants.AIR_SPRITE), 8 | MIND(43705, Constants.MIND_SPRITE), 9 | WATER(43702, Constants.WATER_SPRITE), 10 | EARTH(43703, Constants.EARTH_SPRITE), 11 | FIRE(43704, Constants.FIRE_SPRITE), 12 | BODY(43709, Constants.BODY_SPRITE), 13 | COSMIC(43710, Constants.COSMIC_SPRITE), 14 | CHAOS(43706, Constants.CHAOS_SPRITE), 15 | NATURE(43711, Constants.NATURE_SPRITE), 16 | LAW(43712, Constants.LAW_SPRITE), 17 | DEATH(43707, Constants.DEATH_SPRITE), 18 | BLOOD(43708, Constants.BLOOD_SPRITE); 19 | 20 | final int id; 21 | final int spriteId; 22 | 23 | Altar(int id, int spriteId) { 24 | this.id = id; 25 | this.spriteId = spriteId; 26 | } 27 | 28 | public static Altar getAltarBySpriteId(int spriteId) { 29 | for (Altar altar : Altar.values()) { 30 | if (altar.getSpriteId() == spriteId) { 31 | return altar; 32 | } 33 | } 34 | return null; 35 | } 36 | 37 | public static Altar getAltarByObjectId(int id) { 38 | for (Altar altar : Altar.values()) { 39 | if (altar.getId() == id) { 40 | return altar; 41 | } 42 | } 43 | return null; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AutoRifts/src/main/java/com/plugins/data/State.java: -------------------------------------------------------------------------------- 1 | package com.plugins.data; 2 | 3 | public enum State { 4 | WAITING, 5 | ANIMATING, 6 | MINING, 7 | TIMEOUT, 8 | OUTSIDE_BARRIER, 9 | WAITING_FOR_GAME, 10 | RETURN_TO_START, 11 | MINE_LARGE, 12 | MINE_HUGE, 13 | MINE_GAME, 14 | CRAFT_ESSENCE, 15 | BUILD_GUARDIAN, 16 | CHARGE_SHIELD, 17 | DEPOSIT_RUNES, 18 | ENTER_PORTAL, 19 | ENTER_RIFT, 20 | CRAFT_RUNES, 21 | EXIT_ALTAR, 22 | POWER_GUARDIAN, 23 | REPAIR_POUCH, 24 | LEAVE_LARGE, 25 | TAKE_CELLS, 26 | GAME_BUSY, 27 | DROP_RUNES, 28 | DROP_TALISMAN, 29 | CRAFTING_ESS 30 | } 31 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/AutoRifts/src/main/java/com/plugins/data/Utility.java: -------------------------------------------------------------------------------- 1 | package com.plugins.data; 2 | 3 | import java.util.HashSet; 4 | import java.util.Set; 5 | 6 | public class Utility { 7 | 8 | public static int getHighestLevelRuneIndex(int level) { 9 | if (level < 35) { 10 | return 7; 11 | } else if (level < 44) { 12 | return 8; 13 | } else if (level < 54) { 14 | return 9; 15 | } else if (level < 65) { 16 | return 10; 17 | } else if (level < 77) { 18 | return 11; 19 | } 20 | 21 | return 12; 22 | } 23 | 24 | public static Set getAccessibleAltars(int level, boolean city, boolean troll, boolean mep, boolean sotf) { 25 | Set accessibleAltars = new HashSet<>(); 26 | for (int i = 0; i < getHighestLevelRuneIndex(level); i++) { 27 | Altar[] altars = Altar.values(); 28 | if (altars[i] == Altar.COSMIC && !city) { 29 | continue; 30 | } 31 | if (altars[i] == Altar.LAW && !troll) { 32 | continue; 33 | } 34 | if (altars[i] == Altar.DEATH && !mep) { 35 | continue; 36 | } 37 | if (altars[i] == Altar.BLOOD && !sotf) { 38 | continue; 39 | } 40 | accessibleAltars.add(altars[i]); 41 | } 42 | 43 | return accessibleAltars; 44 | } 45 | 46 | 47 | 48 | } 49 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/CannonReloader/cannonreloader.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Cannon Reloader" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's Converted " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "CannonReloader" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "CannonReloaderPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/CannonReloader/src/main/java/com/plugins/CannonReloaderConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | import net.runelite.client.config.Range; 7 | 8 | @ConfigGroup("CannonReloader") 9 | public interface CannonReloaderConfig extends Config { 10 | 11 | @Range( 12 | max = 30 13 | ) 14 | @ConfigItem( 15 | keyName = "reloadMin", 16 | name = "Reload Min", 17 | description = "Amount of balls left before relaoding" 18 | ) 19 | default int reloadMin() { 20 | return 5; 21 | } 22 | 23 | @Range( 24 | max = 30 25 | ) 26 | @ConfigItem( 27 | keyName = "reloadMax", 28 | name = "Reload Max", 29 | description = "Amount of balls left before relaoding" 30 | ) 31 | default int reloadMax() { 32 | return 20; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/ethanapi.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "EthanAPI Plugin" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "EthanVann's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "EthanApi" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "EthanApiPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation("org.roaringbitmap:RoaringBitmap:0.9.44") 9 | implementation("de.jflex:jflex:1.8.2") 10 | implementation("com.fifesoft:rsyntaxtextarea:3.1.1") 11 | implementation("com.fifesoft:autocomplete:2.6.1") 12 | implementation("com.fifesoft.rtext:rtext:2.0.7") 13 | } 14 | tasks { 15 | jar { 16 | manifest { 17 | attributes(mapOf( 18 | "Plugin-Version" to project.version, 19 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 20 | "Plugin-Provider" to project.extra["PluginProvider"], 21 | "Plugin-Description" to project.extra["PluginDescription"], 22 | "Plugin-License" to project.extra["PluginLicense"] 23 | )) 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/Bank.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/Bank.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/BankInventory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/BankInventory.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/BankItemWidget.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/BankItemWidget.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/DepositBox.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/DepositBox.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/ETileItem.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/ETileItem.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/Equipment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/Equipment.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/EquipmentItemWidget.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/EquipmentItemWidget.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/Inventory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/Inventory.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/NPCs.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/NPCs.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/Players.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/Players.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/ShopInventory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/ShopInventory.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/TileItems.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/TileItems.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/TileObjects.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/TileObjects.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/Widgets.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/Widgets.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/EquipmentItemQuery.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/EquipmentItemQuery.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/ItemQuery.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/ItemQuery.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/NPCQuery.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/NPCQuery.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/PlayerQuery.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/PlayerQuery.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/QuickPrayer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/QuickPrayer.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/TileItemQuery.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/TileItemQuery.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/TileObjectQuery.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/TileObjectQuery.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/WidgetQuery.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Collections/query/WidgetQuery.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/EthanApiPlugin.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/EthanApiPlugin.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/BankInteraction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/BankInteraction.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/BankInventoryInteraction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/BankInventoryInteraction.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/InteractionHelper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/InteractionHelper.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/InventoryInteraction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/InventoryInteraction.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/NPCInteraction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/NPCInteraction.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/PlayerInteractionHelper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/PlayerInteractionHelper.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/PrayerInteraction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/PrayerInteraction.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/TileObjectInteraction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/InteractionApi/TileObjectInteraction.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/PacketUtilsPlugin.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/PacketUtilsPlugin.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/BufferMethods.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/BufferMethods.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/MousePackets.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/MousePackets.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/MovementPackets.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/MovementPackets.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/NPCPackets.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/NPCPackets.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/ObjectPackets.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/ObjectPackets.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/ObfuscatedNames.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/ObfuscatedNames.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/ObjectAndType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/ObjectAndType.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/PacketDef.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/PacketDef.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/PacketReflection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/PacketReflection.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/PacketType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/PacketType.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/PacketUtilsConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/PacketUtilsConfig.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/WidgetID.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/WidgetID.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/WidgetInfoExtended.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PacketUtils/WidgetInfoExtended.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PlayerPackets.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/PlayerPackets.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/TileItemPackets.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/TileItemPackets.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/WidgetPackets.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Packets/WidgetPackets.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/PathFinding/GlobalCollisionMap.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/PathFinding/GlobalCollisionMap.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/PathFinding/Node.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/PathFinding/Node.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Utility/WorldAreaUtility.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/java/com/plugins/Utility/WorldAreaUtility.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/main/resources/ethan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/main/resources/ethan.png -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/EthanApi/src/test/java/EthanApiTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/EthanApi/src/test/java/EthanApiTest.java -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/HerbCleaner/herbcleaner.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Herb Cleaner" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "HerbCleaner" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "HerbCleanerPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/HerbCleaner/src/main/java/com/plugins/HerbCleanerConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | import net.runelite.client.config.Keybind; 7 | import net.runelite.client.config.Range; 8 | 9 | @ConfigGroup("HerbCleaner") 10 | public interface HerbCleanerConfig extends Config { 11 | @ConfigItem( 12 | keyName = "Toggle", 13 | name = "Toggle", 14 | description = "", 15 | position = 0 16 | ) 17 | default Keybind toggle() { 18 | return Keybind.NOT_SET; 19 | } 20 | 21 | @ConfigItem( 22 | keyName = "herbType", 23 | name = "Herb Type", 24 | description = "", 25 | position = 1 26 | ) 27 | default HerbType herbType() { 28 | return HerbType.GUAM; 29 | } 30 | 31 | @Range(max = 10) 32 | @ConfigItem( 33 | keyName = "herbAmount", 34 | name = "Herbs per tick", 35 | description = "Number of herbs you clean per tick", 36 | position = 2 37 | ) 38 | default int herbAmount() { 39 | return 10; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/HerbCleaner/src/main/java/com/plugins/HerbType.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public enum HerbType { 7 | GUAM("Grimy guam"), 8 | MARRENTILL("Grimy marrentill"), 9 | TARROMIN("Grimy tarromin"), 10 | HARRALANDER("Grimy harralander"), 11 | RANARR_WEED("Grimy ranarr weed"), 12 | TOADFLAX("Grimy toadflax"), 13 | IRIT("Grimy irit"), 14 | AVANTOE("Grimy avantoe"), 15 | KWUARM("Grimy kwuarm"), 16 | SNAPDRAGON("Grimy snapdragon"), 17 | CADANTINE("Grimy cadantine"), 18 | LANTADYME("Grimy lantadyme"), 19 | DWARF_WEED("Grimy dwarf weed"), 20 | TORSTOL("Grimy torstol"); 21 | 22 | final String itemName; 23 | 24 | HerbType(String itemName) { 25 | this.itemName = itemName; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/ItemCombiner/itemcombiner.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "ItemCombiner" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "ItemCombiner" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "ItemCombinerPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/ItemCombiner/src/main/java/com/plugins/ItemCombinerConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | import net.runelite.client.config.ConfigSection; 7 | import net.runelite.client.config.Keybind; 8 | 9 | @ConfigGroup("ItemCombiner") 10 | public interface ItemCombinerConfig extends Config { 11 | @ConfigItem( 12 | keyName = "Toggle", 13 | name = "Toggle", 14 | description = "", 15 | position = 0 16 | ) 17 | default Keybind toggle() { 18 | return Keybind.NOT_SET; 19 | } 20 | 21 | @ConfigSection( 22 | name = "Configuration", 23 | description = "Config for item combiner", 24 | position = 1 25 | ) 26 | String configuration = "Configuration"; 27 | 28 | @ConfigItem( 29 | keyName = "itemOneName", 30 | name = "Item One (Tool/Vial)", 31 | description = "Name of the first item", 32 | position = 2 33 | ) 34 | default String itemOneName() { 35 | return ""; 36 | } 37 | 38 | @ConfigItem( 39 | keyName = "itemOneAmt", 40 | name = "Item One Amount", 41 | description = "Amount of the first item", 42 | position = 3 43 | ) 44 | default int itemOneAmt() { 45 | return 14; 46 | } 47 | 48 | @ConfigItem( 49 | keyName = "itemTwoName", 50 | name = "Item Two (Herb/Second/Gem/Etc.)", 51 | description = "Name of the second item", 52 | position = 4 53 | ) 54 | default String itemTwoName() { 55 | return ""; 56 | } 57 | 58 | @ConfigItem( 59 | keyName = "itemTwoAmt", 60 | name = "Item Two Amount", 61 | description = "Amount of the second item", 62 | position = 4 63 | ) 64 | default int itemTwoAmt() { 65 | return 14; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/JadAutoPrayers/jadautoprayers.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Jad Auto Prayer's" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "JadAutoPrayers" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "JadAutoPrayersPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/JadAutoPrayers/src/main/java/com/plugins/JadAutoPrayersConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | 7 | @ConfigGroup("JadAutoPrayers") 8 | public interface JadAutoPrayersConfig extends Config { 9 | @ConfigItem( 10 | keyName = "eagleEye", 11 | name = "Use Eagle Eye?", 12 | description = "", 13 | position = 1 14 | ) 15 | default boolean eagleEye() { 16 | return false; 17 | } 18 | 19 | @ConfigItem( 20 | keyName = "useRigour", 21 | name = "Use Rigour?", 22 | description = "", 23 | position = 2 24 | ) 25 | default boolean rigour() { 26 | return false; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/OneTickSwitcher/onetickswitcher.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "One Tick Switcher" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "OneTickSwitcher" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "OneTickSwitcherPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PiggyUtils/piggyutils.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Piggy Utils" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "ALL PiggyPlugin's requires " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "PiggyUtils" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "PiggyUtilsPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | } 10 | tasks { 11 | jar { 12 | manifest { 13 | attributes(mapOf( 14 | "Plugin-Version" to project.version, 15 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 16 | "Plugin-Provider" to project.extra["PluginProvider"], 17 | "Plugin-Description" to project.extra["PluginDescription"], 18 | "Plugin-License" to project.extra["PluginLicense"] 19 | )) 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PiggyUtils/src/main/java/com/plugins/API/BankUtil.java: -------------------------------------------------------------------------------- 1 | package com.plugins.API; 2 | 3 | import com.plugins.Collections.Bank; 4 | import com.plugins.Collections.query.ItemQuery; 5 | import net.runelite.api.widgets.Widget; 6 | 7 | public class BankUtil { 8 | 9 | public static ItemQuery nameContainsNoCase(String name) { 10 | return Bank.search().filter(widget -> widget.getName().toLowerCase().contains(name.toLowerCase())); 11 | } 12 | public static int getItemAmount(int itemId) { 13 | return getItemAmount(itemId, false); 14 | } 15 | 16 | public static int getItemAmount(int itemId, boolean stacked) { 17 | return stacked ? 18 | Bank.search().withId(itemId).first().map(Widget::getItemQuantity).orElse(0) : 19 | Bank.search().withId(itemId).result().size(); 20 | } 21 | 22 | public static int getItemAmount(String itemName) { 23 | return nameContainsNoCase(itemName).result().size(); 24 | } 25 | 26 | 27 | public static boolean hasItem(int id) { 28 | return hasItem(id, 1, false); 29 | } 30 | 31 | public static boolean hasItem(int id, int amount) { 32 | return getItemAmount(id, false) >= amount; 33 | } 34 | 35 | public static boolean hasItem(int id, int amount, boolean stacked) { 36 | return getItemAmount(id, stacked) >= amount; 37 | } 38 | 39 | public static boolean hasAny(int ...ids) { 40 | for (int id : ids) { 41 | if (getItemAmount(id) > 0) { 42 | return true; 43 | } 44 | } 45 | return false; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PiggyUtils/src/main/java/com/plugins/API/EquipmentUtil.java: -------------------------------------------------------------------------------- 1 | package com.plugins.API; 2 | 3 | import com.plugins.Collections.Equipment; 4 | 5 | public class EquipmentUtil { 6 | public static boolean hasItem(String name) { 7 | return Equipment.search().nameContainsNoCase(name).first().isPresent(); 8 | } 9 | 10 | public static boolean hasItems(String ...names) { 11 | for (String name : names) { 12 | if (!hasItem(name)) { 13 | return false; 14 | } 15 | } 16 | 17 | return true; 18 | } 19 | 20 | public static boolean hasItem(int id) { 21 | return Equipment.search().withId(id).first().isPresent(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PiggyUtils/src/main/java/com/plugins/API/NpcUtil.java: -------------------------------------------------------------------------------- 1 | package com.plugins.API; 2 | 3 | import com.plugins.Collections.NPCs; 4 | import com.plugins.Collections.query.NPCQuery; 5 | import net.runelite.api.NPC; 6 | 7 | import java.util.Optional; 8 | 9 | public class NpcUtil { 10 | 11 | public static Optional getNpc(String name, boolean caseSensitive) { 12 | if (caseSensitive) { 13 | return NPCs.search().withName(name).nearestToPlayer(); 14 | } else { 15 | return nameContainsNoCase(name).nearestToPlayer(); 16 | } 17 | } 18 | 19 | public static NPCQuery nameContainsNoCase(String name) { 20 | return NPCs.search().filter(npcs -> npcs.getName() != null && npcs.getName().toLowerCase().contains(name.toLowerCase())); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PiggyUtils/src/main/java/com/plugins/API/ObjectUtil.java: -------------------------------------------------------------------------------- 1 | package com.plugins.API; 2 | 3 | import com.plugins.Collections.TileObjects; 4 | import com.plugins.Collections.query.TileObjectQuery; 5 | import net.runelite.api.ObjectComposition; 6 | import net.runelite.api.TileObject; 7 | 8 | import java.util.Arrays; 9 | import java.util.Optional; 10 | 11 | public class ObjectUtil { 12 | 13 | public static Optional getNearestBank() { 14 | return TileObjects.search().filter(tileObject -> { 15 | ObjectComposition comp = TileObjectQuery.getObjectComposition(tileObject); 16 | if (comp == null) 17 | return false; 18 | return comp.getName().toLowerCase().contains("bank") && Arrays.stream(comp.getActions()).anyMatch(action -> action.toLowerCase().contains("bank") || action.toLowerCase().contains("use") || action.contains("open")); 19 | }).nearestToPlayer(); 20 | } 21 | 22 | public static Optional getNearest(String name, boolean caseSensitive) { 23 | if (caseSensitive) { 24 | return TileObjects.search().withName(name).nearestToPlayer(); 25 | } else { 26 | return withNameNoCase(name).nearestToPlayer(); 27 | } 28 | } 29 | 30 | public static Optional getNearest(int id) { 31 | return TileObjects.search().withId(id).nearestToPlayer(); 32 | } 33 | 34 | public static Optional getNearestNameContains(String name) { 35 | return nameContainsNoCase(name).nearestToPlayer(); 36 | } 37 | 38 | public static TileObjectQuery withNameNoCase(String name) { 39 | return TileObjects.search().filter(tileObject -> { 40 | ObjectComposition comp = TileObjectQuery.getObjectComposition(tileObject); 41 | if (comp == null) 42 | return false; 43 | return comp.getName().toLowerCase().equals(name.toLowerCase()); 44 | }); 45 | } 46 | 47 | public static TileObjectQuery nameContainsNoCase(String name) { 48 | return TileObjects.search().filter(tileObject -> { 49 | ObjectComposition comp = TileObjectQuery.getObjectComposition(tileObject); 50 | if (comp == null) 51 | return false; 52 | return comp.getName().toLowerCase().contains(name.toLowerCase()); 53 | }); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PiggyUtils/src/main/java/com/plugins/API/SpellUtil.java: -------------------------------------------------------------------------------- 1 | package com.plugins.API; 2 | 3 | import com.plugins.Packets.PacketUtils.WidgetInfoExtended; 4 | import net.runelite.api.Client; 5 | import net.runelite.api.widgets.Widget; 6 | 7 | public class SpellUtil { 8 | public static WidgetInfoExtended parseStringForWidgetInfoExtended(String input) { 9 | for (WidgetInfoExtended value : WidgetInfoExtended.values()) { 10 | if (value.name().equalsIgnoreCase("SPELL_" + input.replace(" ", "_"))) { 11 | return value; 12 | } 13 | } 14 | return null; 15 | } 16 | 17 | public static Widget getSpellWidget(Client client, String input) { 18 | return client.getWidget(parseStringForWidgetInfoExtended(input).getPackedId()); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PiggyUtils/src/main/java/com/plugins/API/TileItemUtil.java: -------------------------------------------------------------------------------- 1 | package com.plugins.API; 2 | 3 | public class TileItemUtil { 4 | // will add stuff as i need it / if i need it otherwise might delete 5 | } 6 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PiggyUtils/src/main/java/com/plugins/PiggyUtilsPlugin.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import com.plugins.EthanApiPlugin; 4 | import com.plugins.PacketUtilsPlugin; 5 | import lombok.extern.slf4j.Slf4j; 6 | import net.runelite.client.plugins.Plugin; 7 | import net.runelite.client.plugins.PluginDependency; 8 | import net.runelite.client.plugins.PluginDescriptor; 9 | 10 | @PluginDescriptor(name = "[PP] PiggyUtils", 11 | description = "Utility Plugin for PiggyPlugins", 12 | tags = {"piggy","ethan"}) 13 | @PluginDependency(EthanApiPlugin.class) 14 | @PluginDependency(PacketUtilsPlugin.class) 15 | @Slf4j 16 | public class PiggyUtilsPlugin extends Plugin { 17 | @Override 18 | protected void startUp() throws Exception { 19 | log.info("[PiggyUtils] Piggy Utils started"); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PowerSkiller/powerskiller.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Power Skiller" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "PowerSkiller" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "PowerSkillerPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PowerSkiller/src/main/java/com/plugins/PowerSkillerConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | import net.runelite.client.config.Keybind; 7 | 8 | @ConfigGroup("PowerSkiller") 9 | public interface PowerSkillerConfig extends Config { 10 | @ConfigItem( 11 | keyName = "toggle", 12 | name = "Toggle", 13 | description = "", 14 | position = -2 15 | ) 16 | default Keybind toggle() { 17 | return Keybind.NOT_SET; 18 | } 19 | 20 | @ConfigItem( 21 | keyName = "searchNpc", 22 | name = "Search NPCs (for fishing, etc)", 23 | description = "For things like fishing spots", 24 | position = -1 25 | ) 26 | default boolean searchNpc() { 27 | return false; 28 | } 29 | 30 | @ConfigItem( 31 | name = "Object", 32 | keyName = "objectToInteract", 33 | description = "Game obejct you will be interacting with", 34 | position = 0 35 | ) 36 | default String objectToInteract() { 37 | return "Tree"; 38 | } 39 | 40 | @ConfigItem( 41 | name = "Tool(s)", 42 | keyName = "toolsToUse", 43 | description = "Tools required to act with your object, can type ` axe` or ` pickaxe` to ignore the type", 44 | position = 1 45 | ) 46 | default String toolsToUse() { 47 | return " axe"; 48 | } 49 | 50 | @ConfigItem( 51 | name = "Keep Items", 52 | keyName = "itemToKeep", 53 | description = "Items you don't want dropped. Separate items by comma,no space. Good for UIM", 54 | position = 2 55 | ) 56 | default String itemsToKeep() { 57 | return "coins,rune pouch,divine rune pouch,looting bag,clue scroll"; 58 | } 59 | 60 | @ConfigItem( 61 | name = "Empty slots", 62 | keyName = "emptySlots", 63 | description = "Amount of empty slots you have to skill with, mostly a UIM feature lol", 64 | position = 3 65 | ) 66 | default int emptySlots() { 67 | return 28; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PowerSkiller/src/main/java/com/plugins/State.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | public enum State { 4 | FIND_OBJECT, 5 | ANIMATING, 6 | DROP_ITEMS, 7 | MISSING_TOOLS 8 | } 9 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PrayAgainstPlayer/prayagainstplayer.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Pray Against Player" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's Converted " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "PrayAgainstPlayer" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "PrayAgainstPlayerPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/PrayAgainstPlayer/src/main/java/com/plugins/PlayerContainer.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.api.Player; 4 | 5 | /** 6 | * Contains a player object 7 | * When they attacked me 8 | * And (in milliseconds) when to expire the overlay around them 9 | */ 10 | public class PlayerContainer 11 | { 12 | 13 | private final Player player; 14 | private final long whenTheyAttackedMe; 15 | private final int millisToExpireHighlight; 16 | 17 | PlayerContainer(final Player player, final long whenTheyAttackedMe, final int millisToExpireHighlight) 18 | { 19 | this.player = player; 20 | this.whenTheyAttackedMe = whenTheyAttackedMe; 21 | this.millisToExpireHighlight = millisToExpireHighlight; 22 | } 23 | 24 | //getters 25 | public Player getPlayer() 26 | { 27 | return player; 28 | } 29 | 30 | long getWhenTheyAttackedMe() 31 | { 32 | return whenTheyAttackedMe; 33 | } 34 | 35 | int getMillisToExpireHighlight() 36 | { 37 | return millisToExpireHighlight; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/README.md: -------------------------------------------------------------------------------- 1 | ### Piggy Plugins - Converted by .Zalc (CagoMyre) 2 | 3 | Visit the [Piggy-Plugins Repo](https://github.com/0Hutch/PiggyPlugins) for more information. -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/RooftopAgility/rooftopagility.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Rooftop Agility" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's Converted " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "RooftopAgility" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "RooftopAgilityPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/RooftopAgility/src/main/Piggy-Converted/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | build/ 3 | !gradle/wrapper/gradle-wrapper.jar 4 | !**/src/main/**/build/ 5 | !**/src/test/**/build/ 6 | 7 | ### IntelliJ IDEA ### 8 | .idea/modules.xml 9 | .idea/jarRepositories.xml 10 | .idea/compiler.xml 11 | .idea/libraries/ 12 | *.iws 13 | *.iml 14 | *.ipr 15 | out/ 16 | !**/src/main/**/out/ 17 | !**/src/test/**/out/ 18 | 19 | ### Eclipse ### 20 | .apt_generated 21 | .classpath 22 | .factorypath 23 | .project 24 | .settings 25 | .springBeans 26 | .sts4-cache 27 | bin/ 28 | !**/src/main/**/bin/ 29 | !**/src/test/**/bin/ 30 | 31 | ### NetBeans ### 32 | /nbproject/private/ 33 | /nbbuild/ 34 | /dist/ 35 | /nbdist/ 36 | /.nb-gradle/ 37 | 38 | ### VS Code ### 39 | .vscode/ 40 | 41 | ### Mac OS ### 42 | .DS_Store -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/RooftopAgility/src/main/Piggy-Converted/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | id("java") 3 | } 4 | 5 | group = "com.launcher" 6 | version = "1.9.13.3" 7 | 8 | repositories { 9 | mavenCentral() 10 | } 11 | 12 | dependencies { 13 | testImplementation(platform("org.junit:junit-bom:5.9.1")) 14 | testImplementation("org.junit.jupiter:junit-jupiter") 15 | } 16 | 17 | tasks.test { 18 | useJUnitPlatform() 19 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/RooftopAgility/src/main/java/com/plugins/Course.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import lombok.Getter; 4 | 5 | import java.util.Arrays; 6 | 7 | @Getter 8 | public enum Course { 9 | GNOME("Gnome Stronghold", 9781), 10 | DRAYNOR("Draynor Village", 12338, 12339), 11 | AL_KHARID("Al Kharid", 13105), 12 | VARROCK("Varrock", 12853, 12572), 13 | CANAFIS("Canafis", 13878), 14 | APE_ATOLL("Ape Atoll", 11050, 10794), 15 | FALADOR("Falador", 12084), 16 | SEERS("Seers Village", 10806), 17 | POLLNIVNEACH("Pollnivneach"), 18 | PRIFDDINAS("Prifddinas", 12895, 13151, 13152), 19 | RELLEKKA("Rellekka", 10297, 10553), 20 | ARDOUGNE("Ardougne", 10547); 21 | 22 | private final String name; 23 | private final int[] regionIDs; 24 | 25 | Course(String name, int ...regionIDs) { 26 | this.name = name; 27 | this.regionIDs = regionIDs; 28 | } 29 | 30 | public static String getCourseNameByRegionID(int id) { 31 | for (Course course : Course.values()) { 32 | for (int regionID : course.regionIDs) { 33 | if (regionID == id) { 34 | return course.name; 35 | } 36 | } 37 | } 38 | return null; 39 | } 40 | 41 | public static String getCourseNameFromMapRegions(int[] mapRegions) { 42 | return Arrays.stream(Course.values()) 43 | .filter(course -> Arrays.stream(course.regionIDs).anyMatch(regionID -> containsRegion(mapRegions, regionID))) 44 | .map(course -> course.name) 45 | .findFirst() 46 | .orElse(null); 47 | } 48 | 49 | private static boolean containsRegion(int[] regions, int regionID) { 50 | return Arrays.stream(regions).anyMatch(region -> region == regionID); 51 | } 52 | } 53 | 54 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/RooftopAgility/src/main/java/com/plugins/Portals.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import lombok.Getter; 4 | 5 | import static net.runelite.api.NullObjectID.NULL_36241; 6 | import static net.runelite.api.NullObjectID.NULL_36242; 7 | import static net.runelite.api.NullObjectID.NULL_36243; 8 | import static net.runelite.api.NullObjectID.NULL_36244; 9 | import static net.runelite.api.NullObjectID.NULL_36245; 10 | import static net.runelite.api.NullObjectID.NULL_36246; 11 | 12 | public enum Portals { 13 | PORTAL_ONE(NULL_36241, 1), 14 | PORTAL_TWO(NULL_36242, 2), 15 | PORTAL_THREE(NULL_36243, 3), 16 | PORTAL_FOUR(NULL_36244, 4), 17 | PORTAL_FIVE(NULL_36245, 5), 18 | PORTAL_SIX(NULL_36246, 6); 19 | 20 | //getters 21 | @Getter 22 | private final int portalID; 23 | 24 | @Getter 25 | private final int varbitValue; 26 | 27 | //constructor 28 | Portals(final int portalID, final int varbitValue) { 29 | this.portalID = portalID; 30 | this.varbitValue = varbitValue; 31 | } 32 | 33 | //function that we will use in our plugin. We provide the current Portal varbit value and it returns the correlating Portal. i.e. a varbit value of 2 would return portal 2 34 | public static Portals getPortal(int varbitValue) { 35 | for (Portals portal : values()) { 36 | if (portal.getVarbitValue() == varbitValue) { 37 | return portal; 38 | } 39 | } 40 | return null; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/RooftopAgility/src/main/java/com/plugins/State.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | public enum State { 4 | ANIMATING, 5 | CAST_CAMELOT_TELEPORT, 6 | FIND_OBSTACLE, 7 | HANDLE_BREAK, 8 | MARK_OF_GRACE, 9 | MOVING, 10 | PRIFF_PORTAL, 11 | RESTOCK_ITEMS, 12 | TIMEOUT, 13 | EAT_SUMMER_PIE, 14 | OUT_OF_SUMMER_PIES, 15 | EAT_FOOD, 16 | ENABLE_RUN 17 | } 18 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/SixHourLog/sixhourlog.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "6 Hour Log" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "SixHourLog" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "SixHourLogPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/SpeedDartMaker/speeddartmaker.gradle.kts: -------------------------------------------------------------------------------- 1 | version = "1.0.0" 2 | 3 | project.extra["PluginName"] = "Speed Dart Maker" // This is the name that is used in the external plugin manager panel 4 | project.extra["PluginDescription"] = "PiggyPlugin's " + project.extra["PluginName"] // This is the description that is used in the external plugin manager panel 5 | project.extra["PluginPackageId"] = "SpeedDartMaker" // This is the plugin package folder after the default group package. 6 | project.extra["PluginMainClassName"] = "SpeedDartMakerPlugin" // This is the plugin's main class which extends Plugin 7 | dependencies { 8 | implementation(project(":EthanApi")) 9 | implementation(project(":PiggyUtils")) 10 | 11 | } 12 | tasks { 13 | jar { 14 | manifest { 15 | attributes(mapOf( 16 | "Plugin-Version" to project.version, 17 | "Plugin-Id" to nameToId(project.extra["PluginName"] as String), 18 | "Plugin-Provider" to project.extra["PluginProvider"], 19 | "Plugin-Description" to project.extra["PluginDescription"], 20 | "Plugin-License" to project.extra["PluginLicense"] 21 | )) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/SpeedDartMaker/src/main/java/com/plugins/SpeedDartMakerConfig.java: -------------------------------------------------------------------------------- 1 | package com.plugins; 2 | 3 | import net.runelite.client.config.Config; 4 | import net.runelite.client.config.ConfigGroup; 5 | import net.runelite.client.config.ConfigItem; 6 | import net.runelite.client.config.Keybind; 7 | import net.runelite.client.config.Range; 8 | 9 | @ConfigGroup("SpeedDartMaker") 10 | public interface SpeedDartMakerConfig extends Config { 11 | @ConfigItem( 12 | keyName = "Toggle", 13 | name = "Toggle", 14 | description = "", 15 | position = 0 16 | ) 17 | default Keybind toggle() { 18 | return Keybind.NOT_SET; 19 | } 20 | 21 | @Range( 22 | min = 1, 23 | max = 10 24 | ) 25 | @ConfigItem( 26 | keyName = "perTick", 27 | name = "Darts per tick", 28 | description = "", 29 | position = 1 30 | ) 31 | default int perTick() { 32 | return 10; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Owain van Brakel 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | 26 | plugins { 27 | `kotlin-dsl` 28 | } 29 | 30 | repositories { 31 | jcenter() 32 | } 33 | 34 | dependencies { 35 | implementation(gradleApi()) 36 | implementation(group = "org.json", name = "json", version = "20190722") 37 | implementation(group = "com.savvasdalkitsis", name = "json-merge", version = "0.0.4") 38 | implementation(group = "com.squareup.okhttp3", name = "okhttp", version = "4.2.2") 39 | } 40 | 41 | kotlinDslPluginOptions { 42 | experimentalWarning.set(false) 43 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/buildSrc/src/main/kotlin/BootstrapPlugin.kt: -------------------------------------------------------------------------------- 1 | import org.gradle.api.Plugin 2 | import org.gradle.api.Project 3 | import org.gradle.kotlin.dsl.register 4 | 5 | class BootstrapPlugin : Plugin { 6 | override fun apply(project: Project) { 7 | project.tasks.register("bootstrapPlugins") {} 8 | } 9 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/buildSrc/src/main/kotlin/JsonBuilder.kt: -------------------------------------------------------------------------------- 1 | import org.json.JSONArray 2 | import org.json.JSONObject 3 | 4 | class JsonBuilder() { 5 | private var json = JSONObject() 6 | 7 | constructor(vararg pairs: Pair) : this() { 8 | add(*pairs) 9 | } 10 | 11 | fun add(vararg pairs: Pair) { 12 | for ((key, value) in pairs) { 13 | when (value) { 14 | is Boolean -> json.put(key, value) 15 | is Number -> add(key, value) 16 | is String -> json.put(key, value) 17 | is JsonBuilder -> json.put(key, value.json) 18 | is Array<*> -> add(key, value) 19 | is JSONObject -> json.put(key, value) 20 | is JSONArray -> json.put(key, value) 21 | } 22 | } 23 | } 24 | 25 | fun add(key: String, value: Number): JsonBuilder { 26 | when (value) { 27 | is Int -> json.put(key, value) 28 | is Long -> json.put(key, value) 29 | is Float -> json.put(key, value) 30 | is Double -> json.put(key, value) 31 | else -> {} 32 | } 33 | 34 | return this 35 | } 36 | 37 | fun add(key: String, items: Array): JsonBuilder { 38 | val jsonArray = JSONArray() 39 | items.forEach { 40 | when (it) { 41 | is String,is Long,is Int, is Boolean -> jsonArray.put(it) 42 | is JsonBuilder -> jsonArray.put(it.json) 43 | else -> try {jsonArray.put(it)} catch (ignored:Exception) { 44 | 45 | } 46 | } 47 | } 48 | 49 | json.put(key, jsonArray) 50 | 51 | return this 52 | } 53 | 54 | fun jsonObject() = json 55 | 56 | override fun toString() = json.toString() 57 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/buildSrc/src/main/kotlin/Project.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Owain van Brakel 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, this 9 | * list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 18 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 21 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | 26 | fun nameToId(name: String): String { 27 | return name.replace("[^A-Za-z]".toRegex(), "").toLowerCase() + "-plugin" 28 | } 29 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/buildSrc/src/main/kotlin/SemVer.kt: -------------------------------------------------------------------------------- 1 | data class SemVer( 2 | var major: Int = 0, 3 | var minor: Int = 0, 4 | var patch: Int = 0 5 | ) : Comparable { 6 | companion object { 7 | @JvmStatic 8 | fun parse(version: String): SemVer { 9 | val pattern = Regex("""(0|[1-9]\d*)?(?:\.)?(0|[1-9]\d*)?(?:\.)?(0|[1-9]\d*)?(?:-([\dA-z\-]+(?:\.[\dA-z\-]+)*))?(?:\+([\dA-z\-]+(?:\.[\dA-z\-]+)*))?""") 10 | val result = pattern.matchEntire(version) 11 | ?: throw IllegalArgumentException("Invalid version string [$version]") 12 | return SemVer( 13 | major = if (result.groupValues[1].isEmpty()) 0 else result.groupValues[1].toInt(), 14 | minor = if (result.groupValues[2].isEmpty()) 0 else result.groupValues[2].toInt(), 15 | patch = if (result.groupValues[3].isEmpty()) 0 else result.groupValues[3].toInt() 16 | ) 17 | } 18 | } 19 | 20 | init { 21 | require(major >= 0) { "Major version must be a positive number" } 22 | require(minor >= 0) { "Minor version must be a positive number" } 23 | require(patch >= 0) { "Patch version must be a positive number" } 24 | } 25 | 26 | override fun toString(): String = buildString { 27 | append("$major.$minor.$patch") 28 | } 29 | 30 | override fun compareTo(other: SemVer): Int { 31 | if (major > other.major) return 1 32 | if (major < other.major) return -1 33 | if (minor > other.minor) return 1 34 | if (minor < other.minor) return -1 35 | if (patch > other.patch) return 1 36 | if (patch < other.patch) return -1 37 | 38 | return -1 39 | } 40 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/buildSrc/src/main/kotlin/VersionPlugin.kt: -------------------------------------------------------------------------------- 1 | import org.gradle.api.Plugin 2 | import org.gradle.api.Project 3 | import org.gradle.kotlin.dsl.register 4 | 5 | class VersionPlugin : Plugin { 6 | override fun apply(project: Project) { 7 | project.tasks.register("bumpVersion") {} 8 | project.tasks.register("bumpVersions") {} 9 | } 10 | } -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.caching=false 2 | org.gradle.warning.mode=all 3 | org.gradle.parallel=true 4 | org.gradle.console=rich 5 | org.gradle.configureondemand=true 6 | org.gradle.jvmargs=-XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 7 | kapt.incremental.apt=false 8 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CagoThaPlug/LEECH/42710fb956881fddbadf611f35d203523eb9be5a/Conversions/Piggy-Converted/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Jul 12 20:59:40 CDT 2023 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.1-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /Conversions/Piggy-Converted/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "Piggy-Converted" 2 | 3 | include(":AoeWarn") 4 | include(":AutoJugHumidifier") 5 | include(":AutoRifts") 6 | include(":CannonReloader") 7 | include(":HerbCleaner") 8 | include(":ItemCombiner") 9 | include(":JadAutoPrayers") 10 | include(":OneTickSwitcher") 11 | include(":PiggyUtils") 12 | include(":PowerSkiller") 13 | include(":PrayAgainstPlayer") 14 | include(":RooftopAgility") 15 | include(":SixHourLog") 16 | include(":SpeedDartMaker") 17 | include(":EthanApi") 18 | 19 | for (project in rootProject.children) { 20 | project.apply { 21 | projectDir = file(name) 22 | buildFileName = "$name.gradle.kts" 23 | 24 | require(projectDir.isDirectory) { "Project '${project.path} must have a $projectDir directory" } 25 | require(buildFile.isFile) { "Project '${project.path} must have a $buildFile build script" } 26 | } 27 | } 28 | include("RooftopAgility:src:main:Piggy-Converted") 29 | findProject(":RooftopAgility:src:main:Piggy-Converted")?.name = "Piggy-Converted" 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2023, Cago 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | 1. Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | 2. Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | 3. Neither the name of the copyright holder nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | --------------------------------------------------------------------------------