diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 649150980d..335f60e985 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -25,9 +25,9 @@ object ProjectVersions { const val launcherVersion = "2.2.0" - const val rlVersion = "1.7.17" + const val rlVersion = "1.7.18" - const val openosrsVersion = "4.9.8" + const val openosrsVersion = "4.9.9" const val rsversion = 198 const val cacheversion = 165 diff --git a/runelite-api/src/main/java/net/runelite/api/ItemID.java b/runelite-api/src/main/java/net/runelite/api/ItemID.java index d8173d7769..196a9103b5 100644 --- a/runelite-api/src/main/java/net/runelite/api/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java @@ -12022,5 +12022,11 @@ public final class ItemID public static final int CORRUPTED_ESCAPE_CRYSTAL = 25959; public static final int CRYSTAL_PADDLEFISH = 25960; public static final int ESCAPE_CRYSTAL = 25961; + public static final int CRYPT_KEY = 25963; + public static final int RANIS_HEAD = 25964; + public static final int STRANGE_SPIDER_EGGS = 25965; + public static final int SULPHURIC_ACID = 25966; + public static final int STICKY_NOTE = 25967; + public static final int HESPORI_BARK = 25968; /* This file is automatically generated. Do not edit. */ } \ No newline at end of file diff --git a/runelite-api/src/main/java/net/runelite/api/NpcID.java b/runelite-api/src/main/java/net/runelite/api/NpcID.java index 84c1d60367..e87336fd5d 100644 --- a/runelite-api/src/main/java/net/runelite/api/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java @@ -9426,5 +9426,32 @@ public final class NpcID public static final int SRARACHA_11159 = 11159; public static final int SRARACHA_11160 = 11160; public static final int DUSTY_ALIV = 11161; + public static final int MYSTERIOUS_STRANGER_11162 = 11162; + public static final int VYREWATCH_11169 = 11169; + public static final int VYREWATCH_11170 = 11170; + public static final int VYREWATCH_11171 = 11171; + public static final int VYREWATCH_11172 = 11172; + public static final int VYREWATCH_11173 = 11173; + public static final int SPIDER_11174 = 11174; + public static final int SPIDER_11175 = 11175; + public static final int SPIDER_11176 = 11176; + public static final int RANIS_DRAKAN_11177 = 11177; + public static final int VERZIK_VITUR_11178 = 11178; + public static final int VERZIK_VITUR_11179 = 11179; + public static final int VULCAN_ORVOROS = 11180; + public static final int NYLOCAS_QUEEN = 11181; + public static final int NYLOCAS = 11182; + public static final int THE_MAIDEN_OF_SUGADINTI_11183 = 11183; + public static final int PESTILENT_BLOAT_11184 = 11184; + public static final int NYLOCAS_VASILIAS_11185 = 11185; + public static final int SOTETSEG_11186 = 11186; + public static final int XARPUS_11187 = 11187; + public static final int NYLOCAS_ATHANATOS_11188 = 11188; + public static final int NYLOCAS_ISCHYROS_11189 = 11189; + public static final int NYLOCAS_TOXOBOLOS_11190 = 11190; + public static final int NYLOCAS_HAGIOS_11191 = 11191; + public static final int HESPORI_11192 = 11192; + public static final int FLOWER_11193 = 11193; + public static final int FLOWER_11194 = 11194; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/NullItemID.java b/runelite-api/src/main/java/net/runelite/api/NullItemID.java index 877196148b..88ea88234f 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullItemID.java @@ -13729,5 +13729,6 @@ public final class NullItemID public static final int NULL_25954 = 25954; public static final int NULL_25955 = 25955; public static final int NULL_25957 = 25957; + public static final int NULL_25962 = 25962; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java index 3568e7a309..187bb360d8 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java @@ -1719,5 +1719,11 @@ public final class NullNpcID public static final int NULL_11149 = 11149; public static final int NULL_11150 = 11150; public static final int NULL_11151 = 11151; + public static final int NULL_11163 = 11163; + public static final int NULL_11164 = 11164; + public static final int NULL_11165 = 11165; + public static final int NULL_11166 = 11166; + public static final int NULL_11167 = 11167; + public static final int NULL_11168 = 11168; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java index 5af135a544..f753cecd92 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java @@ -15711,6 +15711,8 @@ public final class NullObjectID public static final int NULL_33090 = 33090; public static final int NULL_33091 = 33091; public static final int NULL_33110 = 33110; + public static final int NULL_33111 = 33111; + public static final int NULL_33112 = 33112; public static final int NULL_33130 = 33130; public static final int NULL_33131 = 33131; public static final int NULL_33132 = 33132; @@ -15934,7 +15936,6 @@ public final class NullObjectID public static final int NULL_34058 = 34058; public static final int NULL_34059 = 34059; public static final int NULL_34317 = 34317; - public static final int NULL_34318 = 34318; public static final int NULL_34320 = 34320; public static final int NULL_34321 = 34321; public static final int NULL_34322 = 34322; @@ -20208,7 +20209,6 @@ public final class NullObjectID public static final int NULL_41407 = 41407; public static final int NULL_41411 = 41411; public static final int NULL_41419 = 41419; - public static final int NULL_41430 = 41430; public static final int NULL_41432 = 41432; public static final int NULL_41433 = 41433; public static final int NULL_41437 = 41437; @@ -20745,5 +20745,248 @@ public final class NullObjectID public static final int NULL_42504 = 42504; public static final int NULL_42505 = 42505; public static final int NULL_42514 = 42514; + public static final int NULL_42521 = 42521; + public static final int NULL_42522 = 42522; + public static final int NULL_42525 = 42525; + public static final int NULL_42526 = 42526; + public static final int NULL_42527 = 42527; + public static final int NULL_42528 = 42528; + public static final int NULL_42530 = 42530; + public static final int NULL_42533 = 42533; + public static final int NULL_42534 = 42534; + public static final int NULL_42535 = 42535; + public static final int NULL_42536 = 42536; + public static final int NULL_42537 = 42537; + public static final int NULL_42538 = 42538; + public static final int NULL_42539 = 42539; + public static final int NULL_42540 = 42540; + public static final int NULL_42541 = 42541; + public static final int NULL_42542 = 42542; + public static final int NULL_42543 = 42543; + public static final int NULL_42544 = 42544; + public static final int NULL_42545 = 42545; + public static final int NULL_42546 = 42546; + public static final int NULL_42547 = 42547; + public static final int NULL_42548 = 42548; + public static final int NULL_42549 = 42549; + public static final int NULL_42550 = 42550; + public static final int NULL_42551 = 42551; + public static final int NULL_42552 = 42552; + public static final int NULL_42553 = 42553; + public static final int NULL_42554 = 42554; + public static final int NULL_42555 = 42555; + public static final int NULL_42556 = 42556; + public static final int NULL_42557 = 42557; + public static final int NULL_42558 = 42558; + public static final int NULL_42559 = 42559; + public static final int NULL_42560 = 42560; + public static final int NULL_42561 = 42561; + public static final int NULL_42562 = 42562; + public static final int NULL_42563 = 42563; + public static final int NULL_42564 = 42564; + public static final int NULL_42565 = 42565; + public static final int NULL_42566 = 42566; + public static final int NULL_42567 = 42567; + public static final int NULL_42568 = 42568; + public static final int NULL_42569 = 42569; + public static final int NULL_42570 = 42570; + public static final int NULL_42571 = 42571; + public static final int NULL_42572 = 42572; + public static final int NULL_42573 = 42573; + public static final int NULL_42574 = 42574; + public static final int NULL_42575 = 42575; + public static final int NULL_42576 = 42576; + public static final int NULL_42577 = 42577; + public static final int NULL_42578 = 42578; + public static final int NULL_42579 = 42579; + public static final int NULL_42580 = 42580; + public static final int NULL_42581 = 42581; + public static final int NULL_42596 = 42596; + public static final int NULL_42597 = 42597; + public static final int NULL_42598 = 42598; + public static final int NULL_42599 = 42599; + public static final int NULL_42600 = 42600; + public static final int NULL_42607 = 42607; + public static final int NULL_42608 = 42608; + public static final int NULL_42609 = 42609; + public static final int NULL_42610 = 42610; + public static final int NULL_42611 = 42611; + public static final int NULL_42612 = 42612; + public static final int NULL_42613 = 42613; + public static final int NULL_42614 = 42614; + public static final int NULL_42615 = 42615; + public static final int NULL_42616 = 42616; + public static final int NULL_42617 = 42617; + public static final int NULL_42618 = 42618; + public static final int NULL_42619 = 42619; + public static final int NULL_42620 = 42620; + public static final int NULL_42621 = 42621; + public static final int NULL_42622 = 42622; + public static final int NULL_42623 = 42623; + public static final int NULL_42624 = 42624; + public static final int NULL_42625 = 42625; + public static final int NULL_42626 = 42626; + public static final int NULL_42627 = 42627; + public static final int NULL_42628 = 42628; + public static final int NULL_42634 = 42634; + public static final int NULL_42635 = 42635; + public static final int NULL_42636 = 42636; + public static final int NULL_42637 = 42637; + public static final int NULL_42638 = 42638; + public static final int NULL_42639 = 42639; + public static final int NULL_42640 = 42640; + public static final int NULL_42647 = 42647; + public static final int NULL_42648 = 42648; + public static final int NULL_42650 = 42650; + public static final int NULL_42651 = 42651; + public static final int NULL_42652 = 42652; + public static final int NULL_42653 = 42653; + public static final int NULL_42654 = 42654; + public static final int NULL_42655 = 42655; + public static final int NULL_42656 = 42656; + public static final int NULL_42657 = 42657; + public static final int NULL_42658 = 42658; + public static final int NULL_42659 = 42659; + public static final int NULL_42660 = 42660; + public static final int NULL_42661 = 42661; + public static final int NULL_42662 = 42662; + public static final int NULL_42663 = 42663; + public static final int NULL_42664 = 42664; + public static final int NULL_42665 = 42665; + public static final int NULL_42666 = 42666; + public static final int NULL_42667 = 42667; + public static final int NULL_42668 = 42668; + public static final int NULL_42669 = 42669; + public static final int NULL_42670 = 42670; + public static final int NULL_42671 = 42671; + public static final int NULL_42672 = 42672; + public static final int NULL_42673 = 42673; + public static final int NULL_42674 = 42674; + public static final int NULL_42675 = 42675; + public static final int NULL_42676 = 42676; + public static final int NULL_42677 = 42677; + public static final int NULL_42678 = 42678; + public static final int NULL_42679 = 42679; + public static final int NULL_42680 = 42680; + public static final int NULL_42681 = 42681; + public static final int NULL_42682 = 42682; + public static final int NULL_42683 = 42683; + public static final int NULL_42684 = 42684; + public static final int NULL_42685 = 42685; + public static final int NULL_42686 = 42686; + public static final int NULL_42687 = 42687; + public static final int NULL_42688 = 42688; + public static final int NULL_42689 = 42689; + public static final int NULL_42690 = 42690; + public static final int NULL_42691 = 42691; + public static final int NULL_42692 = 42692; + public static final int NULL_42693 = 42693; + public static final int NULL_42694 = 42694; + public static final int NULL_42695 = 42695; + public static final int NULL_42696 = 42696; + public static final int NULL_42697 = 42697; + public static final int NULL_42698 = 42698; + public static final int NULL_42699 = 42699; + public static final int NULL_42700 = 42700; + public static final int NULL_42701 = 42701; + public static final int NULL_42702 = 42702; + public static final int NULL_42703 = 42703; + public static final int NULL_42704 = 42704; + public static final int NULL_42705 = 42705; + public static final int NULL_42706 = 42706; + public static final int NULL_42707 = 42707; + public static final int NULL_42708 = 42708; + public static final int NULL_42709 = 42709; + public static final int NULL_42710 = 42710; + public static final int NULL_42711 = 42711; + public static final int NULL_42712 = 42712; + public static final int NULL_42713 = 42713; + public static final int NULL_42714 = 42714; + public static final int NULL_42715 = 42715; + public static final int NULL_42716 = 42716; + public static final int NULL_42717 = 42717; + public static final int NULL_42718 = 42718; + public static final int NULL_42719 = 42719; + public static final int NULL_42720 = 42720; + public static final int NULL_42721 = 42721; + public static final int NULL_42722 = 42722; + public static final int NULL_42723 = 42723; + public static final int NULL_42724 = 42724; + public static final int NULL_42725 = 42725; + public static final int NULL_42726 = 42726; + public static final int NULL_42727 = 42727; + public static final int NULL_42728 = 42728; + public static final int NULL_42729 = 42729; + public static final int NULL_42730 = 42730; + public static final int NULL_42731 = 42731; + public static final int NULL_42732 = 42732; + public static final int NULL_42733 = 42733; + public static final int NULL_42734 = 42734; + public static final int NULL_42735 = 42735; + public static final int NULL_42736 = 42736; + public static final int NULL_42737 = 42737; + public static final int NULL_42738 = 42738; + public static final int NULL_42739 = 42739; + public static final int NULL_42740 = 42740; + public static final int NULL_42741 = 42741; + public static final int NULL_42742 = 42742; + public static final int NULL_42743 = 42743; + public static final int NULL_42744 = 42744; + public static final int NULL_42745 = 42745; + public static final int NULL_42746 = 42746; + public static final int NULL_42747 = 42747; + public static final int NULL_42748 = 42748; + public static final int NULL_42749 = 42749; + public static final int NULL_42750 = 42750; + public static final int NULL_42751 = 42751; + public static final int NULL_42752 = 42752; + public static final int NULL_42753 = 42753; + public static final int NULL_42754 = 42754; + public static final int NULL_42755 = 42755; + public static final int NULL_42756 = 42756; + public static final int NULL_42757 = 42757; + public static final int NULL_42758 = 42758; + public static final int NULL_42759 = 42759; + public static final int NULL_42760 = 42760; + public static final int NULL_42761 = 42761; + public static final int NULL_42762 = 42762; + public static final int NULL_42763 = 42763; + public static final int NULL_42764 = 42764; + public static final int NULL_42765 = 42765; + public static final int NULL_42766 = 42766; + public static final int NULL_42767 = 42767; + public static final int NULL_42768 = 42768; + public static final int NULL_42769 = 42769; + public static final int NULL_42770 = 42770; + public static final int NULL_42771 = 42771; + public static final int NULL_42772 = 42772; + public static final int NULL_42773 = 42773; + public static final int NULL_42774 = 42774; + public static final int NULL_42775 = 42775; + public static final int NULL_42776 = 42776; + public static final int NULL_42777 = 42777; + public static final int NULL_42778 = 42778; + public static final int NULL_42779 = 42779; + public static final int NULL_42780 = 42780; + public static final int NULL_42781 = 42781; + public static final int NULL_42782 = 42782; + public static final int NULL_42783 = 42783; + public static final int NULL_42784 = 42784; + public static final int NULL_42785 = 42785; + public static final int NULL_42786 = 42786; + public static final int NULL_42787 = 42787; + public static final int NULL_42788 = 42788; + public static final int NULL_42789 = 42789; + public static final int NULL_42790 = 42790; + public static final int NULL_42791 = 42791; + public static final int NULL_42792 = 42792; + public static final int NULL_42793 = 42793; + public static final int NULL_42794 = 42794; + public static final int NULL_42795 = 42795; + public static final int NULL_42796 = 42796; + public static final int NULL_42797 = 42797; + public static final int NULL_42798 = 42798; + public static final int NULL_42799 = 42799; + public static final int NULL_42800 = 42800; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/ObjectID.java b/runelite-api/src/main/java/net/runelite/api/ObjectID.java index fa4f49d8f9..4cdc64ad5d 100644 --- a/runelite-api/src/main/java/net/runelite/api/ObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/ObjectID.java @@ -17388,8 +17388,6 @@ public final class ObjectID public static final int SEERS_VILLAGE_PORTAL_33107 = 33107; public static final int YANILLE_WATCHTOWER_PORTAL_33108 = 33108; public static final int YANILLE_PORTAL_33109 = 33109; - public static final int ARENA_33111 = 33111; - public static final int ARENA_33112 = 33112; public static final int FORMIDABLE_PASSAGE = 33113; public static final int DEADMAN_SUPPLY_CHEST_33114 = 33114; public static final int DEADMAN_SUPPLY_CHEST_33115 = 33115; @@ -21755,5 +21753,49 @@ public final class ObjectID public static final int ROCKS_42511 = 42511; public static final int ROCKS_42512 = 42512; public static final int ROCKS_42513 = 42513; + public static final int DOOR_42515 = 42515; + public static final int BARRIER_42516 = 42516; + public static final int ARENA_42517 = 42517; + public static final int ARENA_42518 = 42518; + public static final int ARENA_42519 = 42519; + public static final int ARENA_42520 = 42520; + public static final int STAIRCASE_42523 = 42523; + public static final int DOOR_42524 = 42524; + public static final int GATE_42529 = 42529; + public static final int COFFIN_42531 = 42531; + public static final int COFFIN_42532 = 42532; + public static final int CANDLES_42582 = 42582; + public static final int CANDLES_42583 = 42583; + public static final int CANDLES_42584 = 42584; + public static final int CANDLES_42585 = 42585; + public static final int CANDLES_42586 = 42586; + public static final int CANDLES_42587 = 42587; + public static final int STEPPING_STONE_42588 = 42588; + public static final int STEPPING_STONE_42589 = 42589; + public static final int STRANGE_PLANT = 42590; + public static final int HESPORI_42591 = 42591; + public static final int HESPORI_42592 = 42592; + public static final int HESPORI_42593 = 42593; + public static final int CAVE_42594 = 42594; + public static final int CAVE_42595 = 42595; + public static final int EGG_SAC_42601 = 42601; + public static final int EGG_SAC_42602 = 42602; + public static final int EGG_SAC_42603 = 42603; + public static final int EGG_SAC_42604 = 42604; + public static final int SKELETON_42605 = 42605; + public static final int SKELETON_42606 = 42606; + public static final int WEB_SACK = 42629; + public static final int WEB_SACK_42630 = 42630; + public static final int WEB_SACK_42631 = 42631; + public static final int WEB_SACK_42632 = 42632; + public static final int WEB_SACK_42633 = 42633; + public static final int SPIDER_EGGS = 42641; + public static final int SPIDER_EGGS_42642 = 42642; + public static final int SPIDER_EGGS_42643 = 42643; + public static final int SPIDER_EGGS_42644 = 42644; + public static final int SPIDER_EGGS_42645 = 42645; + public static final int SPIDER_EGGS_42646 = 42646; + public static final int TREE_42649 = 42649; + public static final int BENCH_42801 = 42801; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/ScriptID.java b/runelite-api/src/main/java/net/runelite/api/ScriptID.java index d239d37cd2..0ba345626d 100644 --- a/runelite-api/src/main/java/net/runelite/api/ScriptID.java +++ b/runelite-api/src/main/java/net/runelite/api/ScriptID.java @@ -408,4 +408,7 @@ public final class ScriptID */ @ScriptArguments(integer = 6) public static final int SETTINGS_ZOOM_SLIDER_ONDRAG = 3896; + + @ScriptArguments(integer = 6) + public static final int COLLECTION_DRAW_LIST = 2730; } \ No newline at end of file diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml deleted file mode 100644 index 6fea6c3c4c..0000000000 --- a/runelite-client/pom.xml +++ /dev/null @@ -1,428 +0,0 @@ - - - - 4.0.0 - - - net.runelite - runelite-parent - 1.7.18-SNAPSHOT - - - client - RuneLite Client - - - true - true - - - - - org.slf4j - slf4j-api - - - ch.qos.logback - logback-classic - - - net.sf.jopt-simple - jopt-simple - 5.0.1 - - - com.google.guava - guava - - - - com.google.code.findbugs - jsr305 - - - com.google.errorprone - error_prone_annotations - - - com.google.j2objc - j2objc-annotations - - - org.codehaus.mojo - animal-sniffer-annotations - - - - - com.google.inject - guice - no_aop - - - com.google.code.gson - gson - - - net.runelite.pushingpixels - substance - 8.0.02 - - - net.runelite.pushingpixels - trident - 1.5.00 - runtime - - - org.projectlombok - lombok - provided - - - org.apache.commons - commons-text - 1.2 - - - net.runelite.jogl - jogl-all - 2.4.0-rc-20200429 - - - net.runelite.jogl - jogl-all - 2.4.0-rc-20200429 - natives-windows-amd64 - runtime - - - net.runelite.jogl - jogl-all - 2.4.0-rc-20200429 - natives-windows-i586 - runtime - - - net.runelite.jogl - jogl-all - 2.4.0-rc-20200429 - natives-linux-amd64 - runtime - - - net.runelite.jogl - jogl-all-natives-macosx - 2.4.0-rc-20210117 - runtime - - - net.runelite.gluegen - gluegen-rt - 2.4.0-rc-20200429 - - - net.runelite.gluegen - gluegen-rt - 2.4.0-rc-20200429 - natives-windows-amd64 - runtime - - - net.runelite.gluegen - gluegen-rt - 2.4.0-rc-20200429 - natives-windows-i586 - runtime - - - net.runelite.gluegen - gluegen-rt - 2.4.0-rc-20200429 - natives-linux-amd64 - runtime - - - net.runelite.gluegen - gluegen-rt-natives-macosx - 2.4.0-rc-20210117 - runtime - - - net.runelite.jocl - jocl - 1.0 - - - net.runelite.jocl - jocl - 1.0 - macos-x64 - runtime - - - net.runelite.jocl - jocl - 1.0 - macos-arm64 - runtime - - - net.runelite - archive-patcher - 1.0 - - - - net.java.dev.jna - jna - 4.5.1 - - - net.java.dev.jna - jna-platform - 4.5.1 - - - com.google.code.findbugs - jsr305 - - - - net.runelite - runelite-api - ${project.version} - - - net.runelite - jshell - ${project.version} - true - - - net.runelite - client-patch - ${project.version} - runtime - - - net.runelite - http-api - ${project.version} - - - net.runelite - discord - 1.4 - - - net.runelite - orange-extensions - 1.0 - provided - - - - junit - junit - 4.12 - test - - - org.hamcrest - hamcrest-library - 1.3 - test - - - org.mockito - mockito-core - 3.1.0 - test - - - com.google.inject.extensions - guice-testlib - test - - - com.google.inject.extensions - guice-grapher - test - - - com.squareup.okhttp3 - mockwebserver - 3.7.0 - test - - - - - - - src/main/resources - - logback.xml - - true - - - src/main/resources - - logback.xml - - false - - - - - org.apache.maven.plugins - maven-resources-plugin - 3.0.2 - - - ttf - png - gif - wav - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.1 - - - package - - shade - - - true - shaded - - - - net.runelite.client.RuneLite - - - - - - - - - io.github.zlika - reproducible-build-maven-plugin - - - org.apache.maven.plugins - maven-jarsigner-plugin - 1.4 - - - sign - - sign - - - - - ${jarsigner.skip} - ${jarsigner.keystore} - ${jarsigner.alias} - ${jarsigner.storepass} - ${jarsigner.keypass} - - - - net.runelite - script-assembler-plugin - ${project.version} - - - assemble - - assemble - - - src/main/scripts - ${project.build.outputDirectory}/runelite - - - - build-index - - build-index - - - ${project.build.outputDirectory}/runelite - ${project.build.outputDirectory}/runelite/index - - - - - - org.apache.maven.plugins - maven-pmd-plugin - 3.13.0 - - - net.sourceforge.pmd - pmd-core - 6.29.0 - - - net.sourceforge.pmd - pmd-java - 6.29.0 - - - - true - true - - ${basedir}/pmd-ruleset.xml - - false - true - - - - - check - - - - - - - diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemMapping.java b/runelite-client/src/main/java/net/runelite/client/game/ItemMapping.java index 08a9f82c9d..7d4661ad8a 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ItemMapping.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ItemMapping.java @@ -229,7 +229,8 @@ public enum ItemMapping SLAYER_HELMET, SLAYER_HELMET_I, BLACK_SLAYER_HELMET, BLACK_SLAYER_HELMET_I, PURPLE_SLAYER_HELMET, PURPLE_SLAYER_HELMET_I, RED_SLAYER_HELMET, RED_SLAYER_HELMET_I, GREEN_SLAYER_HELMET, GREEN_SLAYER_HELMET_I, TURQUOISE_SLAYER_HELMET, TURQUOISE_SLAYER_HELMET_I, TWISTED_SLAYER_HELMET, TWISTED_SLAYER_HELMET_I, HYDRA_SLAYER_HELMET, HYDRA_SLAYER_HELMET_I, SLAYER_HELMET_I_25177, BLACK_SLAYER_HELMET_I_25179, GREEN_SLAYER_HELMET_I_25181, RED_SLAYER_HELMET_I_25183, PURPLE_SLAYER_HELMET_I_25185, TURQUOISE_SLAYER_HELMET_I_25187, HYDRA_SLAYER_HELMET_I_25189, TWISTED_SLAYER_HELMET_I_25191, - BLACK_MASK_I_25276, BLACK_MASK_1_I_25275, BLACK_MASK_2_I_25274, BLACK_MASK_3_I_25273, BLACK_MASK_4_I_25272, BLACK_MASK_5_I_25271, BLACK_MASK_6_I_25270, BLACK_MASK_7_I_25269, BLACK_MASK_8_I_25268, BLACK_MASK_9_I_25267, BLACK_MASK_10_I_25266), + BLACK_MASK_I_25276, BLACK_MASK_1_I_25275, BLACK_MASK_2_I_25274, BLACK_MASK_3_I_25273, BLACK_MASK_4_I_25272, BLACK_MASK_5_I_25271, BLACK_MASK_6_I_25270, BLACK_MASK_7_I_25269, BLACK_MASK_8_I_25268, BLACK_MASK_9_I_25267, BLACK_MASK_10_I_25266, + TZTOK_SLAYER_HELMET, TZTOK_SLAYER_HELMET_I, TZTOK_SLAYER_HELMET_I_25902, VAMPYRIC_SLAYER_HELMET, VAMPYRIC_SLAYER_HELMET_I, VAMPYRIC_SLAYER_HELMET_I_25908, TZKAL_SLAYER_HELMET, TZKAL_SLAYER_HELMET_I, TZKAL_SLAYER_HELMET_I_25914), // Pharaoh's Sceptres ITEM_PHARAOHS_SCEPTRE_1(PHARAOHS_SCEPTRE, PHARAOHS_SCEPTRE_1), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index fe8b03cd26..11dab4a780 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -56,18 +56,19 @@ import net.runelite.api.IndexedSprite; import net.runelite.api.ItemComposition; import net.runelite.api.MessageNode; import net.runelite.api.Player; +import net.runelite.api.ScriptID; import net.runelite.api.VarPlayer; import net.runelite.api.Varbits; import net.runelite.api.WorldType; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; +import net.runelite.api.events.ScriptPostFired; import net.runelite.api.events.VarbitChanged; import net.runelite.api.events.WidgetLoaded; import net.runelite.api.vars.AccountType; import net.runelite.api.widgets.Widget; import static net.runelite.api.widgets.WidgetID.ADVENTURE_LOG_ID; -import static net.runelite.api.widgets.WidgetID.COLLECTION_LOG_ID; import static net.runelite.api.widgets.WidgetID.GENERIC_SCROLL_GROUP_ID; import static net.runelite.api.widgets.WidgetID.KILL_LOGS_GROUP_ID; import net.runelite.api.widgets.WidgetInfo; @@ -114,7 +115,7 @@ public class ChatCommandsPlugin extends Plugin private static final Pattern TOB_WAVE_PB_PATTERN = Pattern.compile("Theatre of Blood wave completion time: (?[0-9:]+(?:\\.[0-9]+)?) \\(new personal best\\)"); private static final Pattern TOB_WAVE_DURATION_PATTERN = Pattern.compile("Theatre of Blood wave completion time: [0-9:.]+\\. Personal best: (?[0-9:]+(?:\\.[0-9]+)?)"); private static final Pattern KILL_DURATION_PATTERN = Pattern.compile("(?i)^(?:(?:Fight |Lap |Challenge |Corrupted challenge )?duration:|Subdued in) [0-9:.]+\\. Personal best: (?:)?(?[0-9:]+(?:\\.[0-9]+)?)"); - private static final Pattern NEW_PB_PATTERN = Pattern.compile("(?i)^(?:(?:Fight |Lap |Challenge |Corrupted challenge )?duration:|Subdued in) (?[0-9:]+(?:\\.[0-9]+)?) \\(new personal best\\)"); + private static final Pattern NEW_PB_PATTERN = Pattern.compile("(?i)(?:(?:Fight |Lap |Challenge |Corrupted challenge )?duration:|Subdued in) (?[0-9:]+(?:\\.[0-9]+)?) \\(new personal best\\)"); private static final Pattern DUEL_ARENA_WINS_PATTERN = Pattern.compile("You (were defeated|won)! You have(?: now)? won (\\d+) duels?"); private static final Pattern DUEL_ARENA_LOSSES_PATTERN = Pattern.compile("You have(?: now)? lost (\\d+) duels?"); private static final Pattern ADVENTURE_LOG_TITLE_PATTERN = Pattern.compile("The Exploits of (.+)"); @@ -155,7 +156,6 @@ public class ChatCommandsPlugin extends Plugin private boolean bossLogLoaded; private boolean advLogLoaded; private boolean scrollInterfaceLoaded; - private boolean collectionLogLoaded; private String pohOwner; private HiscoreEndpoint hiscoreEndpoint; // hiscore endpoint for current player private String lastBossKill; @@ -599,39 +599,6 @@ public class ChatCommandsPlugin extends Plugin } } - if (collectionLogLoaded && (pohOwner == null || pohOwner.equals(client.getLocalPlayer().getName()))) - { - collectionLogLoaded = false; - - Widget collectionLogEntryHeader = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_HEADER); - if (collectionLogEntryHeader != null && collectionLogEntryHeader.getChildren() != null) - { - Widget entryTitle = collectionLogEntryHeader.getChild(COL_LOG_ENTRY_HEADER_TITLE_INDEX); - // Make sure that the player is looking in the All Pets tab of the collection log - if (entryTitle.getText().equals("All Pets")) - { - Widget collectionLogEntryItems = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_ITEMS); - if (collectionLogEntryItems != null && collectionLogEntryItems.getChildren() != null) - { - List petList = new ArrayList<>(); - for (Widget child : collectionLogEntryItems.getChildren()) - { - if (child.getOpacity() == 0) - { - Pet pet = Pet.findPet(Text.removeTags(child.getName())); - if (pet != null) - { - petList.add(pet); - } - } - } - - setPetList(petList); - } - } - } - } - if (bossLogLoaded && (pohOwner == null || pohOwner.equals(client.getLocalPlayer().getName()))) { bossLogLoaded = false; @@ -700,6 +667,47 @@ public class ChatCommandsPlugin extends Plugin } } + @Subscribe + public void onScriptPostFired(ScriptPostFired scriptPostFired) + { + if (scriptPostFired.getScriptId() != ScriptID.COLLECTION_DRAW_LIST) + { + return; + } + + if (pohOwner == null || pohOwner.equals(client.getLocalPlayer().getName())) + { + Widget collectionLogEntryHeader = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_HEADER); + if (collectionLogEntryHeader != null && collectionLogEntryHeader.getChildren() != null) + { + Widget entryTitle = collectionLogEntryHeader.getChild(COL_LOG_ENTRY_HEADER_TITLE_INDEX); + // Make sure that the player is looking in the All Pets tab of the collection log + if (entryTitle.getText().equals("All Pets")) + { + Widget collectionLogEntryItems = client.getWidget(WidgetInfo.COLLECTION_LOG_ENTRY_ITEMS); + if (collectionLogEntryItems != null && collectionLogEntryItems.getChildren() != null) + { + List petList = new ArrayList<>(); + for (Widget child : collectionLogEntryItems.getChildren()) + { + if (child.getOpacity() == 0) + { + Pet pet = Pet.findPet(Text.removeTags(child.getName())); + if (pet != null) + { + petList.add(pet); + } + } + } + + setPetList(petList); + log.debug("Loaded {} pets", petList.size()); + } + } + } + } + } + @Subscribe public void onWidgetLoaded(WidgetLoaded widget) { @@ -708,9 +716,6 @@ public class ChatCommandsPlugin extends Plugin case ADVENTURE_LOG_ID: advLogLoaded = true; break; - case COLLECTION_LOG_ID: - collectionLogLoaded = true; - break; case KILL_LOGS_GROUP_ID: bossLogLoaded = true; break; @@ -1194,7 +1199,9 @@ public class ChatCommandsPlugin extends Plugin return; } - ChatMessageBuilder responseBuilder = new ChatMessageBuilder().append("Pets: ") + ChatMessageBuilder responseBuilder = new ChatMessageBuilder() + .append(ChatColorType.NORMAL) + .append("Pets: ") .append("(" + playerPetList.size() + ")"); // Append pets that the player owns @@ -1211,7 +1218,8 @@ public class ChatCommandsPlugin extends Plugin log.debug("Setting response {}", response); final MessageNode messageNode = chatMessage.getMessageNode(); - messageNode.setValue(response); + messageNode.setRuneLiteFormatMessage(response); + chatMessageManager.update(messageNode); client.refreshChat(); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java index 56c4a846e9..0cf1dfb6af 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/AnagramClue.java @@ -126,7 +126,7 @@ public class AnagramClue extends ClueScroll implements TextClueScroll, NpcClueSc new AnagramClue("O BIRDZ A ZANY EN PC", "Cap'n Izzy No-Beard", new WorldPoint(2807, 3191, 0), "Brimhaven Agility Arena", "How many Banana Trees are there in the plantation?", "33"), new AnagramClue("OK CO", "Cook", new WorldPoint(3207, 3214, 0), "Ground floor of Lumbridge Castle", "How many cannons does Lumbridge Castle have?", "9"), new AnagramClue("OR ZINC FUMES WARD", "Wizard Frumscone", new WorldPoint(2594, 3086, 0), "Downstairs in the Wizards' Guild"), - new AnagramClue("OUR OWN NEEDS", "Nurse Wooned", new WorldPoint(1511, 3619, 0), "Shayzien Infirmary", "How many wounded soldiers are in the camp?", "16"), + new AnagramClue("OUR OWN NEEDS", "Nurse Wooned", new WorldPoint(1511, 3619, 0), "Shayzien Infirmary", "How many wounded soldiers are there in the camp?", "16"), new AnagramClue("PACINNG A TAIE", "Captain Ginea", new WorldPoint(1504, 3632, 0), "Tent east of Shayzien Encampment war tent", "1 soldier can deal with 6 lizardmen. How many soldiers do we need for an army of 678 lizardmen?", "113"), new AnagramClue("PEAK REFLEX", "Flax keeper", new WorldPoint(2744, 3444, 0), "Flax field south of Seers Village", "If I have 1014 flax, and I spin a third of them into bowstring, how many flax do I have left?", "676"), new AnagramClue("PEATY PERT", "Party Pete", new WorldPoint(3047, 3376, 0), "Falador Party Room"), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java index a9e479885e..655ae55fc7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java @@ -392,6 +392,13 @@ public class GroundItemsPlugin extends Plugin } } } + + // Since the loot can potentially be over multiple tiles, make sure to process lootbeams on all those tiles + items.stream() + .map(ItemStack::getLocation) + .map(l -> WorldPoint.fromLocal(client, l)) + .distinct() + .forEach(this::handleLootbeam); } private GroundItem buildGroundItem(final Tile tile, final TileItem item) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java index ef9936d396..f234f1b045 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java @@ -1,770 +1,788 @@ -/* - * Copyright (c) 2018, Adam - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.client.plugins.menuentryswapper; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; -import net.runelite.client.config.ConfigSection; - -@ConfigGroup(MenuEntrySwapperConfig.GROUP) -public interface MenuEntrySwapperConfig extends Config -{ - String GROUP = "menuentryswapper"; - - @ConfigSection( - name = "Item Swaps", - description = "All options that swap item menu entries", - position = 0, - closedByDefault = true - ) - String itemSection = "items"; - - @ConfigSection( - name = "NPC Swaps", - description = "All options that swap NPC menu entries", - position = 1, - closedByDefault = true - ) - String npcSection = "npcs"; - - @ConfigSection( - name = "Object Swaps", - description = "All options that swap object menu entries", - position = 2, - closedByDefault = true - ) - String objectSection = "objects"; - - @ConfigSection( - name = "UI Swaps", - description = "All options that swap entries in the UI (except Items)", - position = 3, - closedByDefault = true - ) - String uiSection = "ui"; - - enum ArdougneCloakMode - { - WEAR, - MONASTERY, - FARM, - } - - enum KaramjaGlovesMode - { - WEAR, - GEM_MINE, - DURADEL, - } - - enum MorytaniaLegsMode - { - WEAR, - ECTOFUNTUS, - BURGH_DE_ROTT; - - @Override - public String toString() - { - switch (this) - { - case BURGH_DE_ROTT: - return "Burgh de Rott"; - default: - return name(); - } - } - } - - enum RadasBlessingMode - { - EQUIP, - KOUREND_WOODLAND, - MOUNT_KARUULM, - } - - @ConfigItem( - position = -2, - keyName = "shiftClickCustomization", - name = "Customizable shift-click", - description = "Allows customization of shift-clicks on items", - section = itemSection - ) - default boolean shiftClickCustomization() - { - return true; - } - - @ConfigItem( - keyName = "swapAdmire", - name = "Admire", - description = "Swap Admire with Teleport, Spellbook and Perks (max cape) for mounted skill capes.", - section = objectSection - ) - default boolean swapAdmire() - { - return true; - } - - @ConfigItem( - keyName = "swapAssignment", - name = "Assignment", - description = "Swap Talk-to with Assignment for Slayer Masters. This will take priority over swapping Trade.", - section = npcSection - ) - default boolean swapAssignment() - { - return true; - } - - @ConfigItem( - keyName = "swapBanker", - name = "Bank", - description = "Swap Talk-to with Bank on Bank NPC
Example: Banker", - section = npcSection - ) - default boolean swapBank() - { - return true; - } - - @ConfigItem( - keyName = "swapBirdhouseEmpty", - name = "Birdhouse", - description = "Swap Interact with Empty for birdhouses on Fossil Island", - section = objectSection - ) - default boolean swapBirdhouseEmpty() - { - return true; - } - - @ConfigItem( - keyName = "swapBones", - name = "Bury", - description = "Swap Bury with Use on Bones", - section = itemSection - ) - default boolean swapBones() - { - return false; - } - - @ConfigItem( - keyName = "swapHerbs", - name = "Clean", - description = "Swap Clean with Use on Herbs", - section = itemSection - ) - default boolean swapHerbs() - { - return false; - } - - @ConfigItem( - keyName = "swapBattlestaves", - name = "Battlestaff", - description = "Swap Wield with Use on Battlestaves without orbs", - section = itemSection - ) - default boolean swapBattlestaves() - { - return false; - } - - @ConfigItem( - keyName = "swapPrayerBook", - name = "Recite-Prayer", - description = "Swap Read with Recite-prayer on the Prayer Book from The Great Brain Robbery quest", - section = itemSection - ) - default boolean swapPrayerBook() - { - return false; - } - - @ConfigItem( - keyName = "swapContract", - name = "Contract", - description = "Swap Talk-to with Contract on Guildmaster Jane", - section = npcSection - ) - default boolean swapContract() - { - return true; - } - - @ConfigItem( - keyName = "swapChase", - name = "Chase", - description = "Allows to left click your cat to chase", - section = npcSection - ) - default boolean swapChase() - { - return true; - } - - @ConfigItem( - keyName = "claimSlime", - name = "Claim Slime", - description = "Swap Talk-to with Claim Slime from Morytania diaries", - section = npcSection - ) - default boolean claimSlime() - { - return true; - } - - @ConfigItem( - keyName = "swapDarkMage", - name = "Repairs", - description = "Swap Talk-to with Repairs for Dark Mage", - section = npcSection - ) - default boolean swapDarkMage() - { - return true; - } - - @ConfigItem( - keyName = "swapCaptainKhaled", - name = "Task", - description = "Swap Talk-to with Task for Captain Khaled in Port Piscarilius", - section = npcSection - ) - default boolean swapCaptainKhaled() - { - return false; - } - - @ConfigItem( - keyName = "swapDecant", - name = "Decant", - description = "Swap Talk-to with Decant for Bob Barter and Murky Matt at the Grand Exchange.", - section = npcSection - ) - default boolean swapDecant() - { - return false; - } - - @ConfigItem( - keyName = "swapExchange", - name = "Exchange", - description = "Swap Talk-to with Exchange on NPC
Example: Grand Exchange Clerk, Tool Leprechaun, Void Knight", - section = npcSection - ) - default boolean swapExchange() - { - return true; - } - - @ConfigItem( - keyName = "swapFairyRing", - name = "Fairy ring", - description = "Swap Zanaris with Last-destination or Configure on Fairy rings", - section = objectSection - ) - default FairyRingMode swapFairyRing() - { - return FairyRingMode.LAST_DESTINATION; - } - - @ConfigItem( - keyName = "swapHardWoodGrove", - name = "Hardwood Grove Quick-Pay", - description = "Swap Quick-Pay(100) at the Hardwood Grove", - section = objectSection - ) - default boolean swapHardWoodGrove() - { - return true; - } - - @ConfigItem( - keyName = "swapHardWoodGroveParcel", - name = "Hardwood Grove Send-Parcel", - description = "Swap Send-Parcel at the Hardwood Grove", - section = npcSection - ) - default boolean swapHardWoodGroveParcel() - { - return true; - } - - @ConfigItem( - keyName = "swapHarpoon", - name = "Harpoon", - description = "Swap Cage, Big Net with Harpoon on Fishing spot", - section = objectSection - ) - default boolean swapHarpoon() - { - return false; - } - - @ConfigItem( - keyName = "swapBait", - name = "Bait", - description = "Swap Lure, Small Net with Bait on Fishing spot", - section = objectSection - ) - default boolean swapBait() - { - return false; - } - - @ConfigItem( - keyName = "swapHelp", - name = "Help", - description = "Swap Talk-to with Help on Arceuus library customers", - section = npcSection - ) - default boolean swapHelp() - { - return true; - } - - @ConfigItem( - keyName = "swapHomePortal", - name = "Home", - description = "Swap Enter with Home or Build or Friend's house on Portal", - section = objectSection - ) - default HouseMode swapHomePortal() - { - return HouseMode.HOME; - } - - @ConfigItem( - keyName = "swapHouseAdvertisement", - name = "House Advertisement", - description = "Swap View with Add-House or Visit-Last on House Advertisement board", - section = objectSection - ) - default HouseAdvertisementMode swapHouseAdvertisement() - { - return HouseAdvertisementMode.VIEW; - } - - @ConfigItem( - keyName = "swapPay", - name = "Pay", - description = "Swap Talk-to with Pay on NPC
Example: Elstan, Heskel, Fayeth", - section = npcSection - ) - default boolean swapPay() - { - return true; - } - - @ConfigItem( - keyName = "swapJewelleryBox", - name = "Jewellery Box", - description = "Swap Teleport Menu with previous destination on Jewellery Box", - section = objectSection - ) - default boolean swapJewelleryBox() - { - return false; - } - - @ConfigItem( - keyName = "swapPortalNexus", - name = "Portal Nexus", - description = "Swap Teleport options with Teleport Menu on the Portal Nexus", - section = objectSection - ) - default boolean swapPortalNexus() - { - return false; - } - - @ConfigItem( - keyName = "swapPrivate", - name = "Private", - description = "Swap Shared with Private on the Chambers of Xeric storage units.", - section = objectSection - ) - default boolean swapPrivate() - { - return false; - } - - @ConfigItem( - keyName = "swapPick", - name = "Pick", - description = "Swap Pick with Pick-lots of the Gourd tree in the Chambers of Xeric", - section = objectSection - ) - default boolean swapPick() - { - return false; - } - - @ConfigItem( - keyName = "swapQuick", - name = "Quick Pass/Open/Start/Travel", - description = "Swap Pass with Quick-Pass, Open with Quick-Open, Ring with Quick-Start and Talk-to with Quick-Travel", - section = objectSection - ) - default boolean swapQuick() - { - return true; - } - - @ConfigItem( - keyName = "swapBoxTrap", - name = "Reset", - description = "Swap Check with Reset on box trap", - section = objectSection - ) - default boolean swapBoxTrap() - { - return true; - } - - @ConfigItem( - keyName = "swapTeleportItem", - name = "Teleport item", - description = "Swap Wear, Wield with Rub, Teleport on teleport item
Example: Amulet of glory, Explorer's ring, Chronicle", - section = itemSection - ) - default boolean swapTeleportItem() - { - return false; - } - - @ConfigItem( - keyName = "swapTeleToPoh", - name = "Tele to POH", - description = "Swap Wear with Tele to POH on the construction cape", - section = itemSection - ) - default boolean swapTeleToPoh() - { - return false; - } - - @ConfigItem( - keyName = "swapKaramjaGloves", - name = "Karamja Gloves", - description = "Swap Wear with the Gem Mine or Duradel teleport on the Karamja Gloves 3 and 4", - section = itemSection - ) - default KaramjaGlovesMode swapKaramjaGlovesMode() - { - return KaramjaGlovesMode.WEAR; - } - - @ConfigItem( - keyName = "swapArdougneCloak", - name = "Ardougne Cloak", - description = "Swap Wear with Monastery Teleport or Farm Teleport on the Ardougne cloak.", - section = itemSection - ) - default ArdougneCloakMode swapArdougneCloakMode() - { - return ArdougneCloakMode.WEAR; - } - - @ConfigItem( - keyName = "swapRadasBlessing", - name = "Rada's Blessing", - description = "Swap Equip with the Woodland or Mount Karuulm teleport on Rada's Blessing.", - section = itemSection - ) - default RadasBlessingMode swapRadasBlessingMode() - { - return RadasBlessingMode.EQUIP; - } - - @ConfigItem( - keyName = "swapMorytaniaLegs", - name = "Morytania Legs", - description = "Swap Wear with the Ectofunctus or Burgh de Rott teleport on the Morytania Legs.", - section = itemSection - ) - default MorytaniaLegsMode swapMorytaniaLegsMode() - { - return MorytaniaLegsMode.WEAR; - } - - @ConfigItem( - keyName = "swapAbyssTeleport", - name = "Teleport to Abyss", - description = "Swap Talk-to with Teleport for the Mage of Zamorak", - section = npcSection - ) - default boolean swapAbyssTeleport() - { - return true; - } - - @ConfigItem( - keyName = "swapTrade", - name = "Trade", - description = "Swap Talk-to with Trade on NPC
Example: Shop keeper, Shop assistant", - section = npcSection - ) - default boolean swapTrade() - { - return true; - } - - @ConfigItem( - keyName = "swapTravel", - name = "Travel", - description = "Swap Talk-to with Travel, Take-boat, Pay-fare, Charter on NPC
Example: Squire, Monk of Entrana, Customs officer, Trader Crewmember", - section = npcSection - ) - default boolean swapTravel() - { - return true; - } - - @ConfigItem( - keyName = "swapEnchant", - name = "Enchant", - description = "Swap Talk-to with Enchant for Eluned", - section = npcSection - ) - default boolean swapEnchant() - { - return true; - } - - @ConfigItem( - keyName = "swapTeleportSpell", - name = "Shift-click teleport spells", - description = "Swap teleport spells that have a second destination on shift", - section = uiSection - ) - default boolean swapTeleportSpell() - { - return false; - } - - @ConfigItem( - keyName = "swapStartMinigame", - name = "Pyramid Plunder Start-minigame", - description = "Swap Talk-to with Start-minigame at the Guardian Mummy", - section = npcSection - ) - default boolean swapStartMinigame() - { - return true; - } - - @ConfigItem( - keyName = "swapQuickleave", - name = "Quick-Leave", - description = "Swap Leave Tomb with Quick-Leave at Pyramid Plunder", - section = objectSection - ) - default boolean swapQuickLeave() - { - return false; - } - - @ConfigItem( - keyName = "swapGEItemCollect", - name = "GE Item Collect", - description = "Swap Collect-notes, Collect-items, or Bank options from GE offer", - section = uiSection - ) - default GEItemCollectMode swapGEItemCollect() - { - return GEItemCollectMode.DEFAULT; - } - - @ConfigItem( - keyName = "swapGEAbort", - name = "GE Abort", - description = "Swap abort offer on Grand Exchange offers when shift-clicking" - , - section = uiSection - ) - default boolean swapGEAbort() - { - return false; - } - - @ConfigItem( - keyName = "swapNpcContact", - name = "NPC Contact", - description = "Swap NPC Contact with last contacted NPC when shift-clicking", - section = uiSection - ) - default boolean swapNpcContact() - { - return false; - } - - @ConfigItem( - keyName = "bankWithdrawShiftClick", - name = "Bank Withdraw Shift-Click", - description = "Swaps the behavior of shift-click when withdrawing from bank.", - section = itemSection - ) - default ShiftWithdrawMode bankWithdrawShiftClick() - { - return ShiftWithdrawMode.OFF; - } - - @ConfigItem( - keyName = "bankDepositShiftClick", - name = "Bank Deposit Shift-Click", - description = "Swaps the behavior of shift-click when depositing to bank.", - section = itemSection - ) - default ShiftDepositMode bankDepositShiftClick() - { - return ShiftDepositMode.OFF; - } - - @ConfigItem( - keyName = "shopBuy", - name = "Shop Buy Shift-Click", - description = "Swaps the Buy options with Value on items in shops when shift is held.", - section = uiSection - ) - default BuyMode shopBuy() - { - return BuyMode.OFF; - } - - @ConfigItem( - keyName = "shopSell", - name = "Shop Sell Shift-Click", - description = "Swaps the Sell options with Value on items in your inventory when selling to shops when shift is held.", - section = uiSection - ) - default SellMode shopSell() - { - return SellMode.OFF; - } - - @ConfigItem( - keyName = "swapEssenceMineTeleport", - name = "Essence Mine Teleport", - description = "Swaps Talk-To with Teleport for NPCs which teleport you to the essence mine", - section = npcSection - ) - default boolean swapEssenceMineTeleport() - { - return false; - } - - @ConfigItem( - keyName = "swapNets", - name = "Nets", - description = "Swap Talk-to with Nets on Annette", - section = npcSection - ) - default boolean swapNets() - { - return true; - } - - @ConfigItem( - keyName = "swapGauntlet", - name = "Corrupted Gauntlet", - description = "Swap Enter with Enter-corrupted when entering The Gauntlet", - section = objectSection - ) - default boolean swapGauntlet() - { - return false; - } - - @ConfigItem( - keyName = "swapTan", - name = "Tan", - description = "Swap Tan 1 with Tan All", - section = uiSection - ) - default boolean swapTan() - { - return false; - } - - @ConfigItem( - keyName = "swapCollectMiscellania", - name = "Miscellania", - description = "Swap Talk-to with Collect for Advisor Ghrim", - section = npcSection - ) - default boolean swapCollectMiscellania() - { - return false; - } - - @ConfigItem( - keyName = "swapDepositItems", - name = "Deposit Items", - description = "Swap Talk-to with Deposit-items", - section = npcSection - ) - default boolean swapDepositItems() - { - return false; - } - - @ConfigItem( - keyName = "swapRockCake", - name = "Dwarven rock cake", - description = "Swap Eat with Guzzle on the Dwarven rock cake", - section = itemSection - ) - default boolean swapRockCake() - { - return false; - } - - @ConfigItem( - keyName = "swapRowboatDive", - name = "Fossil Island Rowboat Dive", - description = "Swap Travel with Dive on the rowboat found on the small island north-east of Fossil Island", - section = objectSection - ) - default boolean swapRowboatDive() - { - return false; - } - - @ConfigItem( - keyName = "swapTemporossLeave", - name = "Tempoross Leave", - description = "Swap Talk-to with Leave after subduing Tempoross", - section = npcSection - ) - default boolean swapTemporossLeave() - { - return false; - } -} +/* + * Copyright (c) 2018, Adam + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.menuentryswapper; + +import net.runelite.client.config.Config; +import net.runelite.client.config.ConfigGroup; +import net.runelite.client.config.ConfigItem; +import net.runelite.client.config.ConfigSection; + +@ConfigGroup(MenuEntrySwapperConfig.GROUP) +public interface MenuEntrySwapperConfig extends Config +{ + String GROUP = "menuentryswapper"; + + @ConfigSection( + name = "Item Swaps", + description = "All options that swap item menu entries", + position = 0, + closedByDefault = true + ) + String itemSection = "items"; + + @ConfigSection( + name = "NPC Swaps", + description = "All options that swap NPC menu entries", + position = 1, + closedByDefault = true + ) + String npcSection = "npcs"; + + @ConfigSection( + name = "Object Swaps", + description = "All options that swap object menu entries", + position = 2, + closedByDefault = true + ) + String objectSection = "objects"; + + @ConfigSection( + name = "UI Swaps", + description = "All options that swap entries in the UI (except Items)", + position = 3, + closedByDefault = true + ) + String uiSection = "ui"; + + enum ArdougneCloakMode + { + WEAR, + MONASTERY, + FARM, + } + + enum KaramjaGlovesMode + { + WEAR, + GEM_MINE, + DURADEL, + } + + enum MorytaniaLegsMode + { + WEAR, + ECTOFUNTUS, + BURGH_DE_ROTT; + + @Override + public String toString() + { + switch (this) + { + case BURGH_DE_ROTT: + return "Burgh de Rott"; + default: + return name(); + } + } + } + + enum RadasBlessingMode + { + EQUIP, + KOUREND_WOODLAND, + MOUNT_KARUULM, + } + + enum DesertAmuletMode + { + WEAR, + NARDAH, + KALPHITE_CAVE, + } + + @ConfigItem( + position = -2, + keyName = "shiftClickCustomization", + name = "Customizable shift-click", + description = "Allows customization of shift-clicks on items", + section = itemSection + ) + default boolean shiftClickCustomization() + { + return true; + } + + @ConfigItem( + keyName = "swapAdmire", + name = "Admire", + description = "Swap Admire with Teleport, Spellbook and Perks (max cape) for mounted skill capes.", + section = objectSection + ) + default boolean swapAdmire() + { + return true; + } + + @ConfigItem( + keyName = "swapAssignment", + name = "Assignment", + description = "Swap Talk-to with Assignment for Slayer Masters. This will take priority over swapping Trade.", + section = npcSection + ) + default boolean swapAssignment() + { + return true; + } + + @ConfigItem( + keyName = "swapBanker", + name = "Bank", + description = "Swap Talk-to with Bank on Bank NPC
Example: Banker", + section = npcSection + ) + default boolean swapBank() + { + return true; + } + + @ConfigItem( + keyName = "swapBirdhouseEmpty", + name = "Birdhouse", + description = "Swap Interact with Empty for birdhouses on Fossil Island", + section = objectSection + ) + default boolean swapBirdhouseEmpty() + { + return true; + } + + @ConfigItem( + keyName = "swapBones", + name = "Bury", + description = "Swap Bury with Use on Bones", + section = itemSection + ) + default boolean swapBones() + { + return false; + } + + @ConfigItem( + keyName = "swapHerbs", + name = "Clean", + description = "Swap Clean with Use on Herbs", + section = itemSection + ) + default boolean swapHerbs() + { + return false; + } + + @ConfigItem( + keyName = "swapBattlestaves", + name = "Battlestaff", + description = "Swap Wield with Use on Battlestaves without orbs", + section = itemSection + ) + default boolean swapBattlestaves() + { + return false; + } + + @ConfigItem( + keyName = "swapPrayerBook", + name = "Recite-Prayer", + description = "Swap Read with Recite-prayer on the Prayer Book from The Great Brain Robbery quest", + section = itemSection + ) + default boolean swapPrayerBook() + { + return false; + } + + @ConfigItem( + keyName = "swapContract", + name = "Contract", + description = "Swap Talk-to with Contract on Guildmaster Jane", + section = npcSection + ) + default boolean swapContract() + { + return true; + } + + @ConfigItem( + keyName = "swapChase", + name = "Chase", + description = "Allows to left click your cat to chase", + section = npcSection + ) + default boolean swapChase() + { + return true; + } + + @ConfigItem( + keyName = "claimSlime", + name = "Claim Slime", + description = "Swap Talk-to with Claim Slime from Morytania diaries", + section = npcSection + ) + default boolean claimSlime() + { + return true; + } + + @ConfigItem( + keyName = "swapDarkMage", + name = "Repairs", + description = "Swap Talk-to with Repairs for Dark Mage", + section = npcSection + ) + default boolean swapDarkMage() + { + return true; + } + + @ConfigItem( + keyName = "swapCaptainKhaled", + name = "Task", + description = "Swap Talk-to with Task for Captain Khaled in Port Piscarilius", + section = npcSection + ) + default boolean swapCaptainKhaled() + { + return false; + } + + @ConfigItem( + keyName = "swapDecant", + name = "Decant", + description = "Swap Talk-to with Decant for Bob Barter and Murky Matt at the Grand Exchange.", + section = npcSection + ) + default boolean swapDecant() + { + return false; + } + + @ConfigItem( + keyName = "swapExchange", + name = "Exchange", + description = "Swap Talk-to with Exchange on NPC
Example: Grand Exchange Clerk, Tool Leprechaun, Void Knight", + section = npcSection + ) + default boolean swapExchange() + { + return true; + } + + @ConfigItem( + keyName = "swapFairyRing", + name = "Fairy ring", + description = "Swap Zanaris with Last-destination or Configure on Fairy rings", + section = objectSection + ) + default FairyRingMode swapFairyRing() + { + return FairyRingMode.LAST_DESTINATION; + } + + @ConfigItem( + keyName = "swapHardWoodGrove", + name = "Hardwood Grove Quick-Pay", + description = "Swap Quick-Pay(100) at the Hardwood Grove", + section = objectSection + ) + default boolean swapHardWoodGrove() + { + return true; + } + + @ConfigItem( + keyName = "swapHardWoodGroveParcel", + name = "Hardwood Grove Send-Parcel", + description = "Swap Send-Parcel at the Hardwood Grove", + section = npcSection + ) + default boolean swapHardWoodGroveParcel() + { + return true; + } + + @ConfigItem( + keyName = "swapHarpoon", + name = "Harpoon", + description = "Swap Cage, Big Net with Harpoon on Fishing spot", + section = objectSection + ) + default boolean swapHarpoon() + { + return false; + } + + @ConfigItem( + keyName = "swapBait", + name = "Bait", + description = "Swap Lure, Small Net with Bait on Fishing spot", + section = objectSection + ) + default boolean swapBait() + { + return false; + } + + @ConfigItem( + keyName = "swapHelp", + name = "Help", + description = "Swap Talk-to with Help on Arceuus library customers", + section = npcSection + ) + default boolean swapHelp() + { + return true; + } + + @ConfigItem( + keyName = "swapHomePortal", + name = "Home", + description = "Swap Enter with Home or Build or Friend's house on Portal", + section = objectSection + ) + default HouseMode swapHomePortal() + { + return HouseMode.HOME; + } + + @ConfigItem( + keyName = "swapHouseAdvertisement", + name = "House Advertisement", + description = "Swap View with Add-House or Visit-Last on House Advertisement board", + section = objectSection + ) + default HouseAdvertisementMode swapHouseAdvertisement() + { + return HouseAdvertisementMode.VIEW; + } + + @ConfigItem( + keyName = "swapPay", + name = "Pay", + description = "Swap Talk-to with Pay on NPC
Example: Elstan, Heskel, Fayeth", + section = npcSection + ) + default boolean swapPay() + { + return true; + } + + @ConfigItem( + keyName = "swapJewelleryBox", + name = "Jewellery Box", + description = "Swap Teleport Menu with previous destination on Jewellery Box", + section = objectSection + ) + default boolean swapJewelleryBox() + { + return false; + } + + @ConfigItem( + keyName = "swapPortalNexus", + name = "Portal Nexus", + description = "Swap Teleport options with Teleport Menu on the Portal Nexus", + section = objectSection + ) + default boolean swapPortalNexus() + { + return false; + } + + @ConfigItem( + keyName = "swapPrivate", + name = "Private", + description = "Swap Shared with Private on the Chambers of Xeric storage units.", + section = objectSection + ) + default boolean swapPrivate() + { + return false; + } + + @ConfigItem( + keyName = "swapPick", + name = "Pick", + description = "Swap Pick with Pick-lots of the Gourd tree in the Chambers of Xeric", + section = objectSection + ) + default boolean swapPick() + { + return false; + } + + @ConfigItem( + keyName = "swapQuick", + name = "Quick Pass/Open/Start/Travel", + description = "Swap Pass with Quick-Pass, Open with Quick-Open, Ring with Quick-Start and Talk-to with Quick-Travel", + section = objectSection + ) + default boolean swapQuick() + { + return true; + } + + @ConfigItem( + keyName = "swapBoxTrap", + name = "Reset", + description = "Swap Check with Reset on box trap", + section = objectSection + ) + default boolean swapBoxTrap() + { + return true; + } + + @ConfigItem( + keyName = "swapTeleportItem", + name = "Teleport item", + description = "Swap Wear, Wield with Rub, Teleport on teleport item
Example: Amulet of glory, Explorer's ring, Chronicle", + section = itemSection + ) + default boolean swapTeleportItem() + { + return false; + } + + @ConfigItem( + keyName = "swapTeleToPoh", + name = "Tele to POH", + description = "Swap Wear with Tele to POH on the construction cape", + section = itemSection + ) + default boolean swapTeleToPoh() + { + return false; + } + + @ConfigItem( + keyName = "swapKaramjaGloves", + name = "Karamja Gloves", + description = "Swap Wear with the Gem Mine or Duradel teleport on the Karamja Gloves 3 and 4", + section = itemSection + ) + default KaramjaGlovesMode swapKaramjaGlovesMode() + { + return KaramjaGlovesMode.WEAR; + } + + @ConfigItem( + keyName = "swapArdougneCloak", + name = "Ardougne Cloak", + description = "Swap Wear with Monastery Teleport or Farm Teleport on the Ardougne cloak.", + section = itemSection + ) + default ArdougneCloakMode swapArdougneCloakMode() + { + return ArdougneCloakMode.WEAR; + } + + @ConfigItem( + keyName = "swapRadasBlessing", + name = "Rada's Blessing", + description = "Swap Equip with the Woodland or Mount Karuulm teleport on Rada's Blessing.", + section = itemSection + ) + default RadasBlessingMode swapRadasBlessingMode() + { + return RadasBlessingMode.EQUIP; + } + + @ConfigItem( + keyName = "swapMorytaniaLegs", + name = "Morytania Legs", + description = "Swap Wear with the Ectofunctus or Burgh de Rott teleport on the Morytania Legs.", + section = itemSection + ) + default MorytaniaLegsMode swapMorytaniaLegsMode() + { + return MorytaniaLegsMode.WEAR; + } + + @ConfigItem( + keyName = "swapDesertAmulet", + name = "Desert Amulet", + description = "Swap Wear with the Nardah or Kalphite Cave teleport on Desert Amulet 4.", + section = itemSection + ) + default DesertAmuletMode swapDesertAmuletMode() + { + return DesertAmuletMode.WEAR; + } + + @ConfigItem( + keyName = "swapAbyssTeleport", + name = "Teleport to Abyss", + description = "Swap Talk-to with Teleport for the Mage of Zamorak", + section = npcSection + ) + default boolean swapAbyssTeleport() + { + return true; + } + + @ConfigItem( + keyName = "swapTrade", + name = "Trade", + description = "Swap Talk-to with Trade on NPC
Example: Shop keeper, Shop assistant", + section = npcSection + ) + default boolean swapTrade() + { + return true; + } + + @ConfigItem( + keyName = "swapTravel", + name = "Travel", + description = "Swap Talk-to with Travel, Take-boat, Pay-fare, Charter on NPC
Example: Squire, Monk of Entrana, Customs officer, Trader Crewmember", + section = npcSection + ) + default boolean swapTravel() + { + return true; + } + + @ConfigItem( + keyName = "swapEnchant", + name = "Enchant", + description = "Swap Talk-to with Enchant for Eluned", + section = npcSection + ) + default boolean swapEnchant() + { + return true; + } + + @ConfigItem( + keyName = "swapTeleportSpell", + name = "Shift-click teleport spells", + description = "Swap teleport spells that have a second destination on shift", + section = uiSection + ) + default boolean swapTeleportSpell() + { + return false; + } + + @ConfigItem( + keyName = "swapStartMinigame", + name = "Pyramid Plunder Start-minigame", + description = "Swap Talk-to with Start-minigame at the Guardian Mummy", + section = npcSection + ) + default boolean swapStartMinigame() + { + return true; + } + + @ConfigItem( + keyName = "swapQuickleave", + name = "Quick-Leave", + description = "Swap Leave Tomb with Quick-Leave at Pyramid Plunder", + section = objectSection + ) + default boolean swapQuickLeave() + { + return false; + } + + @ConfigItem( + keyName = "swapGEItemCollect", + name = "GE Item Collect", + description = "Swap Collect-notes, Collect-items, or Bank options from GE offer", + section = uiSection + ) + default GEItemCollectMode swapGEItemCollect() + { + return GEItemCollectMode.DEFAULT; + } + + @ConfigItem( + keyName = "swapGEAbort", + name = "GE Abort", + description = "Swap abort offer on Grand Exchange offers when shift-clicking" + , + section = uiSection + ) + default boolean swapGEAbort() + { + return false; + } + + @ConfigItem( + keyName = "swapNpcContact", + name = "NPC Contact", + description = "Swap NPC Contact with last contacted NPC when shift-clicking", + section = uiSection + ) + default boolean swapNpcContact() + { + return false; + } + + @ConfigItem( + keyName = "bankWithdrawShiftClick", + name = "Bank Withdraw Shift-Click", + description = "Swaps the behavior of shift-click when withdrawing from bank.", + section = itemSection + ) + default ShiftWithdrawMode bankWithdrawShiftClick() + { + return ShiftWithdrawMode.OFF; + } + + @ConfigItem( + keyName = "bankDepositShiftClick", + name = "Bank Deposit Shift-Click", + description = "Swaps the behavior of shift-click when depositing to bank.", + section = itemSection + ) + default ShiftDepositMode bankDepositShiftClick() + { + return ShiftDepositMode.OFF; + } + + @ConfigItem( + keyName = "shopBuy", + name = "Shop Buy Shift-Click", + description = "Swaps the Buy options with Value on items in shops when shift is held.", + section = uiSection + ) + default BuyMode shopBuy() + { + return BuyMode.OFF; + } + + @ConfigItem( + keyName = "shopSell", + name = "Shop Sell Shift-Click", + description = "Swaps the Sell options with Value on items in your inventory when selling to shops when shift is held.", + section = uiSection + ) + default SellMode shopSell() + { + return SellMode.OFF; + } + + @ConfigItem( + keyName = "swapEssenceMineTeleport", + name = "Essence Mine Teleport", + description = "Swaps Talk-To with Teleport for NPCs which teleport you to the essence mine", + section = npcSection + ) + default boolean swapEssenceMineTeleport() + { + return false; + } + + @ConfigItem( + keyName = "swapNets", + name = "Nets", + description = "Swap Talk-to with Nets on Annette", + section = npcSection + ) + default boolean swapNets() + { + return true; + } + + @ConfigItem( + keyName = "swapGauntlet", + name = "Corrupted Gauntlet", + description = "Swap Enter with Enter-corrupted when entering The Gauntlet", + section = objectSection + ) + default boolean swapGauntlet() + { + return false; + } + + @ConfigItem( + keyName = "swapTan", + name = "Tan", + description = "Swap Tan 1 with Tan All", + section = uiSection + ) + default boolean swapTan() + { + return false; + } + + @ConfigItem( + keyName = "swapCollectMiscellania", + name = "Miscellania", + description = "Swap Talk-to with Collect for Advisor Ghrim", + section = npcSection + ) + default boolean swapCollectMiscellania() + { + return false; + } + + @ConfigItem( + keyName = "swapDepositItems", + name = "Deposit Items", + description = "Swap Talk-to with Deposit-items", + section = npcSection + ) + default boolean swapDepositItems() + { + return false; + } + + @ConfigItem( + keyName = "swapRockCake", + name = "Dwarven rock cake", + description = "Swap Eat with Guzzle on the Dwarven rock cake", + section = itemSection + ) + default boolean swapRockCake() + { + return false; + } + + @ConfigItem( + keyName = "swapRowboatDive", + name = "Fossil Island Rowboat Dive", + description = "Swap Travel with Dive on the rowboat found on the small island north-east of Fossil Island", + section = objectSection + ) + default boolean swapRowboatDive() + { + return false; + } + + @ConfigItem( + keyName = "swapTemporossLeave", + name = "Tempoross Leave", + description = "Swap Talk-to with Leave after subduing Tempoross", + section = npcSection + ) + default boolean swapTemporossLeave() + { + return false; + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index bb3d0f9fc6..53dfcd8608 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -70,6 +70,7 @@ import net.runelite.client.menus.WidgetMenuOption; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import static net.runelite.client.plugins.menuentryswapper.MenuEntrySwapperConfig.ArdougneCloakMode; +import static net.runelite.client.plugins.menuentryswapper.MenuEntrySwapperConfig.DesertAmuletMode; import static net.runelite.client.plugins.menuentryswapper.MenuEntrySwapperConfig.KaramjaGlovesMode; import static net.runelite.client.plugins.menuentryswapper.MenuEntrySwapperConfig.MorytaniaLegsMode; import static net.runelite.client.plugins.menuentryswapper.MenuEntrySwapperConfig.RadasBlessingMode; @@ -374,6 +375,9 @@ public class MenuEntrySwapperPlugin extends Plugin swap("wear", "ecto teleport", () -> config.swapMorytaniaLegsMode() == MorytaniaLegsMode.ECTOFUNTUS); swap("wear", "burgh teleport", () -> config.swapMorytaniaLegsMode() == MorytaniaLegsMode.BURGH_DE_ROTT); + swap("wear", "nardah", () -> config.swapDesertAmuletMode() == DesertAmuletMode.NARDAH); + swap("wear", "kalphite cave", () -> config.swapDesertAmuletMode() == DesertAmuletMode.KALPHITE_CAVE); + swap("bury", "use", config::swapBones); swap("wield", "battlestaff", "use", config::swapBattlestaves); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java index ea65fd3468..5d41b055c6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java @@ -29,7 +29,6 @@ package net.runelite.client.plugins.xptracker; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; -import java.awt.GridLayout; import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.ArrayList; @@ -54,6 +53,7 @@ import net.runelite.api.Skill; import net.runelite.api.WorldType; import net.runelite.client.game.SkillIconManager; import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.DynamicGridLayout; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.SkillColor; import net.runelite.client.ui.components.MouseDragEventForwarder; @@ -190,7 +190,7 @@ class XpInfoBox extends JPanel headerPanel.setBackground(ColorScheme.DARKER_GRAY_COLOR); headerPanel.setLayout(new BorderLayout()); - statsPanel.setLayout(new GridLayout(2, 2)); + statsPanel.setLayout(new DynamicGridLayout(2, 2)); statsPanel.setBackground(ColorScheme.DARKER_GRAY_COLOR); statsPanel.setBorder(new EmptyBorder(9, 2, 9, 2)); diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/roofremoval/overrides.jsonc b/runelite-client/src/main/resources/net/runelite/client/plugins/roofremoval/overrides.jsonc index 17d5c6140d..200d6b8b8d 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/roofremoval/overrides.jsonc +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/roofremoval/overrides.jsonc @@ -143,6 +143,14 @@ "ry2": 48, "z1": 2, "z2": 2 + }, + { + "rx1": 53, + "ry1": 44, + "rx2": 53, + "ry2": 47, + "z1": 0, + "z2": 0 } ], "13151":[ // Prif NE @@ -275,6 +283,38 @@ "ry2": 52, "z1": 2, "z2": 2 + }, + { + "rx1": 46, + "ry1": 52, + "rx2": 46, + "ry2": 52, + "z1": 0, + "z2": 0 + }, + { + "rx1": 40, + "ry1": 47, + "rx2": 40, + "ry2": 47, + "z1": 0, + "z2": 0 + }, + { + "rx1": 40, + "ry1": 26, + "rx2": 40, + "ry2": 26, + "z1": 0, + "z2": 0 + }, + { + "rx1": 53, + "ry1": 22, + "rx2": 53, + "ry2": 25, + "z1": 0, + "z2": 0 } ], "13150": [ // Prif SE @@ -419,6 +459,14 @@ "ry2": 11, "z1": 0, "z2": 0 + }, + { + "rx1": 20, + "ry1": 23, + "rx2": 26, + "ry2": 34, + "z1": 1, + "z2": 1 } ], "12852": [ // South Varrock @@ -1919,7 +1967,25 @@ "z1": 1, "z2": 2 }, - { // Lighthouse clockwork + { + "rx1": 12, + "ry1": 51, + "rx2": 13, + "ry2": 52, + "z1": 0, + "z2": 1 + } + ], + "9799": [ // Lighthouse (During Horror from the Deep) + { + "rx1": 9, + "ry1": 53, + "rx2": 16, + "ry2": 60, + "z1": 1, + "z2": 2 + }, + { "rx1": 12, "ry1": 51, "rx2": 13, @@ -2413,5 +2479,97 @@ "z1": 0, "z2": 1 } + ], + "8008": [ // Temple of Light Dungeon + { + "rx1": 34, + "ry1": 45, + "rx2": 54, + "ry2": 60, + "z1": 0, + "z2": 0 + } + ], + "12349": [ // Mage Arena + { + "rx1": 31, + "ry1": 48, + "rx2": 36, + "ry2": 53, + "z1": 0, + "z2": 0 + }, + { + "rx1": 23, + "ry1": 8, + "rx2": 44, + "ry2": 50, + "z1": 0, + "z2": 0 + }, + { + "rx1": 10, + "ry1": 18, + "rx2": 56, + "ry2": 37, + "z1": 0, + "z2": 0 + }, + { + "rx1": 12, + "ry1": 16, + "rx2": 54, + "ry2": 40, + "z1": 0, + "z2": 0 + }, + { + "rx1": 14, + "ry1": 14, + "rx2": 52, + "ry2": 42, + "z1": 0, + "z2": 0 + }, + { + "rx1": 16, + "ry1": 12, + "rx2": 50, + "ry2": 44, + "z1": 0, + "z2": 0 + }, + { + "rx1": 18, + "ry1": 10, + "rx2": 48, + "ry2": 46, + "z1": 0, + "z2": 0 + }, + { + "rx1": 20, + "ry1": 8, + "rx2": 46, + "ry2": 48, + "z1": 0, + "z2": 0 + }, + { + "rx1": 55, + "ry1": 38, + "rx2": 55, + "ry2": 38, + "z1": 0, + "z2": 0 + }, + { + "rx1": 24, + "ry1": 51, + "rx2": 24, + "ry2": 51, + "z1": 0, + "z2": 0 + } ] }