From f5a56e0b177825e165236813b8c42f76f8aecfe6 Mon Sep 17 00:00:00 2001 From: Visne <39844191+Visne@users.noreply.github.com> Date: Sun, 7 Jul 2019 23:47:12 +0200 Subject: [PATCH] addFriend() and removeFriend() functionality --- .../src/main/java/net/runelite/api/Client.java | 9 +++++++++ .../java/net/runelite/mixins/RSClientMixin.java | 16 ++++++++++++++++ .../java/net/runelite/rs/api/RSFriendSystem.java | 6 ++++++ runescape-client/src/main/java/FontName.java | 2 +- runescape-client/src/main/java/FriendSystem.java | 3 ++- 5 files changed, 34 insertions(+), 2 deletions(-) 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 4b0748ff0e..f19fdea2e3 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -1685,4 +1685,13 @@ public interface Client extends GameShell */ void sortMenuEntries(); + /** + * Add player to friendlist + */ + void addFriend(String name); + + /** + * Remove player from friendlist + */ + void removeFriend(String name); } 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 782f01915b..54002e8293 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -1607,4 +1607,20 @@ public abstract class RSClientMixin implements RSClient return hideFriendAttackOptions && (p.isFriended() || p.isClanMember()); } + + @Inject + @Override + public void addFriend(String friend) + { + RSFriendSystem friendSystem = getFriendManager(); + friendSystem.addFriend(friend); + } + + @Inject + @Override + public void removeFriend(String friend) + { + RSFriendSystem friendSystem = getFriendManager(); + friendSystem.removeFriend(friend); + } } \ No newline at end of file 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 017971b308..ce0977f4a8 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 @@ -13,4 +13,10 @@ public interface RSFriendSystem extends FriendManager @Import("isFriended") boolean isFriended(RSUsername var1, boolean var2); + + @Import("addFriend") + void addFriend(String username); + + @Import("removeFriend") + void removeFriend(String username); } diff --git a/runescape-client/src/main/java/FontName.java b/runescape-client/src/main/java/FontName.java index acb0e22e88..dfd20fe4b7 100644 --- a/runescape-client/src/main/java/FontName.java +++ b/runescape-client/src/main/java/FontName.java @@ -147,7 +147,7 @@ public class FontName { return 1; } else if (var0 == 3605) { var4 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize]; - WorldMapArea.friendSystem.method103(var4); + WorldMapArea.friendSystem.addFriend(var4); return 1; } else if (var0 == 3606) { var4 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize]; diff --git a/runescape-client/src/main/java/FriendSystem.java b/runescape-client/src/main/java/FriendSystem.java index 911b82db63..558beec2ba 100644 --- a/runescape-client/src/main/java/FriendSystem.java +++ b/runescape-client/src/main/java/FriendSystem.java @@ -129,7 +129,8 @@ public class FriendSystem { signature = "(Ljava/lang/String;I)V", garbageValue = "-1721017960" ) - final void method103(String var1) { + @Export("addFriend") + final void addFriend(String var1) { if (var1 != null) { Username var2 = new Username(var1, this.loginType); if (var2.hasCleanName()) {