From ad1b7b8a0c591664558a18c0140308745b668894 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Sat, 23 May 2020 03:21:20 +0200 Subject: [PATCH 1/2] mixins: refactor to use NameableContainer --- .../java/net/runelite/api/ClanMember.java | 7 - ...endManager.java => ClanMemberManager.java} | 17 ++- .../main/java/net/runelite/api/Client.java | 52 +------- .../main/java/net/runelite/api/Friend.java | 17 +-- .../main/java/net/runelite/api/Ignore.java | 17 +-- .../main/java/net/runelite/api/Nameable.java | 17 ++- .../net/runelite/api/NameableContainer.java | 47 +++---- .../net/runelite/client/game/ClanManager.java | 22 ++-- .../runelite/client/game/PlayerManager.java | 7 +- .../net/runelite/mixins/RSClanChatMixin.java | 6 +- .../net/runelite/mixins/RSClanMateMixin.java | 7 - .../net/runelite/mixins/RSClientMixin.java | 122 +----------------- .../net/runelite/mixins/RSMessageMixin.java | 2 +- .../net/runelite/mixins/RSUserListMixin.java | 23 ++++ .../{RSIgnoredMixin.java => RSUserMixin.java} | 6 +- .../java/net/runelite/rs/api/RSClanChat.java | 4 +- .../net/runelite/rs/api/RSFriendSystem.java | 3 +- .../net/runelite/rs/api/RSFriendsList.java | 5 +- .../net/runelite/rs/api/RSIgnoreList.java | 5 +- .../java/net/runelite/rs/api/RSUserList.java | 13 +- 20 files changed, 135 insertions(+), 264 deletions(-) rename runelite-api/src/main/java/net/runelite/api/{FriendManager.java => ClanMemberManager.java} (82%) rename runelite-mixins/src/main/java/net/runelite/mixins/RSFriendMixin.java => runelite-api/src/main/java/net/runelite/api/NameableContainer.java (71%) rename runelite-mixins/src/main/java/net/runelite/mixins/{RSIgnoredMixin.java => RSUserMixin.java} (76%) diff --git a/runelite-api/src/main/java/net/runelite/api/ClanMember.java b/runelite-api/src/main/java/net/runelite/api/ClanMember.java index b8082af3d9..3afb7d85d9 100644 --- a/runelite-api/src/main/java/net/runelite/api/ClanMember.java +++ b/runelite-api/src/main/java/net/runelite/api/ClanMember.java @@ -29,13 +29,6 @@ package net.runelite.api; */ public interface ClanMember extends ChatPlayer { - /** - * Gets the username of the member. - * - * @return the username - */ - String getUsername(); - /** * Gets the world the member is in. * diff --git a/runelite-api/src/main/java/net/runelite/api/FriendManager.java b/runelite-api/src/main/java/net/runelite/api/ClanMemberManager.java similarity index 82% rename from runelite-api/src/main/java/net/runelite/api/FriendManager.java rename to runelite-api/src/main/java/net/runelite/api/ClanMemberManager.java index 2047959f2c..993d02be95 100644 --- a/runelite-api/src/main/java/net/runelite/api/FriendManager.java +++ b/runelite-api/src/main/java/net/runelite/api/ClanMemberManager.java @@ -27,4 +27,19 @@ package net.runelite.api; /** * Represents the friend and ignore list manager. */ -public interface FriendManager {} +public interface ClanMemberManager extends NameableContainer +{ + /** + * Gets the clan owner of the currently joined clan chat + * + * @return + */ + String getClanOwner(); + + /** + * Gets the clan chat name of the currently joined clan chat + * + * @return + */ + String getClanChatName(); +} diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index fa5c8a82d2..c4a3c89a00 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -1195,58 +1195,20 @@ public interface Client extends GameShell boolean isFriended(String name, boolean mustBeLoggedIn); /** - * Gets the number of players in the clan chat. - * - * @return the number of clan chat members + * Retrieve the clan member manager */ - int getClanChatCount(); + @Nullable + ClanMemberManager getClanMemberManager(); /** - * Gets an array of players in the clan chat. - * - * @return the clan chat members, null if not in a clan + * Retrieve the nameable container containing friends */ - ClanMember[] getClanMembers(); + NameableContainer getFriendContainer(); /** - * Gets the clan owner of the currently joined clan chat + * Retrieve the nameable container containing ignores */ - String getClanOwner(); - - /** - * Gets the clan chat name of the currently joined clan chat - */ - String getClanChatName(); - - /** - * Gets an array of players in the friends list. - * - * @return the friends list - */ - Friend[] getFriends(); - - /** - * Gets the number of friends on the friends list. - */ - int getFriendsCount(); - - /** - * Gets an array of players on the ignore list. - */ - Ignore[] getIgnores(); - - /** - * Gets the number of ignored players on the ignore list. - */ - int getIgnoreCount(); - - /** - * Checks whether a player is in the same clan chat. - * - * @param name the name of the player - * @return true if the player is in clan chat - */ - boolean isClanMember(String name); + NameableContainer getIgnoreContainer(); /** * Gets the clients saved preferences. diff --git a/runelite-api/src/main/java/net/runelite/api/Friend.java b/runelite-api/src/main/java/net/runelite/api/Friend.java index 7b28e18a67..171803aba9 100644 --- a/runelite-api/src/main/java/net/runelite/api/Friend.java +++ b/runelite-api/src/main/java/net/runelite/api/Friend.java @@ -27,19 +27,4 @@ package net.runelite.api; /** * Represents a player in the friends list. */ -public interface Friend extends ChatPlayer -{ - /** - * The name of the player. - * - * @return the name - */ - String getName(); - - /** - * The previous name the player had. - * - * @return the previous name - */ - String getPrevName(); -} +public interface Friend extends ChatPlayer {} diff --git a/runelite-api/src/main/java/net/runelite/api/Ignore.java b/runelite-api/src/main/java/net/runelite/api/Ignore.java index 52f42e0aaa..18eb767b76 100644 --- a/runelite-api/src/main/java/net/runelite/api/Ignore.java +++ b/runelite-api/src/main/java/net/runelite/api/Ignore.java @@ -27,19 +27,4 @@ package net.runelite.api; /** * An entry on the ignore list. */ -public interface Ignore extends Nameable -{ - /** - * The name of the player. - * - * @return the name - */ - String getName(); - - /** - * The previous name the player had. - * - * @return the previous name - */ - String getPrevName(); -} +public interface Ignore extends Nameable {} diff --git a/runelite-api/src/main/java/net/runelite/api/Nameable.java b/runelite-api/src/main/java/net/runelite/api/Nameable.java index 419f5206ed..f627d98901 100644 --- a/runelite-api/src/main/java/net/runelite/api/Nameable.java +++ b/runelite-api/src/main/java/net/runelite/api/Nameable.java @@ -27,4 +27,19 @@ package net.runelite.api; /** * Represents a chat entity that has a name. */ -public interface Nameable extends Comparable {} +public interface Nameable extends Comparable +{ + /** + * The name of the player. + * + * @return the name + */ + String getName(); + + /** + * The previous name the player had. + * + * @return the previous name + */ + String getPrevName(); +} diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSFriendMixin.java b/runelite-api/src/main/java/net/runelite/api/NameableContainer.java similarity index 71% rename from runelite-mixins/src/main/java/net/runelite/mixins/RSFriendMixin.java rename to runelite-api/src/main/java/net/runelite/api/NameableContainer.java index 13dd332804..6e62050d7a 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSFriendMixin.java +++ b/runelite-api/src/main/java/net/runelite/api/NameableContainer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Adam + * Copyright (c) 2019, Adam * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,28 +22,29 @@ * (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.mixins; +package net.runelite.api; -import net.runelite.api.mixins.Inject; -import net.runelite.api.mixins.Mixin; -import net.runelite.rs.api.RSFriend; -import net.runelite.rs.api.RSUsername; - -@Mixin(RSFriend.class) -public abstract class RSFriendMixin implements RSFriend +public interface NameableContainer { - @Override - @Inject - public String getName() - { - return getRsName().getName(); - } + /** + * Get the number of members in this container + * + * @return + */ + int getCount(); - @Override - @Inject - public String getPrevName() - { - RSUsername prevName = getRsPrevName(); - return prevName == null ? null : prevName.getName(); - } -} + /** + * Get the members in this container + * + * @return + */ + T[] getMembers(); + + /** + * Find a nameable by name + * + * @param name the name + * @return + */ + T findByName(String name); +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java b/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java index ffe8fd24d7..9e15e3dcc7 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java @@ -31,13 +31,13 @@ import java.awt.Color; import java.awt.Dimension; import java.awt.image.BufferedImage; import java.util.Arrays; -import java.util.Objects; import java.util.concurrent.TimeUnit; import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.api.ClanMember; +import net.runelite.api.ClanMemberManager; import net.runelite.api.ClanMemberRank; import net.runelite.api.Client; import net.runelite.api.GameState; @@ -79,19 +79,15 @@ public class ClanManager @Override public ClanMemberRank load(@Nonnull String key) { - final ClanMember[] clanMembersArr = client.getClanMembers(); - - if (clanMembersArr == null || clanMembersArr.length == 0) + final ClanMemberManager clanMemberManager = client.getClanMemberManager(); + if (clanMemberManager == null) { return ClanMemberRank.UNRANKED; } - return Arrays.stream(clanMembersArr) - .filter(Objects::nonNull) - .filter(clanMember -> sanitize(clanMember.getUsername()).equals(sanitize(key))) - .map(ClanMember::getRank) - .findAny() - .orElse(ClanMemberRank.UNRANKED); + + ClanMember clanMember = clanMemberManager.findByName(sanitize(key)); + return clanMember != null ? clanMember.getRank() : ClanMemberRank.UNRANKED; } }); @@ -111,6 +107,12 @@ public class ClanManager eventbus.subscribe(ClanChanged.class, this, this::onClanChanged); } + public boolean isClanMember(String name) + { + ClanMemberManager clanMemberManager = client.getClanMemberManager(); + return clanMemberManager != null && clanMemberManager.findByName(name) != null; + } + public ClanMemberRank getRank(String playerName) { return clanRanksCache.getUnchecked(playerName); diff --git a/runelite-client/src/main/java/net/runelite/client/game/PlayerManager.java b/runelite-client/src/main/java/net/runelite/client/game/PlayerManager.java index 5681ba166f..f6a35943ae 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/PlayerManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/PlayerManager.java @@ -43,6 +43,7 @@ public class PlayerManager private final Client client; private final ItemManager itemManager; private final EventBus eventBus; + private final ClanManager clanManager; private final Map playerMap = new ConcurrentHashMap<>(); private final Map resultCache = new ConcurrentHashMap<>(); private final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 2); @@ -51,12 +52,14 @@ public class PlayerManager PlayerManager( final Client client, final EventBus eventBus, - final ItemManager itemManager + final ItemManager itemManager, + final ClanManager clanManager ) { this.client = client; this.itemManager = itemManager; this.eventBus = eventBus; + this.clanManager = clanManager; eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned); eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); eventBus.subscribe(PlayerAppearanceChanged.class, this, this::onAppearenceChanged); @@ -206,7 +209,7 @@ public class PlayerManager update(player); player.setFriend(client.isFriended(player.getName(), false)); - player.setClan(client.isClanMember(player.getName())); + player.setClan(clanManager.isClanMember(player.getName())); } private void onPlayerDespawned(PlayerDespawned event) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClanChatMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClanChatMixin.java index 3b2fba39bc..087e19001b 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClanChatMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClanChatMixin.java @@ -1,12 +1,12 @@ package net.runelite.mixins; +import net.runelite.api.ClanMember; import net.runelite.api.events.ClanMemberJoined; import net.runelite.api.events.ClanMemberLeft; import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Shadow; import net.runelite.rs.api.RSClanChat; -import net.runelite.rs.api.RSClanMate; import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSUser; import net.runelite.rs.api.RSUsername; @@ -21,7 +21,7 @@ public abstract class RSClanChatMixin implements RSClanChat @Override public void rl$add(RSUsername name, RSUsername prevName) { - RSClanMate member = findByName(name); + ClanMember member = findByName(name); if (member == null) { return; @@ -35,7 +35,7 @@ public abstract class RSClanChatMixin implements RSClanChat @Override public void rl$remove(RSUser nameable) { - RSClanMate member = findByName(nameable.getRsName()); + ClanMember member = findByName(nameable.getRsName()); if (member == null) { return; diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClanMateMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClanMateMixin.java index ee272cb3db..ef2742c4a6 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClanMateMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClanMateMixin.java @@ -8,13 +8,6 @@ import net.runelite.rs.api.RSClanMate; @Mixin(RSClanMate.class) public abstract class RSClanMateMixin implements RSClanMate { - @Override - @Inject - public String getUsername() - { - return getRsName().getName(); - } - @Override @Inject public ClanMemberRank getRank() diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index edf87f6387..ccd30e166c 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -28,7 +28,6 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import java.math.BigInteger; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.EnumSet; import java.util.HashSet; @@ -39,7 +38,6 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.inject.Named; import net.runelite.api.ChatMessageType; -import net.runelite.api.ClanMember; import net.runelite.api.EnumDefinition; import net.runelite.api.Friend; import net.runelite.api.GameState; @@ -58,6 +56,7 @@ import net.runelite.api.MenuOpcode; import net.runelite.api.MessageNode; import net.runelite.api.NPC; import net.runelite.api.NPCDefinition; +import net.runelite.api.NameableContainer; import net.runelite.api.Node; import net.runelite.api.ObjectDefinition; import net.runelite.api.Player; @@ -113,12 +112,9 @@ import net.runelite.api.widgets.WidgetItem; import net.runelite.api.widgets.WidgetType; import net.runelite.rs.api.RSAbstractArchive; import net.runelite.rs.api.RSChatChannel; -import net.runelite.rs.api.RSClanChat; import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSEnumDefinition; import net.runelite.rs.api.RSFriendSystem; -import net.runelite.rs.api.RSFriendsList; -import net.runelite.rs.api.RSIgnoreList; import net.runelite.rs.api.RSIndexedSprite; import net.runelite.rs.api.RSItemContainer; import net.runelite.rs.api.RSNPC; @@ -905,124 +901,16 @@ public abstract class RSClientMixin implements RSClient @Inject @Override - public int getClanChatCount() + public NameableContainer getFriendContainer() { - final RSClanChat clanMemberManager = getClanMemberManager(); - return clanMemberManager != null ? clanMemberManager.getCount() : 0; + return getFriendManager().getFriendContainer(); } @Inject @Override - public ClanMember[] getClanMembers() + public NameableContainer getIgnoreContainer() { - final RSClanChat clanMemberManager = getClanMemberManager(); - if (clanMemberManager == null) - { - return null; - } - - final int count = clanMemberManager.getCount(); - return Arrays.copyOf(clanMemberManager.getNameables(), count); - } - - @Inject - @Override - public String getClanOwner() - { - return getClanMemberManager().getClanOwner(); - } - - @Inject - @Override - public String getClanChatName() - { - return getClanMemberManager().getClanChatName(); - } - - @Inject - @Override - public Friend[] getFriends() - { - final RSFriendSystem friendManager = getFriendManager(); - if (friendManager == null) - { - return null; - } - - final RSFriendsList friendContainer = friendManager.getFriendContainer(); - if (friendContainer == null) - { - return null; - } - - final int count = friendContainer.getCount(); - return Arrays.copyOf(friendContainer.getNameables(), count); - } - - @Inject - @Override - public int getFriendsCount() - { - final RSFriendSystem friendManager = getFriendManager(); - if (friendManager == null) - { - return -1; - } - - final RSFriendsList friendContainer = friendManager.getFriendContainer(); - if (friendContainer == null) - { - return -1; - } - - return friendContainer.getCount(); - } - - @Inject - @Override - public Ignore[] getIgnores() - { - final RSFriendSystem friendManager = getFriendManager(); - if (friendManager == null) - { - return null; - } - - final RSIgnoreList ignoreContainer = friendManager.getIgnoreContainer(); - if (ignoreContainer == null) - { - return null; - } - - final int count = ignoreContainer.getCount(); - return Arrays.copyOf(ignoreContainer.getNameables(), count); - } - - @Inject - @Override - public int getIgnoreCount() - { - final RSFriendSystem friendManager = getFriendManager(); - if (friendManager == null) - { - return -1; - } - - final RSIgnoreList ignoreContainer = friendManager.getIgnoreContainer(); - if (ignoreContainer == null) - { - return -1; - } - - return ignoreContainer.getCount(); - } - - @Inject - @Override - public boolean isClanMember(String name) - { - final RSClanChat clanMemberManager = getClanMemberManager(); - return clanMemberManager != null && clanMemberManager.isMember(createName(name, getLoginType())); + return getFriendManager().getIgnoreContainer(); } @FieldHook("isDraggingWidget") diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageMixin.java index d514f859eb..7dc3e52ff8 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageMixin.java @@ -78,6 +78,6 @@ public abstract class RSMessageMixin implements RSMessage { RSClanChat cc = client.getClanMemberManager(); - return cc != null && cc.isMember(this.getSenderUsername()); + return cc != null && cc.findByName(this.getSenderUsername()) != null; } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSUserListMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSUserListMixin.java index 1a76beec25..bd6988046d 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSUserListMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSUserListMixin.java @@ -1,8 +1,12 @@ package net.runelite.mixins; +import java.util.Arrays; +import net.runelite.api.Nameable; import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.MethodHook; import net.runelite.api.mixins.Mixin; +import net.runelite.api.mixins.Shadow; +import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSUser; import net.runelite.rs.api.RSUserList; import net.runelite.rs.api.RSUsername; @@ -10,6 +14,9 @@ import net.runelite.rs.api.RSUsername; @Mixin(RSUserList.class) public abstract class RSUserListMixin implements RSUserList { + @Shadow("client") + private static RSClient client; + /** * Default implementation of rl$add * @@ -46,4 +53,20 @@ public abstract class RSUserListMixin implements RSUserList { rl$remove(nameable); } + + @Inject + @Override + public Nameable[] getMembers() + { + Nameable[] nameables = this.getNameables(); + int count = this.getCount(); + return Arrays.copyOf(nameables, count); + } + + @Inject + @Override + public Nameable findByName(String name) + { + return findByName(client.createName(name, client.getLoginType())); + } } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSIgnoredMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSUserMixin.java similarity index 76% rename from runelite-mixins/src/main/java/net/runelite/mixins/RSIgnoredMixin.java rename to runelite-mixins/src/main/java/net/runelite/mixins/RSUserMixin.java index cd736628f6..ac8fb4a5da 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSIgnoredMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSUserMixin.java @@ -2,11 +2,11 @@ package net.runelite.mixins; import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Mixin; -import net.runelite.rs.api.RSIgnored; +import net.runelite.rs.api.RSUser; import net.runelite.rs.api.RSUsername; -@Mixin(RSIgnored.class) -public abstract class RSIgnoredMixin implements RSIgnored +@Mixin(RSUser.class) +public abstract class RSUserMixin implements RSUser { @Override @Inject diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSClanChat.java b/runescape-api/src/main/java/net/runelite/rs/api/RSClanChat.java index 4b13f47147..9ea98e0873 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSClanChat.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSClanChat.java @@ -1,8 +1,10 @@ package net.runelite.rs.api; +import net.runelite.api.ClanMember; +import net.runelite.api.ClanMemberManager; import net.runelite.mapping.Import; -public interface RSClanChat extends RSUserList +public interface RSClanChat extends RSUserList, ClanMemberManager { @Import("owner") String getClanOwner(); diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSFriendSystem.java b/runescape-api/src/main/java/net/runelite/rs/api/RSFriendSystem.java index ce0977f4a8..283ce53c09 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSFriendSystem.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSFriendSystem.java @@ -1,9 +1,8 @@ package net.runelite.rs.api; -import net.runelite.api.FriendManager; import net.runelite.mapping.Import; -public interface RSFriendSystem extends FriendManager +public interface RSFriendSystem { @Import("friendsList") RSFriendsList getFriendContainer(); diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSFriendsList.java b/runescape-api/src/main/java/net/runelite/rs/api/RSFriendsList.java index 5dfc75efcb..68eddcc8a1 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSFriendsList.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSFriendsList.java @@ -1,3 +1,6 @@ package net.runelite.rs.api; -public interface RSFriendsList extends RSUserList {} +import net.runelite.api.Friend; +import net.runelite.api.NameableContainer; + +public interface RSFriendsList extends NameableContainer {} diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSIgnoreList.java b/runescape-api/src/main/java/net/runelite/rs/api/RSIgnoreList.java index 4bf6ffc33b..b552837b29 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSIgnoreList.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSIgnoreList.java @@ -1,3 +1,6 @@ package net.runelite.rs.api; -public interface RSIgnoreList extends RSUserList {} +import net.runelite.api.Ignore; +import net.runelite.api.NameableContainer; + +public interface RSIgnoreList extends NameableContainer {} diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSUserList.java b/runescape-api/src/main/java/net/runelite/rs/api/RSUserList.java index 6a0edde6ab..23a6b8f480 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSUserList.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSUserList.java @@ -1,18 +1,17 @@ package net.runelite.rs.api; +import net.runelite.api.Nameable; +import net.runelite.api.NameableContainer; import net.runelite.mapping.Import; -public interface RSUserList +public interface RSUserList extends NameableContainer { + @Import("array") + Nameable[] getNameables(); + @Import("getSize") int getCount(); - @Import("array") - T[] getNameables(); - - @Import("contains") - boolean isMember(RSUsername var1); - @Import("getByUsername") T findByName(RSUsername name); From 228deaabc6b62deef470980146d4c0e859b44e23 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Mon, 25 May 2020 21:56:41 +0200 Subject: [PATCH 2/2] project: Bump client version --- buildSrc/src/main/kotlin/Dependencies.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index b47f6395a2..699cbc77ed 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -27,7 +27,7 @@ object ProjectVersions { const val launcherVersion = "2.2.0" const val rlVersion = "1.6.16" - const val openosrsVersion = "3.3.3" + const val openosrsVersion = "3.3.4" const val rsversion = 189 const val cacheversion = 165