diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 8c2372e7c7..135a970523 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.19" - const val openosrsVersion = "3.3.7" + const val openosrsVersion = "3.3.8" const val rsversion = 189 const val cacheversion = 165 diff --git a/runelite-api/src/main/java/net/runelite/api/Actor.java b/runelite-api/src/main/java/net/runelite/api/Actor.java index 0ce745e142..6a6d741d5b 100644 --- a/runelite-api/src/main/java/net/runelite/api/Actor.java +++ b/runelite-api/src/main/java/net/runelite/api/Actor.java @@ -127,6 +127,23 @@ public interface Actor extends Entity, Locatable */ int getAnimation(); + /** + * Gets the secondary animation the actor is performing. + * + * @return the animation ID + * @see AnimationID + */ + int getPoseAnimation(); + + /** + * If this is equal to the pose animation, the pose animation is ignored when + * you are doing another action. + * + * @return the animation ID + * @see AnimationID + */ + int getIdlePoseAnimation(); + /** * Sets an animation for the actor to perform. * @@ -268,11 +285,4 @@ public interface Actor extends Entity, Locatable int getWalkRightAnimation(); int getRunAnimation(); - - /** - * This gets used for drawing the correct animation. - * - * The client moves one of the other animation fields into this field based off the actor's state - */ - int getMovementAnimation(); } diff --git a/runelite-api/src/main/java/net/runelite/api/ChatMessageType.java b/runelite-api/src/main/java/net/runelite/api/ChatMessageType.java index abed95406c..f96d7fba63 100644 --- a/runelite-api/src/main/java/net/runelite/api/ChatMessageType.java +++ b/runelite-api/src/main/java/net/runelite/api/ChatMessageType.java @@ -69,11 +69,11 @@ public enum ChatMessageType */ MODPRIVATECHAT(7), /** - * A message received in clan chat. + * A message received in friends chat. */ FRIENDSCHAT(9), /** - * A message received with information about the current clan chat. + * A message received with information about the current friends chat. */ FRIENDSCHATNOTIFICATION(11), /** @@ -133,7 +133,7 @@ public enum ChatMessageType */ CHALREQ_TRADE(103), /** - * A message received when someone sends a clan challenge offer. + * A message received when someone sends a friends chat challenge offer. */ CHALREQ_FRIENDSCHAT(104), /** 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 36f5a2efa4..7c40a86f11 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -1199,10 +1199,12 @@ public interface Client extends GameShell boolean isFriended(String name, boolean mustBeLoggedIn); /** - * Retrieve the clan member manager + * Retrieve the friends chat manager + * + * @return */ @Nullable - ClanMemberManager getClanMemberManager(); + FriendsChatManager getFriendsChatManager(); /** * Retrieve the nameable container containing friends @@ -1527,11 +1529,11 @@ public interface Client extends GameShell void setFriendsHidden(boolean state); /** - * Sets whether or not clan mates are hidden. + * Sets whether or not friends chat members are hidden. * - * @param state the new clan mates hidden state + * @param state the new friends chat member hidden state */ - void setClanMatesHidden(boolean state); + void setFriendsChatMembersHidden(boolean state); /** * Sets whether the local player is hidden. diff --git a/runelite-api/src/main/java/net/runelite/api/ClanMemberManager.java b/runelite-api/src/main/java/net/runelite/api/FriendsChatManager.java similarity index 82% rename from runelite-api/src/main/java/net/runelite/api/ClanMemberManager.java rename to runelite-api/src/main/java/net/runelite/api/FriendsChatManager.java index 993d02be95..62ca061b3c 100644 --- a/runelite-api/src/main/java/net/runelite/api/ClanMemberManager.java +++ b/runelite-api/src/main/java/net/runelite/api/FriendsChatManager.java @@ -24,22 +24,20 @@ */ package net.runelite.api; -/** - * Represents the friend and ignore list manager. - */ -public interface ClanMemberManager extends NameableContainer + +public interface FriendsChatManager extends NameableContainer { /** - * Gets the clan owner of the currently joined clan chat + * Gets the owner of the currently joined friends chat * * @return */ - String getClanOwner(); + String getOwner(); /** - * Gets the clan chat name of the currently joined clan chat + * Gets the name of the currently joined friends chat * * @return */ - String getClanChatName(); + String getName(); } diff --git a/runelite-api/src/main/java/net/runelite/api/ClanMember.java b/runelite-api/src/main/java/net/runelite/api/FriendsChatMember.java similarity index 90% rename from runelite-api/src/main/java/net/runelite/api/ClanMember.java rename to runelite-api/src/main/java/net/runelite/api/FriendsChatMember.java index 3afb7d85d9..6096166993 100644 --- a/runelite-api/src/main/java/net/runelite/api/ClanMember.java +++ b/runelite-api/src/main/java/net/runelite/api/FriendsChatMember.java @@ -25,9 +25,9 @@ package net.runelite.api; /** - * Represents a clan member. + * Represents a friends chat member. */ -public interface ClanMember extends ChatPlayer +public interface FriendsChatMember extends ChatPlayer { /** * Gets the world the member is in. @@ -37,9 +37,9 @@ public interface ClanMember extends ChatPlayer int getWorld(); /** - * Gets the rank of the clan member. + * Gets the rank of the friends chat member. * * @return the rank */ - ClanMemberRank getRank(); + FriendsChatRank getRank(); } diff --git a/runelite-api/src/main/java/net/runelite/api/ClanMemberRank.java b/runelite-api/src/main/java/net/runelite/api/FriendsChatRank.java similarity index 84% rename from runelite-api/src/main/java/net/runelite/api/ClanMemberRank.java rename to runelite-api/src/main/java/net/runelite/api/FriendsChatRank.java index c919e343c7..166f63c1e5 100644 --- a/runelite-api/src/main/java/net/runelite/api/ClanMemberRank.java +++ b/runelite-api/src/main/java/net/runelite/api/FriendsChatRank.java @@ -30,14 +30,14 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * An enumeration of ranks of clan members. + * An enumeration of ranks of friends chat members. */ @AllArgsConstructor @Getter -public enum ClanMemberRank +public enum FriendsChatRank { /** - * Not in a clan. + * Not ranked. */ UNRANKED(-1), /** @@ -77,30 +77,30 @@ public enum ClanMemberRank */ JMOD(127); - private static final Map RANKS = new HashMap<>(); + private static final Map RANKS = new HashMap<>(); static { - for (final ClanMemberRank clanMemberRank : ClanMemberRank.values()) + for (final FriendsChatRank friendsChatRank : FriendsChatRank.values()) { - RANKS.put(clanMemberRank.value, clanMemberRank); + RANKS.put(friendsChatRank.value, friendsChatRank); } } /** * Utility method that maps the rank value to its respective - * {@link ClanMemberRank} value. + * {@link FriendsChatRank} value. * * @param rank the rank value * @return rank type */ - public static ClanMemberRank valueOf(int rank) + public static FriendsChatRank valueOf(int rank) { return RANKS.get(rank); } /** - * The value of the clan rank. + * The value of the rank. */ private final int value; } diff --git a/runelite-api/src/main/java/net/runelite/api/MenuOpcode.java b/runelite-api/src/main/java/net/runelite/api/MenuOpcode.java index e13c0b30b1..3abb4318b8 100644 --- a/runelite-api/src/main/java/net/runelite/api/MenuOpcode.java +++ b/runelite-api/src/main/java/net/runelite/api/MenuOpcode.java @@ -284,6 +284,10 @@ public enum MenuOpcode * a player and have its identifier set to a player index. */ RUNELITE_PLAYER(1503), + /** + * Menu action for InfoBox menu entries + */ + RUNELITE_INFOBOX(1504), FOLLOW(2046), TRADE(2047), diff --git a/runelite-api/src/main/java/net/runelite/api/MessageNode.java b/runelite-api/src/main/java/net/runelite/api/MessageNode.java index 7a5194142d..b191555d05 100644 --- a/runelite-api/src/main/java/net/runelite/api/MessageNode.java +++ b/runelite-api/src/main/java/net/runelite/api/MessageNode.java @@ -58,7 +58,7 @@ public interface MessageNode extends Node void setName(String name); /** - * Gets the sender of the message (ie. clan name). + * Gets the sender of the message (ie. friends chat name). * * @return the message sender */ diff --git a/runelite-api/src/main/java/net/runelite/api/Player.java b/runelite-api/src/main/java/net/runelite/api/Player.java index 3d2a924abd..2bb160d2f2 100644 --- a/runelite-api/src/main/java/net/runelite/api/Player.java +++ b/runelite-api/src/main/java/net/runelite/api/Player.java @@ -60,12 +60,12 @@ public interface Player extends Actor int getTeam(); /** - * Checks whether this player is a member of the same clan as + * Checks whether this player is a member of the same friends chat * the local player. * - * @return true if the player is a clan member, false otherwise + * @return true if the player is a friends chat member, false otherwise */ - boolean isClanMember(); + boolean isFriendsChatMember(); /** * Checks whether this player is a friend of the local player. 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 5800134495..cbf53b34e6 100644 --- a/runelite-api/src/main/java/net/runelite/api/ScriptID.java +++ b/runelite-api/src/main/java/net/runelite/api/ScriptID.java @@ -219,13 +219,13 @@ public final class ScriptID public static final int PUBLICMSG = 13337; /** - * Attempts to kick the specified player from the Clan Chat + * Attempts to kick the specified player from the friends chat *
    *
  • String Players in-game name
  • *
