diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 7bca04ced4..5c5b395588 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -165,6 +165,8 @@ public class WidgetID public static final int DUEL_INVENTORY_OTHER_GROUP_ID = 481; public static final int TRAILBLAZER_AREAS_GROUP_ID = 512; public static final int TEMPOROSS_GROUP_ID = 437; + public static final int CLAN_GROUP_ID = 701; + public static final int CLAN_GUEST_GROUP_ID = 702; static class WorldMap { @@ -951,4 +953,14 @@ public class WidgetID { static final int STATUS_INDICATOR = 4; } + + static class Clan + { + static final int MEMBERS = 8; + } + + static class ClanGuest + { + static final int MEMBERS = 8; + } } diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index c86678fdff..4044ef93b0 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -541,7 +541,10 @@ public enum WidgetInfo MULTICOMBAT_RESIZEABLE_MODERN(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewport.MULTICOMBAT_INDICATOR), MULTICOMBAT_RESIZEABLE_CLASSIC(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.MULTICOMBAT_INDICATOR), - TEMPOROSS_STATUS_INDICATOR(WidgetID.TEMPOROSS_GROUP_ID, WidgetID.TemporossStatus.STATUS_INDICATOR) + TEMPOROSS_STATUS_INDICATOR(WidgetID.TEMPOROSS_GROUP_ID, WidgetID.TemporossStatus.STATUS_INDICATOR), + + CLAN_MEMBER_LIST(WidgetID.CLAN_GROUP_ID, WidgetID.Clan.MEMBERS), + CLAN_GUEST_MEMBER_LIST(WidgetID.CLAN_GUEST_GROUP_ID, WidgetID.ClanGuest.MEMBERS), ; private final int groupId; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java index 6fbd1a4c09..52c1e6d231 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java @@ -56,6 +56,8 @@ import net.runelite.api.MenuAction; import net.runelite.api.MenuEntry; import net.runelite.api.NameableContainer; import net.runelite.api.Varbits; +import net.runelite.api.clan.ClanChannel; +import net.runelite.api.clan.ClanChannelMember; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; @@ -353,10 +355,12 @@ public class WorldHopperPlugin extends Plugin return; } - int groupId = WidgetInfo.TO_GROUP(event.getActionParam1()); + final int componentId = event.getActionParam1(); + int groupId = WidgetInfo.TO_GROUP(componentId); String option = event.getOption(); - if (groupId == WidgetInfo.FRIENDS_LIST.getGroupId() || groupId == WidgetInfo.FRIENDS_CHAT.getGroupId()) + if (groupId == WidgetInfo.FRIENDS_LIST.getGroupId() || groupId == WidgetInfo.FRIENDS_CHAT.getGroupId() + || componentId == WidgetInfo.CLAN_MEMBER_LIST.getId() || componentId == WidgetInfo.CLAN_GUEST_MEMBER_LIST.getId()) { boolean after; @@ -744,6 +748,26 @@ public class WorldHopperPlugin extends Plugin } } + ClanChannel clanChannel = client.getClanChannel(); + if (clanChannel != null) + { + ClanChannelMember member = clanChannel.findMember(cleanName); + if (member != null) + { + return member; + } + } + + clanChannel = client.getGuestClanChannel(); + if (clanChannel != null) + { + ClanChannelMember member = clanChannel.findMember(cleanName); + if (member != null) + { + return member; + } + } + NameableContainer friendContainer = client.getFriendContainer(); if (friendContainer != null) {