*/ @ScriptArguments(string = 1) - public static final int CLAN_SEND_KICK = 215; + public static final int FRIENDS_CHAT_SEND_KICK = 215; /** * Toggles the bank search @@ -248,10 +248,10 @@ public final class ScriptID public static final int DEATH_KEEP_BUILD = 1601; /** - * Builds the widget that holds all of the players inside a clan chat + * Builds the widget that holds all of the players inside a friends chat */ @ScriptArguments(integer = 15) - public static final int CLAN_CHAT_CHANNEL_BUILD = 1658; + public static final int FRIENDS_CHAT_CHANNEL_REBUILD = 1658; /** * Builds the widget for making an offer in Grand Exchange diff --git a/runelite-api/src/main/java/net/runelite/api/SpriteID.java b/runelite-api/src/main/java/net/runelite/api/SpriteID.java index 93d9272468..1acb382894 100644 --- a/runelite-api/src/main/java/net/runelite/api/SpriteID.java +++ b/runelite-api/src/main/java/net/runelite/api/SpriteID.java @@ -776,7 +776,7 @@ public final class SpriteID public static final int RS2_TAB_EQUIPMENT = 778; public static final int RS2_TAB_PRAYER = 779; public static final int TAB_MAGIC = 780; - public static final int RS2_TAB_CLAN_CHAT = 781; + public static final int RS2_TAB_FRIENDS_CHAT = 781; public static final int TAB_FRIENDS = 782; public static final int TAB_IGNORES = 783; public static final int RS2_TAB_LOGOUT = 784; @@ -888,7 +888,7 @@ public final class SpriteID public static final int TAB_EQUIPMENT = 901; public static final int TAB_PRAYER = 902; public static final int UNUSED_TAB_MAGIC_903 = 903; - public static final int TAB_CLAN_CHAT = 904; + public static final int TAB_FRIENDS_CHAT = 904; public static final int TAB_LOGOUT = 907; public static final int TAB_OPTIONS = 908; public static final int TAB_EMOTES = 909; @@ -977,15 +977,15 @@ public final class SpriteID public static final int STASH_UNITS_SLANTED_TAB_EDGE_LEFT_HOVERED = 1001; public static final int STASH_UNITS_SLANTED_TAB_MIDDLE_HOVERED = 1002; public static final int STASH_UNITS_SLANTED_TAB_EDGE_RIGHT_HOVERED = 1003; - public static final int CLAN_CHAT_RANK_SMILEY_FRIEND = 1004; - public static final int CLAN_CHAT_RANK_CROWN_JAGEX_MODERATOR = 1005; - public static final int CLAN_CHAT_RANK_KEY_CHANNEL_OWNER = 1006; - public static final int CLAN_CHAT_RANK_GOLD_STAR_GENERAL = 1007; - public static final int CLAN_CHAT_RANK_SILVER_STAR_CAPTAIN = 1008; - public static final int CLAN_CHAT_RANK_BRONZE_STAR_LIEUTENANT = 1009; - public static final int CLAN_CHAT_RANK_TRIPLE_CHEVRON_SERGEANT = 1010; - public static final int CLAN_CHAT_RANK_DOUBLE_CHEVRON_CORPORAL = 1011; - public static final int CLAN_CHAT_RANK_SINGLE_CHEVRON_RECRUIT = 1012; + public static final int FRIENDS_CHAT_RANK_SMILEY_FRIEND = 1004; + public static final int FRIENDS_CHAT_RANK_CROWN_JAGEX_MODERATOR = 1005; + public static final int FRIENDS_CHAT_RANK_KEY_CHANNEL_OWNER = 1006; + public static final int FRIENDS_CHAT_RANK_GOLD_STAR_GENERAL = 1007; + public static final int FRIENDS_CHAT_RANK_SILVER_STAR_CAPTAIN = 1008; + public static final int FRIENDS_CHAT_RANK_BRONZE_STAR_LIEUTENANT = 1009; + public static final int FRIENDS_CHAT_RANK_TRIPLE_CHEVRON_SERGEANT = 1010; + public static final int FRIENDS_CHAT_RANK_DOUBLE_CHEVRON_CORPORAL = 1011; + public static final int FRIENDS_CHAT_RANK_SINGLE_CHEVRON_RECRUIT = 1012; public static final int UNKNOWN_BUTTON_METAL_CORNERS = 1013; public static final int UNKNOWN_BUTTON_METAL_CORNERS_HOVERED = 1014; public static final int UNKNOWN_SLANTED_TAB_LONG = 1015; @@ -1017,7 +1017,7 @@ public final class SpriteID public static final int BANK_DEPOSIT_INVENTORY = 1041; public static final int BANK_DEPOSIT_EQUIPMENT = 1042; public static final int BANK_SEARCH = 1043; - public static final int MINIMAP_MARKER_PURPLE_PLAYER_CLAN_CHAT = 1044; + public static final int MINIMAP_MARKER_PURPLE_PLAYER_FRIENDS_CHAT = 1044; public static final int OPTIONS_PROFANITY_FILTER = 1045; public static final int PLAYER_KILLER_SKULL_1046 = 1046; public static final int PLAYER_KILLING_DISABLED_OVERLAY = 1047; diff --git a/runelite-api/src/main/java/net/runelite/api/VarClientStr.java b/runelite-api/src/main/java/net/runelite/api/VarClientStr.java index b07bb8ff26..3c6c4bd528 100644 --- a/runelite-api/src/main/java/net/runelite/api/VarClientStr.java +++ b/runelite-api/src/main/java/net/runelite/api/VarClientStr.java @@ -42,7 +42,7 @@ public enum VarClientStr CHATBOX_TYPED_TEXT(335), INPUT_TEXT(359), PRIVATE_MESSAGE_TARGET(360), - RECENT_CLAN_CHAT(362); + RECENT_FRIENDS_CHAT(362); private final int index; } diff --git a/runelite-api/src/main/java/net/runelite/api/VarPlayer.java b/runelite-api/src/main/java/net/runelite/api/VarPlayer.java index 999ef7a6b1..241861dd42 100644 --- a/runelite-api/src/main/java/net/runelite/api/VarPlayer.java +++ b/runelite-api/src/main/java/net/runelite/api/VarPlayer.java @@ -64,11 +64,11 @@ public enum VarPlayer /** * The ID of the party. This Var is only set in the raid bank area and the raid lobby * - * This gets set to -1 when the raid starts. This is first set when the first player of the clan forms a party + * This gets set to -1 when the raid starts. This is first set when the first player of the friends chat forms a party * on the recruiting board and it changes again when the first person actually enters the raid. * * -1 : Not in a party or in the middle of an ongoing raid - * Anything else : This means that your clan has a raid party being formed and has not started yet + * Anything else : This means that your friends chat has a raid party being formed and has not started yet */ IN_RAID_PARTY(1427), diff --git a/runelite-api/src/main/java/net/runelite/api/events/CannonChanged.java b/runelite-api/src/main/java/net/runelite/api/events/CannonChanged.java index 4b1dec8b4c..4782c8e8a1 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/CannonChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/CannonChanged.java @@ -37,10 +37,10 @@ public class CannonChanged implements Event * The projectile id. */ @Nullable - private final Integer cannonballId; + Integer cannonballId; /** * The amount of cannonballs left. */ - private final int cannonballs; + int cannonballs; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/CannonPlaced.java b/runelite-api/src/main/java/net/runelite/api/events/CannonPlaced.java index 9cc8a01158..8d0aa636c0 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/CannonPlaced.java +++ b/runelite-api/src/main/java/net/runelite/api/events/CannonPlaced.java @@ -38,17 +38,17 @@ public class CannonPlaced implements Event /** * Cannon placed or picked up. */ - private final boolean placed; + boolean placed; /** * The location of the cannon. */ @Nullable - private final WorldPoint cannonLocation; + WorldPoint cannonLocation; /** * The cannon object. */ @Nullable - private final GameObject cannon; + GameObject cannon; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/ChatMessage.java b/runelite-api/src/main/java/net/runelite/api/events/ChatMessage.java index a29a674373..3c6230e6e9 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/ChatMessage.java +++ b/runelite-api/src/main/java/net/runelite/api/events/ChatMessage.java @@ -62,8 +62,8 @@ public class ChatMessage implements Event /** * The sender of the message. *

- * This field is only used for clan messages and refers to the - * current name of the clan chat the client is in. + * This field is only used for friends chat messages and refers to the + * current name of the friends chat the client is in. */ private String sender; /** diff --git a/runelite-api/src/main/java/net/runelite/api/events/CommandExecuted.java b/runelite-api/src/main/java/net/runelite/api/events/CommandExecuted.java index 025b874245..a66acb9d5c 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/CommandExecuted.java +++ b/runelite-api/src/main/java/net/runelite/api/events/CommandExecuted.java @@ -47,9 +47,9 @@ public class CommandExecuted implements Event /** * The name of the command entered. */ - private String command; + String command; /** * The command arguments that have been entered. */ - private String[] arguments; + String[] arguments; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/FakeXpDrop.java b/runelite-api/src/main/java/net/runelite/api/events/FakeXpDrop.java index 698805ab24..0aac13728f 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/FakeXpDrop.java +++ b/runelite-api/src/main/java/net/runelite/api/events/FakeXpDrop.java @@ -30,6 +30,6 @@ import net.runelite.api.Skill; @Value public class FakeXpDrop implements Event { - private final Skill skill; - private final int xp; + Skill skill; + int xp; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/FriendAdded.java b/runelite-api/src/main/java/net/runelite/api/events/FriendAdded.java index 47d577a132..c7c2160759 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/FriendAdded.java +++ b/runelite-api/src/main/java/net/runelite/api/events/FriendAdded.java @@ -11,5 +11,5 @@ public class FriendAdded implements Event /** * The name of the added friend. */ - private final String name; + String name; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/FriendRemoved.java b/runelite-api/src/main/java/net/runelite/api/events/FriendRemoved.java index abf3f021a3..13b1ecea21 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/FriendRemoved.java +++ b/runelite-api/src/main/java/net/runelite/api/events/FriendRemoved.java @@ -35,5 +35,5 @@ public class FriendRemoved implements Event /** * The name of the removed friend. */ - private final String name; + String name; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/ClanChanged.java b/runelite-api/src/main/java/net/runelite/api/events/FriendsChatChanged.java similarity index 88% rename from runelite-api/src/main/java/net/runelite/api/events/ClanChanged.java rename to runelite-api/src/main/java/net/runelite/api/events/FriendsChatChanged.java index e44c1aabb4..12c203769a 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/ClanChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/FriendsChatChanged.java @@ -27,13 +27,13 @@ package net.runelite.api.events; import lombok.Value; /** - * An event where the client has joined or left a clan chat. + * An event where the client has joined or left a friends chat. */ @Value -public class ClanChanged implements Event +public class FriendsChatChanged implements Event { /** - * Whether or not the client is now in a clan chat. + * Whether or not the client is now in a friends chat. */ - private boolean joined; + boolean joined; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/ClanMemberJoined.java b/runelite-api/src/main/java/net/runelite/api/events/FriendsChatMemberJoined.java similarity index 90% rename from runelite-api/src/main/java/net/runelite/api/events/ClanMemberJoined.java rename to runelite-api/src/main/java/net/runelite/api/events/FriendsChatMemberJoined.java index c2f99c52a0..7adbf159fe 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/ClanMemberJoined.java +++ b/runelite-api/src/main/java/net/runelite/api/events/FriendsChatMemberJoined.java @@ -24,14 +24,14 @@ */ package net.runelite.api.events; -import net.runelite.api.ClanMember; import lombok.Value; +import net.runelite.api.FriendsChatMember; @Value -public class ClanMemberJoined implements Event +public class FriendsChatMemberJoined implements Event { /** - * The ClanMember that joined + * The member that joined */ - private ClanMember member; + FriendsChatMember member; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/ClanMemberLeft.java b/runelite-api/src/main/java/net/runelite/api/events/FriendsChatMemberLeft.java similarity index 90% rename from runelite-api/src/main/java/net/runelite/api/events/ClanMemberLeft.java rename to runelite-api/src/main/java/net/runelite/api/events/FriendsChatMemberLeft.java index 68081b1e7d..49530eb870 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/ClanMemberLeft.java +++ b/runelite-api/src/main/java/net/runelite/api/events/FriendsChatMemberLeft.java @@ -24,14 +24,14 @@ */ package net.runelite.api.events; -import net.runelite.api.ClanMember; import lombok.Value; +import net.runelite.api.FriendsChatMember; @Value -public class ClanMemberLeft implements Event +public class FriendsChatMemberLeft implements Event { /** - * The ClanMember that left + * The member that left */ - private ClanMember member; + FriendsChatMember member; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/GraphicsObjectCreated.java b/runelite-api/src/main/java/net/runelite/api/events/GraphicsObjectCreated.java index 333e390592..b074e63d40 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/GraphicsObjectCreated.java +++ b/runelite-api/src/main/java/net/runelite/api/events/GraphicsObjectCreated.java @@ -36,5 +36,5 @@ public class GraphicsObjectCreated implements Event /** * The newly created graphics object. */ - private final GraphicsObject graphicsObject; + GraphicsObject graphicsObject; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/InteractingChanged.java b/runelite-api/src/main/java/net/runelite/api/events/InteractingChanged.java index 722e2251eb..a4f22a3583 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/InteractingChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/InteractingChanged.java @@ -9,10 +9,10 @@ import lombok.Value; @Value public class InteractingChanged implements Event { - private final Actor source; + Actor source; /** * Target actor, may be null */ - private final Actor target; + Actor target; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/ItemContainerChanged.java b/runelite-api/src/main/java/net/runelite/api/events/ItemContainerChanged.java index c9fed24aa9..82dc290dd0 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/ItemContainerChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/ItemContainerChanged.java @@ -44,10 +44,10 @@ public class ItemContainerChanged implements Event /** * The modified container's ID. */ - private final int containerId; + int containerId; /** * The modified item container. */ - private final ItemContainer itemContainer; + ItemContainer itemContainer; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/ItemDespawned.java b/runelite-api/src/main/java/net/runelite/api/events/ItemDespawned.java index cad55dd472..870a39f29f 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/ItemDespawned.java +++ b/runelite-api/src/main/java/net/runelite/api/events/ItemDespawned.java @@ -36,6 +36,6 @@ import lombok.Value; @Value public class ItemDespawned implements Event { - private final Tile tile; - private final TileItem item; + Tile tile; + TileItem item; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/ItemQuantityChanged.java b/runelite-api/src/main/java/net/runelite/api/events/ItemQuantityChanged.java index 0408bceb64..0e596b8397 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/ItemQuantityChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/ItemQuantityChanged.java @@ -35,8 +35,8 @@ import lombok.Value; @Value public class ItemQuantityChanged implements Event { - private final TileItem item; - private final Tile tile; - private final int oldQuantity; - private final int newQuantity; + TileItem item; + Tile tile; + int oldQuantity; + int newQuantity; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/ItemSpawned.java b/runelite-api/src/main/java/net/runelite/api/events/ItemSpawned.java index 28314d4afd..9daa54077d 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/ItemSpawned.java +++ b/runelite-api/src/main/java/net/runelite/api/events/ItemSpawned.java @@ -36,6 +36,6 @@ import lombok.Value; @Value public class ItemSpawned implements Event { - private final Tile tile; - private final TileItem item; + Tile tile; + TileItem item; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/NameableNameChanged.java b/runelite-api/src/main/java/net/runelite/api/events/NameableNameChanged.java index 111b050733..fcf0556e71 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/NameableNameChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/NameableNameChanged.java @@ -36,5 +36,5 @@ public class NameableNameChanged implements Event /** * The nameable that changed names. */ - private final Nameable nameable; + Nameable nameable; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/NpcDefinitionChanged.java b/runelite-api/src/main/java/net/runelite/api/events/NpcDefinitionChanged.java index 40c68f5621..5b443d60d4 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/NpcDefinitionChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/NpcDefinitionChanged.java @@ -36,5 +36,5 @@ public class NpcDefinitionChanged implements Event /** * The NPC of which the composition changed. */ - private final NPC npc; + NPC npc; } \ No newline at end of file diff --git a/runelite-api/src/main/java/net/runelite/api/events/NpcDespawned.java b/runelite-api/src/main/java/net/runelite/api/events/NpcDespawned.java index 225141fc89..6b7bd48b29 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/NpcDespawned.java +++ b/runelite-api/src/main/java/net/runelite/api/events/NpcDespawned.java @@ -37,7 +37,7 @@ public class NpcDespawned implements Event /** * The despawned NPC. */ - private final NPC npc; + NPC npc; public Actor getActor() { diff --git a/runelite-api/src/main/java/net/runelite/api/events/NpcSpawned.java b/runelite-api/src/main/java/net/runelite/api/events/NpcSpawned.java index 6120968c4c..0bb3c3f3cb 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/NpcSpawned.java +++ b/runelite-api/src/main/java/net/runelite/api/events/NpcSpawned.java @@ -37,7 +37,7 @@ public class NpcSpawned implements Event /** * The spawned NPC. */ - private final NPC npc; + NPC npc; public Actor getActor() { diff --git a/runelite-api/src/main/java/net/runelite/api/events/OverheadTextChanged.java b/runelite-api/src/main/java/net/runelite/api/events/OverheadTextChanged.java index 0ebbc4f21e..78df69b9de 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/OverheadTextChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/OverheadTextChanged.java @@ -6,7 +6,7 @@ import lombok.Value; @Value public class OverheadTextChanged implements Event { - private final Actor actor; + Actor actor; - private final String overheadText; + String overheadText; } \ No newline at end of file diff --git a/runelite-api/src/main/java/net/runelite/api/events/PlayerAppearanceChanged.java b/runelite-api/src/main/java/net/runelite/api/events/PlayerAppearanceChanged.java index 501b5664a2..9a597ab207 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/PlayerAppearanceChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/PlayerAppearanceChanged.java @@ -9,5 +9,5 @@ import net.runelite.api.Player; @Value public class PlayerAppearanceChanged implements Event { - private Player player; + Player player; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/PlayerDeath.java b/runelite-api/src/main/java/net/runelite/api/events/PlayerDeath.java index 96d7b6dd31..80dae32f01 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/PlayerDeath.java +++ b/runelite-api/src/main/java/net/runelite/api/events/PlayerDeath.java @@ -33,5 +33,5 @@ import net.runelite.api.Player; @Value public class PlayerDeath implements Event { - private final Player player; + Player player; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/PlayerDespawned.java b/runelite-api/src/main/java/net/runelite/api/events/PlayerDespawned.java index 025c362d1a..0970c08e9b 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/PlayerDespawned.java +++ b/runelite-api/src/main/java/net/runelite/api/events/PlayerDespawned.java @@ -39,7 +39,7 @@ public class PlayerDespawned implements Event /** * The despawned player. */ - private final Player player; + Player player; public Actor getActor() { diff --git a/runelite-api/src/main/java/net/runelite/api/events/PlayerSpawned.java b/runelite-api/src/main/java/net/runelite/api/events/PlayerSpawned.java index 7b836754f5..9ba53bbc4f 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/PlayerSpawned.java +++ b/runelite-api/src/main/java/net/runelite/api/events/PlayerSpawned.java @@ -37,7 +37,7 @@ public class PlayerSpawned implements Event /** * The spawned player. */ - private final Player player; + Player player; public Actor getActor() { diff --git a/runelite-api/src/main/java/net/runelite/api/events/ScriptPostFired.java b/runelite-api/src/main/java/net/runelite/api/events/ScriptPostFired.java index c9264e0c11..75677640c1 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/ScriptPostFired.java +++ b/runelite-api/src/main/java/net/runelite/api/events/ScriptPostFired.java @@ -35,5 +35,5 @@ public class ScriptPostFired implements Event /** * The script id of the invoked script */ - private final int scriptId; + int scriptId; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/StatChanged.java b/runelite-api/src/main/java/net/runelite/api/events/StatChanged.java index afdd562f64..b329e9dbbc 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/StatChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/StatChanged.java @@ -33,8 +33,8 @@ import net.runelite.api.Skill; @Value public class StatChanged implements Event { - private final Skill skill; - private final int xp; - private final int level; - private final int boostedLevel; + Skill skill; + int xp; + int level; + int boostedLevel; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/VarClientIntChanged.java b/runelite-api/src/main/java/net/runelite/api/events/VarClientIntChanged.java index 238431d512..adc2be50e1 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/VarClientIntChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/VarClientIntChanged.java @@ -34,5 +34,5 @@ import lombok.Value; @Value public class VarClientIntChanged implements Event { - private int index; + int index; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/VarClientStrChanged.java b/runelite-api/src/main/java/net/runelite/api/events/VarClientStrChanged.java index c483a29584..c63e088470 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/VarClientStrChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/VarClientStrChanged.java @@ -34,5 +34,5 @@ import lombok.Value; @Value public class VarClientStrChanged implements Event { - private int index; + int index; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/VolumeChanged.java b/runelite-api/src/main/java/net/runelite/api/events/VolumeChanged.java index d5aa7da10e..38701712c3 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/VolumeChanged.java +++ b/runelite-api/src/main/java/net/runelite/api/events/VolumeChanged.java @@ -37,5 +37,5 @@ public class VolumeChanged implements Event AREA } - private final Type type; + Type type; } \ No newline at end of file diff --git a/runelite-api/src/main/java/net/runelite/api/events/WorldListLoad.java b/runelite-api/src/main/java/net/runelite/api/events/WorldListLoad.java index 9484e5193f..ab0d05e5c1 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/WorldListLoad.java +++ b/runelite-api/src/main/java/net/runelite/api/events/WorldListLoad.java @@ -33,5 +33,5 @@ import lombok.Value; @Value public class WorldListLoad implements Event { - private final World[] worlds; + World[] worlds; } 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 e0bd3e8792..262a38cd7b 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 @@ -61,7 +61,7 @@ public class WidgetID public static final int PEST_CONTROL_GROUP_ID = 408; public static final int PEST_CONTROL_EXCHANGE_WINDOW_GROUP_ID = 243; public static final int DIALOG_MINIGAME_GROUP_ID = 229; - public static final int CLAN_CHAT_GROUP_ID = 7; + public static final int FRIENDS_CHAT_GROUP_ID = 7; public static final int MINIMAP_GROUP_ID = 160; public static final int LOGIN_CLICK_TO_PLAY_GROUP_ID = 378; public static final int CLUE_SCROLL_GROUP_ID = 203; @@ -300,7 +300,7 @@ public class WidgetID static final int PREVIOUS_NAME_HOLDER = 16; } - static class ClanChat + static class FriendsChat { static final int TITLE = 1; static final int NAME = 4; @@ -469,14 +469,14 @@ public class WidgetID static final int MINIMAP_DRAW_AREA = 8; static final int MULTICOMBAT_INDICATOR = 21; static final int BANK_PIN = 22; - static final int CLAN_CHAT_TAB = 33; + static final int FRIENDS_CHAT_TAB = 33; static final int FRIENDS_TAB = 35; static final int IGNORES_TAB = 34; static final int LOGOUT_TAB = 36; static final int OPTIONS_TAB = 37; static final int EMOTES_TAB = 38; static final int MUSIC_TAB = 39; - static final int CLAN_CHAT_ICON = 40; + static final int FRIENDS_CHAT_ICON = 40; static final int FRIENDS_ICON = 42; static final int IGNORES_ICON = 41; static final int LOGOUT_ICON = 43; @@ -508,14 +508,14 @@ public class WidgetID static final int ITEMS_KEPT_ON_DEATH = 13; static final int BANK_PIN = 13; static final int MULTICOMBAT_INDICATOR = 17; - static final int CLAN_CHAT_TAB = 37; + static final int FRIENDS_CHAT_TAB = 37; static final int FRIENDS_TAB = 39; static final int IGNORES_TAB = 38; static final int LOGOUT_TAB = 40; static final int OPTIONS_TAB = 41; static final int EMOTES_TAB = 42; static final int MUSIC_TAB = 43; - static final int CLAN_CHAT_ICON = 44; + static final int FRIENDS_CHAT_ICON = 44; static final int FRIENDS_ICON = 46; static final int IGNORES_ICON = 45; static final int LOGOUT_ICON = 47; 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 cd1bef47e7..31d2934203 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 @@ -46,7 +46,7 @@ public enum WidgetInfo INVENTORY(WidgetID.INVENTORY_GROUP_ID, 0), FRIENDS_LIST(WidgetID.FRIENDS_LIST_GROUP_ID, 0), IGNORE_LIST(WidgetID.IGNORE_LIST_GROUP_ID, 0), - CLAN_CHAT(WidgetID.CLAN_CHAT_GROUP_ID, 0), + FRIENDS_CHAT(WidgetID.FRIENDS_CHAT_GROUP_ID, 0), RAIDING_PARTY(WidgetID.RAIDING_PARTY_GROUP_ID, 0), WORLD_MAP_VIEW(WidgetID.WORLD_MAP_GROUP_ID, WidgetID.WorldMap.MAPVIEW), @@ -144,10 +144,10 @@ public enum WidgetInfo EXPLORERS_RING_ALCH_INVENTORY(WidgetID.EXPLORERS_RING_ALCH_GROUP_ID, WidgetID.ExplorersRing.INVENTORY), - CLAN_CHAT_TITLE(WidgetID.CLAN_CHAT_GROUP_ID, WidgetID.ClanChat.TITLE), - CLAN_CHAT_NAME(WidgetID.CLAN_CHAT_GROUP_ID, WidgetID.ClanChat.NAME), - CLAN_CHAT_OWNER(WidgetID.CLAN_CHAT_GROUP_ID, WidgetID.ClanChat.OWNER), - CLAN_CHAT_LIST(WidgetID.CLAN_CHAT_GROUP_ID, WidgetID.ClanChat.LIST), + FRIENDS_CHAT_TITLE(WidgetID.FRIENDS_CHAT_GROUP_ID, WidgetID.FriendsChat.TITLE), + FRIENDS_CHAT_NAME(WidgetID.FRIENDS_CHAT_GROUP_ID, WidgetID.FriendsChat.NAME), + FRIENDS_CHAT_OWNER(WidgetID.FRIENDS_CHAT_GROUP_ID, WidgetID.FriendsChat.OWNER), + FRIENDS_CHAT_LIST(WidgetID.FRIENDS_CHAT_GROUP_ID, WidgetID.FriendsChat.LIST), BANK_CONTAINER(WidgetID.BANK_GROUP_ID, WidgetID.Bank.BANK_CONTAINER), BANK_SEARCH_BUTTON_BACKGROUND(WidgetID.BANK_GROUP_ID, WidgetID.Bank.SEARCH_BUTTON_BACKGROUND), @@ -246,7 +246,7 @@ public enum WidgetInfo FIXED_VIEWPORT_EQUIPMENT_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.EQUIPMENT_TAB), FIXED_VIEWPORT_PRAYER_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.PRAYER_TAB), FIXED_VIEWPORT_MAGIC_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.MAGIC_TAB), - FIXED_VIEWPORT_CLAN_CHAT_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.CLAN_CHAT_TAB), + FIXED_VIEWPORT_FRIENDS_CHAT_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.FRIENDS_CHAT_TAB), FIXED_VIEWPORT_FRIENDS_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.FRIENDS_TAB), FIXED_VIEWPORT_IGNORES_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.IGNORES_TAB), FIXED_VIEWPORT_LOGOUT_TAB(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.LOGOUT_TAB), @@ -260,7 +260,7 @@ public enum WidgetInfo FIXED_VIEWPORT_EQUIPMENT_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.EQUIPMENT_ICON), FIXED_VIEWPORT_PRAYER_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.PRAYER_ICON), FIXED_VIEWPORT_MAGIC_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.MAGIC_ICON), - FIXED_VIEWPORT_CLAN_CHAT_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.CLAN_CHAT_ICON), + FIXED_VIEWPORT_FRIENDS_CHAT_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.FRIENDS_CHAT_ICON), FIXED_VIEWPORT_FRIENDS_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.FRIENDS_ICON), FIXED_VIEWPORT_IGNORES_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.IGNORES_ICON), FIXED_VIEWPORT_LOGOUT_ICON(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.LOGOUT_ICON), @@ -291,7 +291,7 @@ public enum WidgetInfo RESIZABLE_VIEWPORT_EQUIPMENT_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.EQUIPMENT_TAB), RESIZABLE_VIEWPORT_PRAYER_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.PRAYER_TAB), RESIZABLE_VIEWPORT_MAGIC_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.MAGIC_TAB), - RESIZABLE_VIEWPORT_CLAN_CHAT_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.CLAN_CHAT_TAB), + RESIZABLE_VIEWPORT_FRIENDS_CHAT_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.FRIENDS_CHAT_TAB), RESIZABLE_VIEWPORT_FRIENDS_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.FRIENDS_TAB), RESIZABLE_VIEWPORT_IGNORES_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.IGNORES_TAB), RESIZABLE_VIEWPORT_LOGOUT_TAB(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.LOGOUT_TAB), @@ -305,7 +305,7 @@ public enum WidgetInfo RESIZABLE_VIEWPORT_EQUIPMENT_ICON(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.EQUIPMENT_ICON), RESIZABLE_VIEWPORT_PRAYER_ICON(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.PRAYER_ICON), RESIZABLE_VIEWPORT_MAGIC_ICON(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.MAGIC_ICON), - RESIZABLE_VIEWPORT_CLAN_CHAT_ICON(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.CLAN_CHAT_ICON), + RESIZABLE_VIEWPORT_FRIENDS_CHAT_ICON(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.FRIENDS_CHAT_ICON), RESIZABLE_VIEWPORT_FRIENDS_ICON(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.FRIENDS_ICON), RESIZABLE_VIEWPORT_IGNORES_ICON(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.IGNORES_ICON), RESIZABLE_VIEWPORT_LOGOUT_ICON(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.LOGOUT_ICON), diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index 48598c0667..f896697eb8 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -74,7 +74,7 @@ import net.runelite.client.config.OpenOSRSConfig; import net.runelite.client.discord.DiscordService; import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.ExternalPluginsLoaded; -import net.runelite.client.game.ClanManager; +import net.runelite.client.game.FriendChatManager; import net.runelite.client.game.ItemManager; import net.runelite.client.game.LootManager; import net.runelite.client.game.PlayerManager; @@ -167,7 +167,7 @@ public class RuneLite private Provider overlayRenderer; @Inject - private Provider clanManager; + private Provider friendChatManager; @Inject private Provider chatMessageManager; @@ -237,6 +237,7 @@ public class RuneLite final OptionParser parser = new OptionParser(); parser.accepts("developer-mode", "Enable developer tools"); parser.accepts("debug", "Show extra debugging output"); + parser.accepts("safe-mode", "Disables external plugins and the GPU plugin"); parser.accepts("no-splash", "Do not show the splash screen"); final ArgumentAcceptingOptionSpec proxyInfo = parser .accepts("proxy") @@ -392,10 +393,15 @@ public class RuneLite PROFILES_DIR.mkdirs(); + log.info("OpenOSRS {} Runelite {} (launcher version {}) starting up, args: {}", + RuneLiteProperties.getPlusVersion(), RuneLiteProperties.getVersion(), RuneLiteProperties.getLauncherVersion() == null ? "unknown" : RuneLiteProperties.getLauncherVersion(), + args.length == 0 ? "none" : String.join(" ", args)); + final long start = System.currentTimeMillis(); injector = Guice.createInjector(new RuneLiteModule( clientLoader, + options.has("safe-mode"), options.valueOf(configfile))); injector.getInstance(RuneLite.class).start(); @@ -480,7 +486,7 @@ public class RuneLite chatMessageManager.get().loadColors(); overlayRenderer.get(); - clanManager.get(); + friendChatManager.get(); itemManager.get(); menuManager.get(); chatMessageManager.get(); @@ -490,6 +496,7 @@ public class RuneLite playerManager.get(); chatboxPanelManager.get(); partyService.get(); + infoBoxOverlay.get(); eventBus.subscribe(GameStateChanged.class, this, hooks::onGameStateChanged); eventBus.subscribe(ScriptCallbackEvent.class, this, hooks::onScriptCallbackEvent); diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java b/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java index 62e20be0d7..b7ea65f9a5 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLiteModule.java @@ -39,6 +39,7 @@ import java.util.concurrent.TimeUnit; import java.util.function.Supplier; import javax.annotation.Nullable; import javax.inject.Singleton; +import lombok.AllArgsConstructor; import net.runelite.api.Client; import net.runelite.api.hooks.Callbacks; import net.runelite.client.account.SessionManager; @@ -63,22 +64,19 @@ import okhttp3.OkHttpClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@AllArgsConstructor public class RuneLiteModule extends AbstractModule { private static final int MAX_OKHTTP_CACHE_SIZE = 20 * 1024 * 1024; // 20mb private final Supplier clientLoader; + private final boolean safeMode; private final File config; - public RuneLiteModule(final Supplier clientLoader, File config) - { - this.clientLoader = clientLoader; - this.config = config; - } - @Override protected void configure() { + bindConstant().annotatedWith(Names.named("safeMode")).to(safeMode); bind(File.class).annotatedWith(Names.named("config")).toInstance(config); bind(OkHttpClient.class).toInstance(RuneLiteAPI.CLIENT.newBuilder() .cache(new Cache(new File(RuneLite.CACHE_DIR, "okhttp"), MAX_OKHTTP_CACHE_SIZE)) diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java index e036777272..a2d6a9737f 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java @@ -128,7 +128,7 @@ public class ChatCommandManager String message = chatboxInput.getValue(); if (message.startsWith("/")) { - message = message.substring(1); // clan chat input + message = message.substring(1); // friends chat input } onInput(chatboxInput, message); diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java index 44b2004770..655388e959 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java @@ -140,11 +140,11 @@ public class ChatMessageManager break; } case FRIENDSCHAT: - usernameColor = isChatboxTransparent ? chatColorConfig.transparentClanUsernames() : chatColorConfig.opaqueClanUsernames(); + usernameColor = isChatboxTransparent ? chatColorConfig.transparentFriendsChatUsernames() : chatColorConfig.opaqueFriendsChatUsernames(); break; } - senderColor = isChatboxTransparent ? chatColorConfig.transparentClanChannelName() : chatColorConfig.opaqueClanChannelName(); + senderColor = isChatboxTransparent ? chatColorConfig.transparentFriendsChatChannelName() : chatColorConfig.opaqueFriendsChatChannelName(); if (usernameColor != null) { @@ -218,7 +218,7 @@ public class ChatMessageManager case PRIVATECHAT: return JagexColors.CHAT_PRIVATE_MESSAGE_TEXT_OPAQUE_BACKGROUND; case FRIENDSCHAT: - return JagexColors.CHAT_CLAN_TEXT_OPAQUE_BACKGROUND; + return JagexColors.CHAT_FC_TEXT_OPAQUE_BACKGROUND; case ITEM_EXAMINE: case OBJECT_EXAMINE: case NPC_EXAMINE: @@ -238,7 +238,7 @@ public class ChatMessageManager case PRIVATECHAT: return JagexColors.CHAT_PRIVATE_MESSAGE_TEXT_TRANSPARENT_BACKGROUND; case FRIENDSCHAT: - return JagexColors.CHAT_CLAN_TEXT_TRANSPARENT_BACKGROUND; + return JagexColors.CHAT_FC_TEXT_TRANSPARENT_BACKGROUND; case ITEM_EXAMINE: case OBJECT_EXAMINE: case NPC_EXAMINE: @@ -311,24 +311,24 @@ public class ChatMessageManager cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaquePrivateMessageReceivedHighlight(), false), ChatMessageType.MODPRIVATECHAT); } - if (chatColorConfig.opaqueClanChatInfo() != null) + if (chatColorConfig.opaqueFriendsChatInfo() != null) { - cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.opaqueClanChatInfo(), false), + cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.opaqueFriendsChatInfo(), false), ChatMessageType.FRIENDSCHATNOTIFICATION); } - if (chatColorConfig.opaqueClanChatInfoHighlight() != null) + if (chatColorConfig.opaqueFriendsChatInfoHighlight() != null) { - cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaqueClanChatInfoHighlight(), false), + cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaqueFriendsChatInfoHighlight(), false), ChatMessageType.FRIENDSCHATNOTIFICATION); } - if (chatColorConfig.opaqueClanChatMessage() != null) + if (chatColorConfig.opaqueFriendsChatMessage() != null) { - cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.opaqueClanChatMessage(), false), + cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.opaqueFriendsChatMessage(), false), ChatMessageType.FRIENDSCHAT); } - if (chatColorConfig.opaqueClanChatMessageHighlight() != null) + if (chatColorConfig.opaqueFriendsChatMessageHighlight() != null) { - cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaqueClanChatMessageHighlight(), false), + cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.opaqueFriendsChatMessageHighlight(), false), ChatMessageType.FRIENDSCHAT); } if (chatColorConfig.opaqueAutochatMessage() != null) @@ -444,24 +444,24 @@ public class ChatMessageManager cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentPrivateMessageReceivedHighlight(), true), ChatMessageType.MODPRIVATECHAT); } - if (chatColorConfig.transparentClanChatInfo() != null) + if (chatColorConfig.transparentFriendsChatInfo() != null) { - cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentClanChatInfo(), true), + cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentFriendsChatInfo(), true), ChatMessageType.FRIENDSCHATNOTIFICATION); } - if (chatColorConfig.transparentClanChatInfoHighlight() != null) + if (chatColorConfig.transparentFriendsChatInfoHighlight() != null) { - cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentClanChatInfoHighlight(), true), + cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentFriendsChatInfoHighlight(), true), ChatMessageType.FRIENDSCHATNOTIFICATION); } - if (chatColorConfig.transparentClanChatMessage() != null) + if (chatColorConfig.transparentFriendsChatMessage() != null) { - cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentClanChatMessage(), true), + cacheColor(new ChatColor(ChatColorType.NORMAL, chatColorConfig.transparentFriendsChatMessage(), true), ChatMessageType.FRIENDSCHAT); } - if (chatColorConfig.transparentClanChatMessageHighlight() != null) + if (chatColorConfig.transparentFriendsChatMessageHighlight() != null) { - cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentClanChatMessageHighlight(), true), + cacheColor(new ChatColor(ChatColorType.HIGHLIGHT, chatColorConfig.transparentFriendsChatMessageHighlight(), true), ChatMessageType.FRIENDSCHAT); } if (chatColorConfig.transparentAutochatMessage() != null) diff --git a/runelite-client/src/main/java/net/runelite/client/config/ChatColorConfig.java b/runelite-client/src/main/java/net/runelite/client/config/ChatColorConfig.java index b93695f5c3..68b0ceabbf 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ChatColorConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ChatColorConfig.java @@ -118,11 +118,11 @@ public interface ChatColorConfig extends Config @ConfigItem( position = 7, keyName = "opaqueClanChatInfo", - name = "Clan chat info", - description = "Clan Chat Information (eg. when joining a channel)", + name = "Friends chat info", + description = "Friends Chat Information (eg. when joining a channel)", titleSection = "opaqueTitle" ) - default Color opaqueClanChatInfo() + default Color opaqueFriendsChatInfo() { return JagexColors.CHAT_GAME_EXAMINE_TEXT_OPAQUE_BACKGROUND; } @@ -130,11 +130,11 @@ public interface ChatColorConfig extends Config @ConfigItem( position = 8, keyName = "opaqueClanChatInfoHighlight", - name = "Clan chat info highlight", - description = "Clan Chat Information highlight (used for the Raids plugin)", + name = "Friends chat info highlight", + description = "Friends Chat Information highlight (used for the Raids plugin)", titleSection = "opaqueTitle" ) - default Color opaqueClanChatInfoHighlight() + default Color opaqueFriendsChatInfoHighlight() { return Color.RED; } @@ -142,20 +142,20 @@ public interface ChatColorConfig extends Config @ConfigItem( position = 9, keyName = "opaqueClanChatMessage", - name = "Clan chat message", - description = "Color of Clan Chat Messages", + name = "Friends chat message", + description = "Color of Friends chat messages", titleSection = "opaqueTitle" ) - Color opaqueClanChatMessage(); + Color opaqueFriendsChatMessage(); @ConfigItem( position = 10, keyName = "opaqueClanChatMessageHighlight", - name = "Clan chat message highlight", - description = "Color of highlights in Clan Chat Messages", + name = "Friends chat message highlight", + description = "Color of highlights in Friends Chat messages", titleSection = "opaqueTitle" ) - default Color opaqueClanChatMessageHighlight() + default Color opaqueFriendsChatMessageHighlight() { return Color.decode("#000000"); } @@ -295,20 +295,20 @@ public interface ChatColorConfig extends Config @ConfigItem( position = 25, keyName = "opaqueClanChannelName", - name = "Clan channel name", - description = "Color of Clan Channel Name", + name = "Friends chat channel name", + description = "Color of Friends chat channel name", titleSection = "opaqueTitle" ) - Color opaqueClanChannelName(); + Color opaqueFriendsChatChannelName(); @ConfigItem( position = 26, keyName = "opaqueClanUsernames", - name = "Clan usernames", - description = "Color of Usernames in Clan Chat", + name = "Friends chat usernames", + description = "Color of usernames in Friends chat", titleSection = "opaqueTitle" ) - Color opaqueClanUsernames(); + Color opaqueFriendsChatUsernames(); @ConfigItem( position = 27, @@ -385,11 +385,11 @@ public interface ChatColorConfig extends Config @ConfigItem( position = 57, keyName = "transparentClanChatInfo", - name = "Clan chat info (transparent)", - description = "Clan Chat Information (eg. when joining a channel) (transparent)", + name = "Friends chat info (transparent)", + description = "Friends chat information (eg. when joining a channel) (transparent)", titleSection = "transparentTitle" ) - default Color transparentClanChatInfo() + default Color transparentFriendsChatInfo() { return JagexColors.CHAT_GAME_EXAMINE_TEXT_TRANSPARENT_BACKGROUND; } @@ -397,11 +397,11 @@ public interface ChatColorConfig extends Config @ConfigItem( position = 58, keyName = "transparentClanChatInfoHighlight", - name = "Clan chat info highlight (transparent)", - description = "Clan Chat Information highlight (used for the Raids plugin) (transparent)", + name = "Friends chat info highlight (transparent)", + description = "Friends chat information highlight (used for the Raids plugin) (transparent)", titleSection = "transparentTitle" ) - default Color transparentClanChatInfoHighlight() + default Color transparentFriendsChatInfoHighlight() { return Color.RED; } @@ -409,20 +409,20 @@ public interface ChatColorConfig extends Config @ConfigItem( position = 59, keyName = "transparentClanChatMessage", - name = "Clan chat message (transparent)", - description = "Color of Clan Chat Messages (transparent)", + name = "Friends chat message (transparent)", + description = "Color of Friends chat messages (transparent)", titleSection = "transparentTitle" ) - Color transparentClanChatMessage(); + Color transparentFriendsChatMessage(); @ConfigItem( position = 60, keyName = "transparentClanChatMessageHighlight", - name = "Clan chat message highlight (transparent)", - description = "Color of highlights in Clan Chat Messages (transparent)", + name = "Friends chat message highlight (transparent)", + description = "Color of highlights in Friends chat messages (transparent)", titleSection = "transparentTitle" ) - default Color transparentClanChatMessageHighlight() + default Color transparentFriendsChatMessageHighlight() { return Color.decode("#FFFFFF"); } @@ -562,20 +562,20 @@ public interface ChatColorConfig extends Config @ConfigItem( position = 75, keyName = "transparentClanChannelName", - name = "Clan channel name (transparent)", - description = "Color of Clan Channel Name (transparent)", + name = "Friends chat channel name (transparent)", + description = "Color of Friends chat channel name (transparent)", titleSection = "transparentTitle" ) - Color transparentClanChannelName(); + Color transparentFriendsChatChannelName(); @ConfigItem( position = 76, keyName = "transparentClanUsernames", - name = "Clan usernames (transparent)", - description = "Color of Usernames in Clan Chat (transparent)", + name = "Friends chat usernames (transparent)", + description = "Color of usernames in Friends chat (transparent)", titleSection = "transparentTitle" ) - Color transparentClanUsernames(); + Color transparentFriendsChatUsernames(); @ConfigItem( position = 77, diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java index e3adf0fb71..6aefcefda6 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java @@ -40,7 +40,7 @@ class ConfigInvocationHandler implements InvocationHandler private final ConfigManager manager; private final Cache cache = CacheBuilder.newBuilder() - .maximumSize(128) + .maximumSize(256) .build(); ConfigInvocationHandler(ConfigManager manager) diff --git a/runelite-client/src/main/java/net/runelite/client/events/AttackStyleChanged.java b/runelite-client/src/main/java/net/runelite/client/events/AttackStyleChanged.java index 59aad57147..98735a7cbf 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/AttackStyleChanged.java +++ b/runelite-client/src/main/java/net/runelite/client/events/AttackStyleChanged.java @@ -16,19 +16,19 @@ public class AttackStyleChanged implements Event /** * The player that changed styles. */ - private final Player player; + Player player; /** * Can be Unknown(nullable) * * @see net.runelite.client.game.AttackStyle */ - private final AttackStyle oldStyle; + AttackStyle oldStyle; /** * Can be Unknown(nullable) * * @see net.runelite.client.game.AttackStyle */ - private final AttackStyle newStyle; + AttackStyle newStyle; } diff --git a/runelite-client/src/main/java/net/runelite/client/events/ClientShutdown.java b/runelite-client/src/main/java/net/runelite/client/events/ClientShutdown.java index 57b3fac470..1597833b32 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/ClientShutdown.java +++ b/runelite-client/src/main/java/net/runelite/client/events/ClientShutdown.java @@ -37,7 +37,7 @@ import net.runelite.api.events.Event; @Slf4j public class ClientShutdown implements Event { - private Queue> tasks = new ConcurrentLinkedQueue<>(); + Queue> tasks = new ConcurrentLinkedQueue<>(); public void waitFor(Future future) { diff --git a/runelite-client/src/main/java/net/runelite/client/events/InfoBoxMenuClicked.java b/runelite-client/src/main/java/net/runelite/client/events/InfoBoxMenuClicked.java new file mode 100644 index 0000000000..21cc9a6883 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/events/InfoBoxMenuClicked.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2020, 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.events; + +import lombok.Value; +import net.runelite.api.events.Event; +import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.infobox.InfoBox; + +@Value +public class InfoBoxMenuClicked implements Event +{ + OverlayMenuEntry entry; + InfoBox infoBox; +} diff --git a/runelite-client/src/main/java/net/runelite/client/events/NavigationButtonAdded.java b/runelite-client/src/main/java/net/runelite/client/events/NavigationButtonAdded.java index c1d2b728f5..a5a775cfc0 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/NavigationButtonAdded.java +++ b/runelite-client/src/main/java/net/runelite/client/events/NavigationButtonAdded.java @@ -31,5 +31,5 @@ import net.runelite.client.ui.NavigationButton; @Value public class NavigationButtonAdded implements Event { - private NavigationButton button; + NavigationButton button; } diff --git a/runelite-client/src/main/java/net/runelite/client/events/NavigationButtonRemoved.java b/runelite-client/src/main/java/net/runelite/client/events/NavigationButtonRemoved.java index 422bcf8350..87dabb7363 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/NavigationButtonRemoved.java +++ b/runelite-client/src/main/java/net/runelite/client/events/NavigationButtonRemoved.java @@ -31,5 +31,5 @@ import net.runelite.client.ui.NavigationButton; @Value public class NavigationButtonRemoved implements Event { - private NavigationButton button; + NavigationButton button; } diff --git a/runelite-client/src/main/java/net/runelite/client/events/NotificationFired.java b/runelite-client/src/main/java/net/runelite/client/events/NotificationFired.java index 7508416562..77be29a54b 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/NotificationFired.java +++ b/runelite-client/src/main/java/net/runelite/client/events/NotificationFired.java @@ -31,6 +31,6 @@ import net.runelite.api.events.Event; @Value public class NotificationFired implements Event { - final String message; - final TrayIcon.MessageType type; + String message; + TrayIcon.MessageType type; } diff --git a/runelite-client/src/main/java/net/runelite/client/events/NpcLootReceived.java b/runelite-client/src/main/java/net/runelite/client/events/NpcLootReceived.java index ef0702974d..e2d77ac782 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/NpcLootReceived.java +++ b/runelite-client/src/main/java/net/runelite/client/events/NpcLootReceived.java @@ -33,6 +33,6 @@ import net.runelite.client.game.ItemStack; @Value public class NpcLootReceived implements Event { - private final NPC npc; - private final Collection items; + NPC npc; + Collection items; } diff --git a/runelite-client/src/main/java/net/runelite/client/events/OverlayMenuClicked.java b/runelite-client/src/main/java/net/runelite/client/events/OverlayMenuClicked.java index b1c0d11494..9986fac8bd 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/OverlayMenuClicked.java +++ b/runelite-client/src/main/java/net/runelite/client/events/OverlayMenuClicked.java @@ -39,4 +39,4 @@ public class OverlayMenuClicked implements Event { private OverlayMenuEntry entry; private Overlay overlay; -} +} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/events/PartyChanged.java b/runelite-client/src/main/java/net/runelite/client/events/PartyChanged.java index 72490a7e0c..549337f6e1 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/PartyChanged.java +++ b/runelite-client/src/main/java/net/runelite/client/events/PartyChanged.java @@ -31,5 +31,5 @@ import net.runelite.api.events.Event; @Value public class PartyChanged implements Event { - private final UUID partyId; + UUID partyId; } diff --git a/runelite-client/src/main/java/net/runelite/client/events/PlayerLootReceived.java b/runelite-client/src/main/java/net/runelite/client/events/PlayerLootReceived.java index c1891d664d..ec611d4be8 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/PlayerLootReceived.java +++ b/runelite-client/src/main/java/net/runelite/client/events/PlayerLootReceived.java @@ -33,6 +33,6 @@ import net.runelite.client.game.ItemStack; @Value public class PlayerLootReceived implements Event { - private final Player player; - private final Collection items; + Player player; + Collection items; } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/events/WorldsFetch.java b/runelite-client/src/main/java/net/runelite/client/events/WorldsFetch.java index 47f6cc99f7..aa74ab9ee6 100644 --- a/runelite-client/src/main/java/net/runelite/client/events/WorldsFetch.java +++ b/runelite-client/src/main/java/net/runelite/client/events/WorldsFetch.java @@ -34,5 +34,5 @@ import net.runelite.http.api.worlds.WorldResult; @Value public class WorldsFetch implements Event { - private final WorldResult worldResult; + WorldResult worldResult; } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/game/FishingSpot.java b/runelite-client/src/main/java/net/runelite/client/game/FishingSpot.java index 0a6437efb9..14d7b96316 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/FishingSpot.java +++ b/runelite-client/src/main/java/net/runelite/client/game/FishingSpot.java @@ -171,13 +171,13 @@ public enum FishingSpot MINNOW("Minnow", ItemID.MINNOW, FISHING_SPOT_7730, FISHING_SPOT_7731, FISHING_SPOT_7732, FISHING_SPOT_7733 ), - INFERNAL_EEL("Infernal Eel", "Leaping sturgeon", ItemID.INFERNAL_EEL, + INFERNAL_EEL("Infernal Eel", ItemID.INFERNAL_EEL, ROD_FISHING_SPOT_7676 ), - KARAMBWAN("Karambwan", "Karambwanji", ItemID.RAW_KARAMBWAN, + KARAMBWAN("Karambwan", ItemID.RAW_KARAMBWAN, FISHING_SPOT_4712, FISHING_SPOT_4713 ), - KARAMBWANJI("Karambwanji, Shrimp", ItemID.KARAMBWANJI, + KARAMBWANJI("Karambwanji, Shrimp", "Karambwanji", ItemID.KARAMBWANJI, FISHING_SPOT_4710 ), SACRED_EEL("Sacred eel", ItemID.SACRED_EEL, diff --git a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java b/runelite-client/src/main/java/net/runelite/client/game/FriendChatManager.java similarity index 53% rename from runelite-client/src/main/java/net/runelite/client/game/ClanManager.java rename to runelite-client/src/main/java/net/runelite/client/game/FriendChatManager.java index 9e15e3dcc7..53e59422ec 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/FriendChatManager.java @@ -36,118 +36,115 @@ 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.FriendsChatManager; +import net.runelite.api.FriendsChatMember; +import net.runelite.api.FriendsChatRank; import net.runelite.api.GameState; import net.runelite.api.IndexedSprite; import net.runelite.api.SpriteID; -import net.runelite.api.events.ClanChanged; +import net.runelite.api.events.FriendsChatChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.util.Text; import net.runelite.client.eventbus.EventBus; import net.runelite.client.util.ImageUtil; @Singleton -public class ClanManager +public class FriendChatManager { - private static final int[] CLANCHAT_IMAGES = + private static final int[] RANK_IMAGES = { - SpriteID.CLAN_CHAT_RANK_SMILEY_FRIEND, - SpriteID.CLAN_CHAT_RANK_SINGLE_CHEVRON_RECRUIT, - SpriteID.CLAN_CHAT_RANK_DOUBLE_CHEVRON_CORPORAL, - SpriteID.CLAN_CHAT_RANK_TRIPLE_CHEVRON_SERGEANT, - SpriteID.CLAN_CHAT_RANK_BRONZE_STAR_LIEUTENANT, - SpriteID.CLAN_CHAT_RANK_SILVER_STAR_CAPTAIN, - SpriteID.CLAN_CHAT_RANK_GOLD_STAR_GENERAL, - SpriteID.CLAN_CHAT_RANK_KEY_CHANNEL_OWNER, - SpriteID.CLAN_CHAT_RANK_CROWN_JAGEX_MODERATOR, + SpriteID.FRIENDS_CHAT_RANK_SMILEY_FRIEND, + SpriteID.FRIENDS_CHAT_RANK_SINGLE_CHEVRON_RECRUIT, + SpriteID.FRIENDS_CHAT_RANK_DOUBLE_CHEVRON_CORPORAL, + SpriteID.FRIENDS_CHAT_RANK_TRIPLE_CHEVRON_SERGEANT, + SpriteID.FRIENDS_CHAT_RANK_BRONZE_STAR_LIEUTENANT, + SpriteID.FRIENDS_CHAT_RANK_SILVER_STAR_CAPTAIN, + SpriteID.FRIENDS_CHAT_RANK_GOLD_STAR_GENERAL, + SpriteID.FRIENDS_CHAT_RANK_KEY_CHANNEL_OWNER, + SpriteID.FRIENDS_CHAT_RANK_CROWN_JAGEX_MODERATOR, }; - private static final Dimension CLANCHAT_IMAGE_DIMENSION = new Dimension(11, 11); - private static final Color CLANCHAT_IMAGE_OUTLINE_COLOR = new Color(33, 33, 33); + private static final Dimension IMAGE_DIMENSION = new Dimension(11, 11); + private static final Color IMAGE_OUTLINE_COLOR = new Color(33, 33, 33); private final Client client; private final SpriteManager spriteManager; - private final BufferedImage[] clanChatImages = new BufferedImage[CLANCHAT_IMAGES.length]; + private final BufferedImage[] rankImages = new BufferedImage[RANK_IMAGES.length]; - private final LoadingCache clanRanksCache = CacheBuilder.newBuilder() + private final LoadingCache ranksCache = CacheBuilder.newBuilder() .maximumSize(100) .expireAfterWrite(1, TimeUnit.MINUTES) - .build(new CacheLoader() + .build(new CacheLoader<>() { @Override - public ClanMemberRank load(@Nonnull String key) + public FriendsChatRank load(@Nonnull String key) { - final ClanMemberManager clanMemberManager = client.getClanMemberManager(); - if (clanMemberManager == null) + final FriendsChatManager friendsChatManager = client.getFriendsChatManager(); + if (friendsChatManager == null) { - return ClanMemberRank.UNRANKED; + return FriendsChatRank.UNRANKED; } - - ClanMember clanMember = clanMemberManager.findByName(sanitize(key)); - return clanMember != null ? clanMember.getRank() : ClanMemberRank.UNRANKED; + FriendsChatMember friendsChatMember = friendsChatManager.findByName(sanitize(key)); + return friendsChatMember != null ? friendsChatMember.getRank() : FriendsChatRank.UNRANKED; } }); private int offset; @Inject - private ClanManager( - final Client client, - final SpriteManager spriteManager, - final EventBus eventbus - ) + private FriendChatManager(final Client client, + final SpriteManager spriteManager, + final EventBus eventbus) { this.client = client; this.spriteManager = spriteManager; eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); - eventbus.subscribe(ClanChanged.class, this, this::onClanChanged); + eventbus.subscribe(FriendsChatChanged.class, this, this::onFriendsChatChanged); } - public boolean isClanMember(String name) + public boolean isMember(String name) { - ClanMemberManager clanMemberManager = client.getClanMemberManager(); - return clanMemberManager != null && clanMemberManager.findByName(name) != null; + FriendsChatManager friendsChatManager = client.getFriendsChatManager(); + return friendsChatManager != null && friendsChatManager.findByName(name) != null; } - public ClanMemberRank getRank(String playerName) + public FriendsChatRank getRank(String playerName) { - return clanRanksCache.getUnchecked(playerName); + return ranksCache.getUnchecked(playerName); } @Nullable - public BufferedImage getClanImage(final ClanMemberRank clanMemberRank) + public BufferedImage getRankImage(final FriendsChatRank friendsChatRank) { - if (clanMemberRank == ClanMemberRank.UNRANKED) + if (friendsChatRank == FriendsChatRank.UNRANKED) { return null; } - return clanChatImages[clanMemberRank.ordinal() - 1]; + return rankImages[friendsChatRank.ordinal() - 1]; } - public int getIconNumber(final ClanMemberRank clanMemberRank) + public int getIconNumber(final FriendsChatRank friendsChatRank) { - return offset + clanMemberRank.ordinal() - 1; + return offset + friendsChatRank.ordinal() - 1; } private void onGameStateChanged(GameStateChanged gameStateChanged) { if (gameStateChanged.getGameState() == GameState.LOGGED_IN && offset == 0) { - loadClanChatIcons(); + loadRankIcons(); } } - private void onClanChanged(ClanChanged clanChanged) + public void onFriendsChatChanged(FriendsChatChanged friendsChatChanged) { - clanRanksCache.invalidateAll(); + ranksCache.invalidateAll(); } - private void loadClanChatIcons() + private void loadRankIcons() { { IndexedSprite[] modIcons = client.getModIcons(); @@ -157,21 +154,21 @@ public class ClanManager new BufferedImage(modIcons[0].getWidth(), modIcons[0].getHeight(), BufferedImage.TYPE_INT_ARGB), client); - modIcons = Arrays.copyOf(modIcons, offset + CLANCHAT_IMAGES.length); + modIcons = Arrays.copyOf(modIcons, offset + RANK_IMAGES.length); Arrays.fill(modIcons, offset, modIcons.length, blank); client.setModIcons(modIcons); } - for (int i = 0; i < CLANCHAT_IMAGES.length; i++) + for (int i = 0; i < RANK_IMAGES.length; i++) { final int fi = i; - spriteManager.getSpriteAsync(CLANCHAT_IMAGES[i], 0, sprite -> + spriteManager.getSpriteAsync(RANK_IMAGES[i], 0, sprite -> { IndexedSprite[] modIcons = client.getModIcons(); - clanChatImages[fi] = clanChatImageFromSprite(sprite); - modIcons[offset + fi] = ImageUtil.getImageIndexedSprite(clanChatImages[fi], client); + rankImages[fi] = friendsChatImageFromSprite(sprite); + modIcons[offset + fi] = ImageUtil.getImageIndexedSprite(rankImages[fi], client); }); } } @@ -182,9 +179,9 @@ public class ClanManager return cleaned.replace('\u00A0', ' '); } - private static BufferedImage clanChatImageFromSprite(final BufferedImage clanSprite) + private static BufferedImage friendsChatImageFromSprite(final BufferedImage sprite) { - final BufferedImage clanChatCanvas = ImageUtil.resizeCanvas(clanSprite, CLANCHAT_IMAGE_DIMENSION.width, CLANCHAT_IMAGE_DIMENSION.height); - return ImageUtil.outlineImage(clanChatCanvas, CLANCHAT_IMAGE_OUTLINE_COLOR); + final BufferedImage canvas = ImageUtil.resizeCanvas(sprite, IMAGE_DIMENSION.width, IMAGE_DIMENSION.height); + return ImageUtil.outlineImage(canvas, IMAGE_OUTLINE_COLOR); } } diff --git a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java index d6f792e0ca..62c88cf0d5 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/LootManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/LootManager.java @@ -29,6 +29,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ListMultimap; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -423,4 +424,25 @@ public class LootManager return new WorldPoint(x, y, worldLocation.getPlane()); } + + /** + * Get the list of items present at the provided WorldPoint that spawned this tick. + * + * @param worldPoint the location in question + * @return the list of item stacks + */ + public Collection getItemSpawns(WorldPoint worldPoint) + { + LocalPoint localPoint = LocalPoint.fromWorld(client, worldPoint); + if (localPoint == null) + { + return Collections.emptyList(); + } + + final int sceneX = localPoint.getSceneX(); + final int sceneY = localPoint.getSceneY(); + final int packed = sceneX << 8 | sceneY; + final List itemStacks = itemSpawns.get(packed); + return Collections.unmodifiableList(itemStacks); + } } 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 3667303d83..0659aa46a7 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 @@ -44,7 +44,7 @@ public class PlayerManager private final Client client; private final ItemManager itemManager; private final EventBus eventBus; - private final ClanManager clanManager; + private final FriendChatManager friendChatManager; private final Map playerMap = new ConcurrentHashMap<>(); private final Map resultCache = new ConcurrentHashMap<>(); private final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 2); @@ -54,13 +54,13 @@ public class PlayerManager final Client client, final EventBus eventBus, final ItemManager itemManager, - final ClanManager clanManager + final FriendChatManager friendChatManager ) { this.client = client; this.itemManager = itemManager; this.eventBus = eventBus; - this.clanManager = clanManager; + this.friendChatManager = friendChatManager; eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned); eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); eventBus.subscribe(PlayerAppearanceChanged.class, this, this::onAppearenceChanged); @@ -211,7 +211,7 @@ public class PlayerManager PlayerContainer player = playerMap.computeIfAbsent(event.getPlayer().getName(), s -> new PlayerContainer(event.getPlayer())); update(player); player.setFriend(client.isFriended(player.getName(), false)); - player.setClan(clanManager.isClanMember(player.getName())); + player.setClan(friendChatManager.isMember(player.getName())); } private void onPlayerDespawned(PlayerDespawned event) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java index e354cedd2e..0e51ce879a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java @@ -54,6 +54,7 @@ import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; import javax.inject.Inject; +import javax.inject.Named; import javax.inject.Singleton; import javax.swing.JOptionPane; import lombok.AccessLevel; @@ -66,6 +67,7 @@ import net.runelite.client.RuneLiteProperties; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.OpenOSRSConfig; +import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.ConfigChanged; import net.runelite.client.events.ExternalPluginChanged; @@ -112,9 +114,11 @@ public class ExternalPluginManager @Getter(AccessLevel.PUBLIC) private UpdateManager updateManager; private final Set pluginTypes = Set.of(PluginType.values()); + private final boolean safeMode; @Inject public ExternalPluginManager( + @Named("safeMode") final boolean safeMode, PluginManager pluginManager, OpenOSRSConfig openOSRSConfig, EventBus eventBus, @@ -122,6 +126,7 @@ public class ExternalPluginManager ConfigManager configManager, Groups groups) { + this.safeMode = safeMode; this.runelitePluginManager = pluginManager; this.openOSRSConfig = openOSRSConfig; this.eventBus = eventBus; @@ -449,6 +454,14 @@ public class ExternalPluginManager continue; } + if (safeMode && !pluginDescriptor.loadInSafeMode()) + { + log.debug("Disabling {} due to safe mode", clazz); + // also disable the plugin from autostarting later + configManager.unsetConfiguration(RuneLiteConfig.GROUP_NAME, clazz.getSimpleName().toLowerCase()); + continue; + } + @SuppressWarnings("unchecked") Class pluginClass = (Class) clazz; graph.addNode(pluginClass); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java index 2ae64bf887..e5d208b7ea 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java @@ -58,4 +58,6 @@ public @interface PluginDescriptor PluginType type() default PluginType.UNCATEGORIZED; boolean enabledByDefault() default true; + + boolean loadInSafeMode() default true; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index aca0ec45cc..b5a4645cd3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -92,6 +92,7 @@ public class PluginManager */ private static final String PLUGIN_PACKAGE = "net.runelite.client.plugins"; + private final boolean safeMode; private final EventBus eventBus; private final Scheduler scheduler; private final ExecutorService executorService; @@ -112,6 +113,7 @@ public class PluginManager @Inject @VisibleForTesting PluginManager( + @Named("safeMode") final boolean safeMode, final EventBus eventBus, final Scheduler scheduler, final ExecutorService executorService, @@ -120,6 +122,7 @@ public class PluginManager final Groups groups, final @Named("config") File config) { + this.safeMode = safeMode; this.eventBus = eventBus; this.scheduler = scheduler; this.executorService = executorService; @@ -376,6 +379,14 @@ public class PluginManager continue; } + if (safeMode && !pluginDescriptor.loadInSafeMode()) + { + log.debug("Disabling {} due to safe mode", clazz); + // also disable the plugin from autostarting later + configManager.unsetConfiguration(RuneLiteConfig.GROUP_NAME, clazz.getSimpleName().toLowerCase()); + continue; + } + @SuppressWarnings("unchecked") Class pluginClass = (Class) clazz; graph.addNode(pluginClass); } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index 908caf5017..1080dae934 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -537,7 +537,32 @@ public class ClientUI if (clientBounds != null) { frame.setBounds(clientBounds); - frame.revalidateMinimumSize(); + + // frame.getGraphicsConfiguration().getBounds() returns the bounds for the primary display. + // We have to find the correct graphics configuration by using the intersection of the client boundaries. + GraphicsConfiguration gc = getIntersectingDisplay(clientBounds); + if (gc != null) + { + double scale = gc.getDefaultTransform().getScaleX(); + + // When Windows screen scaling is on, the position/bounds will be wrong when they are set. + // The bounds saved in shutdown are the full, non-scaled co-ordinates. + if (scale != 1) + { + clientBounds.setRect( + clientBounds.getX() / scale, + clientBounds.getY() / scale, + clientBounds.getWidth() / scale, + clientBounds.getHeight() / scale); + + frame.setMinimumSize(clientBounds.getSize()); + frame.setBounds(clientBounds); + } + } + else + { + frame.setLocationRelativeTo(frame.getOwner()); + } } else { @@ -560,25 +585,13 @@ public class ClientUI frame.setLocationRelativeTo(frame.getOwner()); } - // If the frame is well hidden (e.g. unplugged 2nd screen), - // we want to move it back to default position as it can be - // hard for the user to reposition it themselves otherwise. - Rectangle clientBounds = frame.getBounds(); - Rectangle screenBounds = frame.getGraphicsConfiguration().getBounds(); - if (clientBounds.x + clientBounds.width - CLIENT_WELL_HIDDEN_MARGIN < screenBounds.getX() || - clientBounds.x + CLIENT_WELL_HIDDEN_MARGIN > screenBounds.getX() + screenBounds.getWidth() || - clientBounds.y + CLIENT_WELL_HIDDEN_MARGIN_TOP < screenBounds.getY() || - clientBounds.y + CLIENT_WELL_HIDDEN_MARGIN > screenBounds.getY() + screenBounds.getHeight()) - { - frame.setLocationRelativeTo(frame.getOwner()); - } - // Show frame frame.setVisible(true); frame.toFront(); requestFocus(); giveClientFocus(); log.info("Showing frame {}", frame); + frame.revalidateMinimumSize(); }); // Show out of date dialog if needed @@ -591,6 +604,24 @@ public class ClientUI } } + private GraphicsConfiguration getIntersectingDisplay(final Rectangle bounds) + { + GraphicsDevice[] gds = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices(); + + for (GraphicsDevice gd : gds) + { + GraphicsConfiguration gc = gd.getDefaultConfiguration(); + + final Rectangle displayBounds = gc.getBounds(); + if (displayBounds.intersects(bounds)) + { + return gc; + } + } + + return null; + } + private boolean showWarningOnExit() { if (config.warningOnExit() == WarningOnExit.ALWAYS) @@ -1125,14 +1156,14 @@ public class ClientUI private void saveClientBoundsConfig() { + final Rectangle bounds = frame.getBounds(); if ((frame.getExtendedState() & JFrame.MAXIMIZED_BOTH) != 0) { + configManager.setConfiguration(CONFIG_GROUP, CONFIG_CLIENT_BOUNDS, bounds); configManager.setConfiguration(CONFIG_GROUP, CONFIG_CLIENT_MAXIMIZED, true); } else { - final Rectangle bounds = frame.getBounds(); - // Try to expand sidebar if (!sidebarOpen) { diff --git a/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java b/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java index 38b1ea657f..f236c431aa 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java @@ -36,8 +36,8 @@ public class JagexColors */ public static final Color CHAT_PUBLIC_TEXT_OPAQUE_BACKGROUND = Color.BLUE; public static final Color CHAT_PRIVATE_MESSAGE_TEXT_OPAQUE_BACKGROUND = Color.CYAN; - public static final Color CHAT_CLAN_TEXT_OPAQUE_BACKGROUND = new Color(127, 0, 0); - public static final Color CHAT_CLAN_NAME_OPAQUE_BACKGROUND = Color.BLUE; + public static final Color CHAT_FC_TEXT_OPAQUE_BACKGROUND = new Color(127, 0, 0); + public static final Color CHAT_FC_NAME_OPAQUE_BACKGROUND = Color.BLUE; public static final Color CHAT_GAME_EXAMINE_TEXT_OPAQUE_BACKGROUND = Color.BLACK; public static final Color CHAT_TYPED_TEXT_OPAQUE_BACKGROUND = Color.BLUE; @@ -46,8 +46,8 @@ public class JagexColors */ public static final Color CHAT_PUBLIC_TEXT_TRANSPARENT_BACKGROUND = new Color(144, 144, 255); public static final Color CHAT_PRIVATE_MESSAGE_TEXT_TRANSPARENT_BACKGROUND = Color.CYAN; - public static final Color CHAT_CLAN_TEXT_TRANSPARENT_BACKGROUND = new Color(239, 80, 80); - public static final Color CHAT_CLAN_NAME_TRANSPARENT_BACKGROUND = new Color(144, 112, 255); + public static final Color CHAT_FC_TEXT_TRANSPARENT_BACKGROUND = new Color(239, 80, 80); + public static final Color CHAT_FC_NAME_TRANSPARENT_BACKGROUND = new Color(144, 112, 255); public static final Color CHAT_GAME_EXAMINE_TEXT_TRANSPARENT_BACKGROUND = Color.WHITE; public static final Color CHAT_TYPED_TEXT_TRANSPARENT_BACKGROUND = new Color(144, 144, 255); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java index 972907096f..799b3f2b3f 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java @@ -137,17 +137,17 @@ public class OverlayManager private void onMenuOptionClicked(MenuOptionClicked event) { - if (event.getMenuOpcode() != MenuOpcode.RUNELITE_OVERLAY) + MenuOpcode menuOpcode = event.getMenuOpcode(); + if (menuOpcode != MenuOpcode.RUNELITE_OVERLAY && menuOpcode != MenuOpcode.RUNELITE_OVERLAY_CONFIG) { return; } event.consume(); - Optional optionalOverlay = overlays.stream().filter(o -> overlays.indexOf(o) == event.getIdentifier()).findAny(); - if (optionalOverlay.isPresent()) + Overlay overlay = overlays.get(event.getIdentifier()); + if (overlay != null) { - Overlay overlay = optionalOverlay.get(); List menuEntries = overlay.getMenuEntries(); Optional optionalOverlayMenuEntry = menuEntries.stream() .filter(me -> me.getOption().equals(event.getOption())) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index dbd5f607c3..bcbca38cbb 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -50,7 +50,6 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.MenuEntry; -import net.runelite.api.MenuOpcode; import net.runelite.api.events.BeforeRender; import net.runelite.api.events.ClientTick; import net.runelite.api.events.FocusChanged; @@ -818,6 +817,11 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener private MenuEntry[] createRightClickMenuEntries(Overlay overlay) { List menuEntries = overlay.getMenuEntries(); + if (menuEntries.isEmpty()) + { + return null; + } + final MenuEntry[] entries = new MenuEntry[menuEntries.size()]; // Add in reverse order so they display correctly in the right-click menu @@ -828,7 +832,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener final MenuEntry entry = new MenuEntry(); entry.setOption(overlayMenuEntry.getOption()); entry.setTarget(ColorUtil.wrapWithColorTag(overlayMenuEntry.getTarget(), JagexColors.MENU_TARGET)); - entry.setOpcode(MenuOpcode.RUNELITE_OVERLAY.getId()); + entry.setOpcode(overlayMenuEntry.getMenuOpcode().getId()); entry.setIdentifier(overlayManager.getOverlays().indexOf(overlay)); // overlay id entries[i] = entry; diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/InfoBoxComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/InfoBoxComponent.java index be1a8b1da5..33e053ccbe 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/InfoBoxComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/InfoBoxComponent.java @@ -35,6 +35,7 @@ import java.awt.image.BufferedImage; import lombok.Getter; import lombok.Setter; import net.runelite.client.ui.FontManager; +import net.runelite.client.ui.overlay.infobox.InfoBox; @Setter public class InfoBoxComponent implements LayoutableRenderableEntity @@ -54,6 +55,8 @@ public class InfoBoxComponent implements LayoutableRenderableEntity private Color color = Color.WHITE; private Color backgroundColor = ComponentConstants.STANDARD_BACKGROUND_COLOR; private BufferedImage image; + @Getter + private InfoBox infoBox; @Override public Dimension render(Graphics2D graphics) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java index 777bb9d634..364979cf36 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java @@ -26,11 +26,14 @@ package net.runelite.client.ui.overlay.infobox; import java.awt.Color; import java.awt.image.BufferedImage; +import java.util.ArrayList; +import java.util.List; import javax.annotation.Nonnull; import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; import net.runelite.client.plugins.Plugin; +import net.runelite.client.ui.overlay.OverlayMenuEntry; public abstract class InfoBox { @@ -54,6 +57,10 @@ public abstract class InfoBox @Setter private String tooltip; + @Getter + @Setter + private List menuEntries = new ArrayList<>(); + public InfoBox(BufferedImage image, @Nonnull Plugin plugin) { this.plugin = plugin; diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java index c04da4b6ee..9b40fb2dc6 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java @@ -31,11 +31,17 @@ import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; +import java.util.Collections; import java.util.List; import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.api.Client; +import net.runelite.api.MenuOpcode; +import net.runelite.api.events.MenuOptionClicked; import net.runelite.client.config.RuneLiteConfig; +import net.runelite.client.eventbus.EventBus; +import net.runelite.client.events.InfoBoxMenuClicked; +import net.runelite.client.ui.overlay.OverlayMenuEntry; import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.ComponentOrientation; @@ -54,18 +60,23 @@ public class InfoBoxOverlay extends OverlayPanel private final TooltipManager tooltipManager; private final Client client; private final RuneLiteConfig config; + private final EventBus eventBus; + + private InfoBoxComponent hoveredComponent; @Inject private InfoBoxOverlay( InfoBoxManager infoboxManager, TooltipManager tooltipManager, Client client, - RuneLiteConfig config) + RuneLiteConfig config, + EventBus eventBus) { this.tooltipManager = tooltipManager; this.infoboxManager = infoboxManager; this.client = client; this.config = config; + this.eventBus = eventBus; setPosition(OverlayPosition.TOP_LEFT); setClearChildren(false); @@ -73,6 +84,8 @@ public class InfoBoxOverlay extends OverlayPanel panelComponent.setBackgroundColor(null); panelComponent.setBorder(new Rectangle()); panelComponent.setGap(new Point(GAP, GAP)); + + eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked); } @Override @@ -80,6 +93,12 @@ public class InfoBoxOverlay extends OverlayPanel { final List infoBoxes = infoboxManager.getInfoBoxes(); + final boolean menuOpen = client.isMenuOpen(); + if (!menuOpen) + { + hoveredComponent = null; + } + if (infoBoxes.isEmpty()) { return null; @@ -112,6 +131,7 @@ public class InfoBoxOverlay extends OverlayPanel infoBoxComponent.setTooltip(box.getTooltip()); infoBoxComponent.setPreferredSize(new Dimension(config.infoBoxSize(), config.infoBoxSize())); infoBoxComponent.setBackgroundColor(config.overlayBackgroundColor()); + infoBoxComponent.setInfoBox(box); panelComponent.getChildren().add(infoBoxComponent); } @@ -122,25 +142,49 @@ public class InfoBoxOverlay extends OverlayPanel for (final LayoutableRenderableEntity child : panelComponent.getChildren()) { - if (child instanceof InfoBoxComponent) + final InfoBoxComponent component = (InfoBoxComponent) child; + + // Create intersection rectangle + final Rectangle intersectionRectangle = new Rectangle(component.getBounds()); + intersectionRectangle.translate(getBounds().x, getBounds().y); + + if (intersectionRectangle.contains(mouse)) { - final InfoBoxComponent component = (InfoBoxComponent) child; - - if (!Strings.isNullOrEmpty(component.getTooltip())) + final String tooltip = component.getTooltip(); + if (!Strings.isNullOrEmpty(tooltip)) { - // Create intersection rectangle - final Rectangle intersectionRectangle = new Rectangle(component.getBounds()); - intersectionRectangle.translate(getBounds().x, getBounds().y); - - if (intersectionRectangle.contains(mouse)) - { - tooltipManager.add(new Tooltip(component.getTooltip())); - } + tooltipManager.add(new Tooltip(tooltip)); } + + if (!menuOpen) + { + hoveredComponent = component; + } + break; } } panelComponent.getChildren().clear(); return dimension; } + + @Override + public List getMenuEntries() + { + // we dynamically build the menu options based on which infobox is hovered + return hoveredComponent == null ? Collections.emptyList() : hoveredComponent.getInfoBox().getMenuEntries(); + } + + public void onMenuOptionClicked(MenuOptionClicked menuOptionClicked) + { + if (menuOptionClicked.getMenuOpcode() != MenuOpcode.RUNELITE_INFOBOX) + { + return; + } + + InfoBox infoBox = hoveredComponent.getInfoBox(); + infoBox.getMenuEntries().stream() + .filter(me -> me.getOption().equals(menuOptionClicked.getOption())) + .findAny().ifPresent(overlayMenuEntry -> eventBus.post(InfoBoxMenuClicked.class, new InfoBoxMenuClicked(overlayMenuEntry, infoBox))); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Timer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Timer.java index 4d6c2b7be4..c9a3664222 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Timer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Timer.java @@ -39,8 +39,8 @@ import net.runelite.client.plugins.Plugin; public class Timer extends InfoBox { private final Instant startTime; - private final Instant endTime; - private final Duration duration; + private Instant endTime; + private Duration duration; public Timer(long period, ChronoUnit unit, BufferedImage image, Plugin plugin) { @@ -94,4 +94,9 @@ public class Timer extends InfoBox return timeLeft.isZero() || timeLeft.isNegative(); } + public void setDuration(Duration duration) + { + this.duration = duration; + endTime = startTime.plus(duration); + } } diff --git a/runelite-client/src/main/scripts/CommandScript.rs2asm b/runelite-client/src/main/scripts/CommandScript.rs2asm index f38a52259f..57cf201063 100644 --- a/runelite-client/src/main/scripts/CommandScript.rs2asm +++ b/runelite-client/src/main/scripts/CommandScript.rs2asm @@ -38,7 +38,7 @@ LABEL20: iconst 1 if_icmpeq LABEL31 iconst 0 ; Modified to enable clanchat input - sconst "clanchatInput" + sconst "friendsChatInput" runelite_callback iconst 1 if_icmpeq LABEL31 ; Compare to 1 diff --git a/runelite-client/src/main/scripts/ClanSendKick.hash b/runelite-client/src/main/scripts/FriendsChatSendKick.hash similarity index 100% rename from runelite-client/src/main/scripts/ClanSendKick.hash rename to runelite-client/src/main/scripts/FriendsChatSendKick.hash diff --git a/runelite-client/src/main/scripts/ClanSendKick.rs2asm b/runelite-client/src/main/scripts/FriendsChatSendKick.rs2asm similarity index 80% rename from runelite-client/src/main/scripts/ClanSendKick.rs2asm rename to runelite-client/src/main/scripts/FriendsChatSendKick.rs2asm index 1da495029f..f94d189442 100644 --- a/runelite-client/src/main/scripts/ClanSendKick.rs2asm +++ b/runelite-client/src/main/scripts/FriendsChatSendKick.rs2asm @@ -3,9 +3,9 @@ .string_stack_count 1 .int_var_count 0 .string_var_count 1 -; callback "confirmClanKick" -; Used by the ClanChat plugin to show a chatbox panel confirming the requested kick -; Also requires the "confirmKicks" option of ClanChatConfig to be enabled +; callback "confirmFriendsChatKick" +; Used by the friends chat plugin to show a chatbox panel confirming the requested kick +; Also requires the "confirmKicks" option of FriendsChatConfig to be enabled invoke 1942 iconst 1 if_icmpeq LABEL4 @@ -26,7 +26,7 @@ LABEL73: CONFIRM_KICK: sload 0 ; Username we are trying to kick iconst 0 ; Modified if we are confirming the kick inside the plugin - sconst "confirmClanKick" + sconst "confirmFriendsChatKick" runelite_callback pop_string ; Pop username iconst 0 ; Compare against zero diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java index b60385d88a..48c9a04fa5 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/PluginManagerTest.java @@ -95,7 +95,7 @@ public class PluginManagerTest executorService = Executors.newSingleThreadScheduledExecutor(); Injector injector = Guice.createInjector(Modules - .override(new RuneLiteModule(() -> null, RuneLite.DEFAULT_CONFIG_FILE)) + .override(new RuneLiteModule(() -> null, false, RuneLite.DEFAULT_CONFIG_FILE)) .with(BoundFieldModule.of(this))); RuneLite.setInjector(injector); @@ -130,7 +130,7 @@ public class PluginManagerTest @Test public void testLoadPlugins() throws Exception { - PluginManager pluginManager = new PluginManager(null, null, executorService, null, null, null, null); + PluginManager pluginManager = new PluginManager(false, null, null, executorService, null, null, null, null); pluginManager.setOutdated(true); pluginManager.loadCorePlugins(); Collection plugins = pluginManager.getPlugins(); @@ -141,7 +141,7 @@ public class PluginManagerTest .count(); assertEquals(expected, plugins.size()); - pluginManager = new PluginManager(null, null, executorService, null, null, null, null); + pluginManager = new PluginManager(false, null, null, executorService, null, null, null, null); pluginManager.loadCorePlugins(); plugins = pluginManager.getPlugins(); @@ -157,9 +157,9 @@ public class PluginManagerTest { List modules = new ArrayList<>(); modules.add(new GraphvizModule()); - modules.add(new RuneLiteModule(() -> null, RuneLite.DEFAULT_CONFIG_FILE)); + modules.add(new RuneLiteModule(() -> null, false, RuneLite.DEFAULT_CONFIG_FILE)); - PluginManager pluginManager = new PluginManager(null, null, executorService, null, null, null, null); + PluginManager pluginManager = new PluginManager(false, null, null, executorService, null, null, null, null); pluginManager.loadCorePlugins(); modules.addAll(pluginManager.getPlugins()); @@ -211,7 +211,7 @@ public class PluginManagerTest public void testEventbusAnnotations() throws Exception { EventBus eventbus = new EventBus(); - PluginManager pluginManager = new PluginManager(eventbus, null, executorService, null, null, null, null) + PluginManager pluginManager = new PluginManager(false, eventbus, null, executorService, null, null, null, null) { @Override public boolean isPluginEnabled(Plugin plugin) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/EntityHiderBridgeMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/EntityHiderBridgeMixin.java index a647a6d1ca..23097e1a80 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/EntityHiderBridgeMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/EntityHiderBridgeMixin.java @@ -118,7 +118,7 @@ public abstract class EntityHiderBridgeMixin implements RSClient @Inject @Override - public void setClanMatesHidden(boolean state) + public void setFriendsChatMembersHidden(boolean state) { hideClanMates = state; } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/EntityHiderMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/EntityHiderMixin.java index f6b3b6c763..54f3b75b8a 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/EntityHiderMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/EntityHiderMixin.java @@ -180,7 +180,7 @@ public abstract class EntityHiderMixin implements RSScene } return (!hideFriends && player.isFriend()) || - (!isLocalPlayer && !hideClanMates && player.isClanMember()); + (!isLocalPlayer && !hideClanMates && player.isFriendsChatMember()); } } else if (entity instanceof RSNPC) 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 087e19001b..5cbcbaec37 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClanChatMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClanChatMixin.java @@ -1,8 +1,8 @@ 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.FriendsChatMember; +import net.runelite.api.events.FriendsChatMemberJoined; +import net.runelite.api.events.FriendsChatMemberLeft; import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Shadow; @@ -21,27 +21,27 @@ public abstract class RSClanChatMixin implements RSClanChat @Override public void rl$add(RSUsername name, RSUsername prevName) { - ClanMember member = findByName(name); + FriendsChatMember member = findByName(name); if (member == null) { return; } - ClanMemberJoined event = new ClanMemberJoined(member); - client.getCallbacks().postDeferred(ClanMemberJoined.class, event); + FriendsChatMemberJoined event = new FriendsChatMemberJoined(member); + client.getCallbacks().postDeferred(FriendsChatMemberJoined.class, event); } @Inject @Override public void rl$remove(RSUser nameable) { - ClanMember member = findByName(nameable.getRsName()); + FriendsChatMember member = findByName(nameable.getRsName()); if (member == null) { return; } - ClanMemberLeft event = new ClanMemberLeft(member); - client.getCallbacks().postDeferred(ClanMemberLeft.class, event); + FriendsChatMemberLeft event = new FriendsChatMemberLeft(member); + client.getCallbacks().postDeferred(FriendsChatMemberLeft.class, event); } } 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 ef2742c4a6..5c5c90215c 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClanMateMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClanMateMixin.java @@ -1,6 +1,6 @@ package net.runelite.mixins; -import net.runelite.api.ClanMemberRank; +import net.runelite.api.FriendsChatRank; import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Mixin; import net.runelite.rs.api.RSClanMate; @@ -10,8 +10,8 @@ public abstract class RSClanMateMixin implements RSClanMate { @Override @Inject - public ClanMemberRank getRank() + public FriendsChatRank getRank() { - return ClanMemberRank.valueOf(getRSRank()); + return FriendsChatRank.valueOf(getRSRank()); } } 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 13a9e37837..863fe4a4d2 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -76,9 +76,9 @@ import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.CanvasSizeChanged; import net.runelite.api.events.ChatMessage; -import net.runelite.api.events.ClanChanged; import net.runelite.api.events.ClientTick; import net.runelite.api.events.DraggingWidgetChanged; +import net.runelite.api.events.FriendsChatChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GrandExchangeOfferChanged; import net.runelite.api.events.GrandExchangeSearched; @@ -1179,7 +1179,7 @@ public abstract class RSClientMixin implements RSClient @Inject public static void clanMemberManagerChanged(int idx) { - client.getCallbacks().post(ClanChanged.class, new ClanChanged(client.getClanMemberManager() != null)); + client.getCallbacks().post(FriendsChatChanged.class, new FriendsChatChanged(client.getClanMemberManager() != null)); } @FieldHook("canvasWidth") @@ -1713,11 +1713,11 @@ public abstract class RSClientMixin implements RSClient { if (client.isSpellSelected()) { - return ((hideFriendCastOptions && p.isFriended()) || (hideClanmateCastOptions && p.isClanMember())) + return ((hideFriendCastOptions && p.isFriended()) || (hideClanmateCastOptions && p.isFriendsChatMember())) && !unhiddenCasts.contains(client.getSelectedSpellName().replaceAll("<[^>]*>", "").toLowerCase()); } - return ((hideFriendAttackOptions && p.isFriended()) || (hideClanmateAttackOptions && p.isClanMember())); + return ((hideFriendAttackOptions && p.isFriended()) || (hideClanmateAttackOptions && p.isFriendsChatMember())); } @Inject diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java b/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java index 1db0d2add3..07655967ca 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSActor.java @@ -102,12 +102,20 @@ public interface RSActor extends RSEntity, Actor // Idle animation + @Import("idleSequence") + @Override + int getIdlePoseAnimation(); + @Import("idleSequence") @Override void setIdlePoseAnimation(int animation); // Movement animation (aka poseAnimation) + @Import("movementSequence") + @Override + int getPoseAnimation(); + @Import("movementSequence") @Override void setPoseAnimation(int animation); @@ -147,10 +155,6 @@ public interface RSActor extends RSEntity, Actor @Import("hitSplatCycles") int[] getHitsplatCycles(); - @Import("idleSequence") - @Override - int getIdleAnimation(); - @Import("turnLeftSequence") @Override int getTurnLeftAnimation(); @@ -178,8 +182,4 @@ public interface RSActor extends RSEntity, Actor @Import("runSequence") @Override int getRunAnimation(); - - @Import("movementSequence") - @Override - int getMovementAnimation(); } 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 9ea98e0873..4bf1c8442f 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,10 +1,10 @@ package net.runelite.rs.api; -import net.runelite.api.ClanMember; -import net.runelite.api.ClanMemberManager; +import net.runelite.api.FriendsChatManager; +import net.runelite.api.FriendsChatMember; import net.runelite.mapping.Import; -public interface RSClanChat extends RSUserList, ClanMemberManager +public interface RSClanChat extends RSUserList, FriendsChatManager { @Import("owner") String getClanOwner(); diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSClanMate.java b/runescape-api/src/main/java/net/runelite/rs/api/RSClanMate.java index aaa5291c8d..c22170a206 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSClanMate.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSClanMate.java @@ -1,5 +1,5 @@ package net.runelite.rs.api; -import net.runelite.api.ClanMember; +import net.runelite.api.FriendsChatMember; -public interface RSClanMate extends RSBuddy, ClanMember {} +public interface RSClanMate extends RSBuddy, FriendsChatMember {} diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSPlayer.java b/runescape-api/src/main/java/net/runelite/rs/api/RSPlayer.java index 8bfecef721..fdc17aa1e0 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSPlayer.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSPlayer.java @@ -52,7 +52,7 @@ public interface RSPlayer extends RSActor, Player @Import("isClanMember") @Override - boolean isClanMember(); + boolean isFriendsChatMember(); @Import("isFriend") @Override