diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index b31c062c45..465fe49fb9 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -25,9 +25,9 @@ object ProjectVersions { const val launcherVersion = "2.2.0" - const val rlVersion = "1.7.3.1" + const val rlVersion = "1.7.4" - const val openosrsVersion = "4.3.0" + const val openosrsVersion = "4.4.0" const val rsversion = 194 const val cacheversion = 165 diff --git a/injector/src/main/java/com/openosrs/injector/injectors/RSApiInjector.java b/injector/src/main/java/com/openosrs/injector/injectors/RSApiInjector.java index aaa6e21493..c469542463 100644 --- a/injector/src/main/java/com/openosrs/injector/injectors/RSApiInjector.java +++ b/injector/src/main/java/com/openosrs/injector/injectors/RSApiInjector.java @@ -232,10 +232,10 @@ public class RSApiInjector extends AbstractInjector matched.removeIf(RSApiMethod::isInjected); - if (matched.size() > 2) + /*if (matched.size() > 2) { throw new InjectException("More than 2 imported api methods for field " + deobField.getPoolField()); - } + }*/ final Field vanillaField = inject.toVanilla(deobField); final Number getter = DeobAnnotations.getObfuscatedGetter(deobField); 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 0495d48a75..d8c297cb27 100644 --- a/runelite-api/src/main/java/net/runelite/api/Actor.java +++ b/runelite-api/src/main/java/net/runelite/api/Actor.java @@ -222,30 +222,62 @@ public interface Actor extends Renderable, Locatable void setAnimation(int animation); /** - * Sets the frame of the animation the actor is performing. + * Get the frame of the animation the actor is performing * - * @param actionFrame the animation frame + * @return the frame */ - void setActionFrame(int actionFrame); + int getAnimationFrame(); /** - * Gets the graphic that is currently on the player. + * Sets the frame of the animation the actor is performing. * - * @return the graphic of the actor + * @param frame the animation frame + * @deprecated use setAnimationFrame + */ + @Deprecated(since = "5.0.0", forRemoval = false) // deprecated upstream + void setActionFrame(int frame); + + /** + * Sets the frame of the animation the actor is performing. + * + * @param frame the animation frame + */ + void setAnimationFrame(int frame); + + /** + * Get the graphic/spotanim that is currently on the actor. + * + * @return the spotanim of the actor * @see GraphicID */ int getGraphic(); + /** + * Set the graphic/spotanim that is currently on the actor. + * + * @param graphic The spotanim id + * @see GraphicID + */ void setGraphic(int graphic); - int getSpotAnimationFrame(); + /** + * Get the frame of the currently playing spotanim + * + * @return + */ + int getSpotAnimFrame(); + /** + * Set the frame of the currently playing spotanim + * + * @param spotAnimFrame + */ void setSpotAnimFrame(int spotAnimFrame); /** * Get the number of cycles the SpotAnimation frame has been displayed for. */ - int getSpotAnimationFrameCycle(); + int getSpotAnimFrameCycle(); /** * Gets the canvas area of the current tile the actor is standing on. @@ -281,11 +313,11 @@ public interface Actor extends Renderable, Locatable * Gets the point at which a sprite should be drawn, relative to the * current location with the given z-axis offset. * - * @param spritePixels the sprite to draw + * @param sprite the sprite to draw * @param zOffset the z-axis offset * @return the sprite drawing location */ - Point getCanvasSpriteLocation(SpritePixels spritePixels, int zOffset); + Point getCanvasSpriteLocation(SpritePixels sprite, int zOffset); /** * Gets a point on the canvas of where this actors mini-map indicator @@ -350,18 +382,6 @@ public interface Actor extends Renderable, Locatable int getTurnRightAnimation(); - // TODO: Remove next major - @Deprecated - int getWalkBackAnimation(); - - // TODO: Remove next major - @Deprecated - int getWalkLeftAnimation(); - - // TODO: Remove next major - @Deprecated - int getWalkRightAnimation(); - /** * Returns true if this NPC has died * diff --git a/runelite-api/src/main/java/net/runelite/api/ItemID.java b/runelite-api/src/main/java/net/runelite/api/ItemID.java index 3ec644efee..47e3930580 100644 --- a/runelite-api/src/main/java/net/runelite/api/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java @@ -11806,5 +11806,17 @@ public final class ItemID public static final int GREGGS_IOU = 25608; public static final int PASTEL_FLOWERS = 25609; public static final int THICK_DYE = 25610; + public static final int STASH_CHART = 25611; + public static final int STASH_BLUEPRINT = 25612; + public static final int BABY_MOLERAT = 25613; + public static final int LARGE_WATER_CONTAINER = 25615; + public static final int TEA_FLASK_25617 = 25617; + public static final int PLAIN_SATCHEL_25618 = 25618; + public static final int GREEN_SATCHEL_25619 = 25619; + public static final int RED_SATCHEL_25620 = 25620; + public static final int BLACK_SATCHEL_25621 = 25621; + public static final int GOLD_SATCHEL_25622 = 25622; + public static final int RUNE_SATCHEL_25623 = 25623; + public static final int UNSIRED_25624 = 25624; /* This file is automatically generated. Do not edit. */ } \ No newline at end of file diff --git a/runelite-api/src/main/java/net/runelite/api/NpcID.java b/runelite-api/src/main/java/net/runelite/api/NpcID.java index b198db9fb5..f87f3478b2 100644 --- a/runelite-api/src/main/java/net/runelite/api/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java @@ -9004,5 +9004,7 @@ public final class NpcID public static final int GREGG_10643 = 10643; public static final int CAT_10644 = 10644; public static final int AGGIE_10645 = 10645; + public static final int BABY_MOLERAT = 10650; + public static final int BABY_MOLERAT_10651 = 10651; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/NullItemID.java b/runelite-api/src/main/java/net/runelite/api/NullItemID.java index 18a18e8979..107539aae9 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullItemID.java @@ -13594,5 +13594,7 @@ public final class NullItemID public static final int NULL_25603 = 25603; public static final int NULL_25605 = 25605; public static final int NULL_25607 = 25607; + public static final int NULL_25614 = 25614; + public static final int NULL_25616 = 25616; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java index eb004776eb..2d3e5d5300 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java @@ -20218,5 +20218,6 @@ public final class NullObjectID public static final int NULL_41431 = 41431; public static final int NULL_41432 = 41432; public static final int NULL_41433 = 41433; + public static final int NULL_41437 = 41437; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/ObjectID.java b/runelite-api/src/main/java/net/runelite/api/ObjectID.java index 9faf893168..f1795d64cc 100644 --- a/runelite-api/src/main/java/net/runelite/api/ObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/ObjectID.java @@ -21202,5 +21202,9 @@ public final class ObjectID public static final int EASTER_EGGS = 41370; public static final int BASKET_41371 = 41371; public static final int POST_41373 = 41373; + public static final int STASH_CHART = 41434; + public static final int REWARDS_CHEST_41435 = 41435; + public static final int REWARDS_CHEST_41436 = 41436; + public static final int STILE_41438 = 41438; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-client/src/main/java/com/openosrs/client/game/PlayerManager.java b/runelite-client/src/main/java/com/openosrs/client/game/PlayerManager.java index 54efa1b89a..cf1c4a94b7 100644 --- a/runelite-client/src/main/java/com/openosrs/client/game/PlayerManager.java +++ b/runelite-client/src/main/java/com/openosrs/client/game/PlayerManager.java @@ -384,7 +384,7 @@ public class PlayerManager } else if (itemComposition.isTradeable()) { - prices.put(id, itemManager.getItemPrice(id, false)); + prices.put(id, itemManager.getItemPrice(id)); } } 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 50e6fefbb0..bc3cfc96e7 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 @@ -131,13 +131,16 @@ public class ChatMessageManager case MODCHAT: { String sanitizedUsername = Text.removeTags(chatMessage.getName()); - boolean isFriend = client.isFriended(sanitizedUsername, true) && !client.getLocalPlayer().getName().equals(sanitizedUsername); - if (isFriend) + if (client.getLocalPlayer().getName().equals(sanitizedUsername)) + { + usernameColor = isChatboxTransparent ? chatColorConfig.transparentPlayerUsername() : chatColorConfig.opaquePlayerUsername(); + } + else if (client.isFriended(sanitizedUsername, true)) { usernameColor = isChatboxTransparent ? chatColorConfig.transparentPublicFriendUsernames() : chatColorConfig.opaquePublicFriendUsernames(); } - if (usernameColor == null) + else { usernameColor = isChatboxTransparent ? chatColorConfig.transparentUsername() : chatColorConfig.opaqueUsername(); } 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 a6757a382a..30666249eb 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 @@ -313,6 +313,15 @@ public interface ChatColorConfig extends Config ) Color opaquePublicFriendUsernames(); + @ConfigItem( + position = 28, + keyName = "opaquePlayerUsername", + name = "Your username", + description = "Color of your username", + section = opaqueSection + ) + Color opaquePlayerUsername(); + @ConfigItem( position = 51, keyName = "transparentPublicChat", @@ -579,4 +588,13 @@ public interface ChatColorConfig extends Config section = transparentSection ) Color transparentPublicFriendUsernames(); + + @ConfigItem( + position = 78, + keyName = "transparentPlayerUsername", + name = "Your username (transparent)", + description = "Color of your username (transparent)", + section = transparentSection + ) + Color transparentPlayerUsername(); } diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java index 07e94f3d4f..648bff902a 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java @@ -299,19 +299,6 @@ public class ItemManager return getItemPriceWithSource(itemID, runeLiteConfig.useWikiItemPrices()); } - /** - * Look up an item's price - * - * @param itemID item id - * @param ignoreUntradeableMap skip untradeables - * @return item price - */ - @Deprecated(since = "4.1.0", forRemoval = true) - public int getItemPrice(int itemID, boolean ignoreUntradeableMap) - { - return getItemPriceWithSource(itemID, runeLiteConfig.useWikiItemPrices(), ignoreUntradeableMap); - } - /** * Look up an item's price * @@ -320,12 +307,6 @@ public class ItemManager * @return item price */ public int getItemPriceWithSource(int itemID, boolean useWikiPrice) - { - return getItemPriceWithSource(itemID, useWikiPrice, false); - } - - // TODO: inline this back to getItemPriceWithSource(int, boolean) next minor ver - private int getItemPriceWithSource(int itemID, boolean useWikiPrice, boolean ignoreUntradeableMap) { if (itemID == COINS_995) { @@ -360,11 +341,6 @@ public class ItemManager { for (final ItemMapping mappedItem : mappedItems) { - if (ignoreUntradeableMap && mappedItem.isUntradeable()) - { - continue; - } - price += getItemPriceWithSource(mappedItem.getTradeableItem(), useWikiPrice) * mappedItem.getQuantity(); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java index 47a71ed654..0f9296b253 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java @@ -347,7 +347,7 @@ public class DevToolsPlugin extends Plugin int id = Integer.parseInt(args[0]); Player localPlayer = client.getLocalPlayer(); localPlayer.setAnimation(id); - localPlayer.setActionFrame(0); + localPlayer.setAnimationFrame(0); break; } case "gfx": diff --git a/runelite-client/src/main/resources/item_variations.json b/runelite-client/src/main/resources/item_variations.json index bb3f648a28..3a4fd012f4 100644 --- a/runelite-client/src/main/resources/item_variations.json +++ b/runelite-client/src/main/resources/item_variations.json @@ -6834,6 +6834,34 @@ 10857, 24792 ], + "tea flask": [ + 10859, + 25617 + ], + "plain satchel": [ + 10877, + 25618 + ], + "green satchel": [ + 10878, + 25619 + ], + "red satchel": [ + 10879, + 25620 + ], + "black satchel": [ + 10880, + 25621 + ], + "gold satchel": [ + 10881, + 25622 + ], + "rune satchel": [ + 10882, + 25623 + ], "keg": [ 10885, 10898 @@ -7989,6 +8017,10 @@ 13269, 13271 ], + "unsired": [ + 13273, + 25624 + ], "max cape": [ 13280, 13342 diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp.cl b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp.cl index 1212123f25..3ae25776e8 100644 --- a/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp.cl +++ b/runelite-client/src/main/resources/net/runelite/client/plugins/gpu/comp.cl @@ -26,7 +26,6 @@ #include FACE_COUNT #include cl_types.cl -#include to_screen.cl #include common.cl #include priority_render.cl diff --git a/runelite-client/src/main/resources/scripts/CommandScript.hash b/runelite-client/src/main/resources/scripts/CommandScript.hash index 30e32c0402..83ad002c3b 100644 --- a/runelite-client/src/main/resources/scripts/CommandScript.hash +++ b/runelite-client/src/main/resources/scripts/CommandScript.hash @@ -1 +1 @@ -9D8074ED6B6D8171CFC3A5C8F710FC94483DB601AF739E462AB20A6E5C97ACE7 \ No newline at end of file +49F71301DDB45F2010BA8EFCA9D32D08C2CEF0A5F4F441A1CC1F1FE2CCFD7C36 \ No newline at end of file diff --git a/runelite-client/src/main/resources/scripts/CommandScript.rs2asm b/runelite-client/src/main/resources/scripts/CommandScript.rs2asm index 3e568fe0a2..8616a625be 100644 --- a/runelite-client/src/main/resources/scripts/CommandScript.rs2asm +++ b/runelite-client/src/main/resources/scripts/CommandScript.rs2asm @@ -248,7 +248,7 @@ LABEL189: sconst "" set_varc_string 335 LABEL193: - jump LABEL262 + jump LABEL269 LABEL194: iload 0 iconst 104 @@ -262,7 +262,7 @@ LABEL198: LABEL202: invoke 75 LABEL203: - jump LABEL262 + jump LABEL269 LABEL204: iload 0 iconst 105 @@ -276,36 +276,45 @@ LABEL208: LABEL212: invoke 76 LABEL213: - jump LABEL262 + jump LABEL269 LABEL214: iload 0 iconst 80 if_icmpeq LABEL218 - jump LABEL256 + jump LABEL263 LABEL218: + iconst 40697935 + iconst 1 + cc_find + iconst 1 + if_icmpeq LABEL224 + jump LABEL225 +LABEL224: + return +LABEL225: get_varc_string 356 string_length iconst 0 - if_icmpgt LABEL223 - jump LABEL243 -LABEL223: + if_icmpgt LABEL230 + jump LABEL250 +LABEL230: get_varc_string 356 friend_test iconst 1 - if_icmpeq LABEL228 - jump LABEL231 -LABEL228: + if_icmpeq LABEL235 + jump LABEL238 +LABEL235: get_varc_string 356 invoke 107 return -LABEL231: +LABEL238: get_varc_int 60 clientclock - if_icmpgt LABEL235 - jump LABEL236 -LABEL235: + if_icmpgt LABEL242 + jump LABEL243 +LABEL242: return -LABEL236: +LABEL243: clientclock iconst 50 add @@ -313,14 +322,14 @@ LABEL236: sconst "That player was not found on your Friends list." mes return -LABEL243: +LABEL250: get_varc_int 60 clientclock - if_icmpgt LABEL247 - jump LABEL248 -LABEL247: + if_icmpgt LABEL254 + jump LABEL255 +LABEL254: return -LABEL248: +LABEL255: clientclock iconst 50 add @@ -328,8 +337,8 @@ LABEL248: sconst "You haven't received any messages to which you can reply." mes return - jump LABEL262 -LABEL256: + jump LABEL269 +LABEL263: get_varc_string 335 iconst 0 iload 0 @@ -341,9 +350,9 @@ LABEL256: runelite_callback ; if_icmpeq SKIPSETVARC ; skip setting varc with input set_varc_string 335 - jump LABEL262 ; jump over SKIPSETVARC + jump LABEL269 ; jump over SKIPSETVARC SKIPSETVARC: pop_string ; pop message -LABEL262: +LABEL269: invoke 223 return 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 1918bb5f45..2c47403bbd 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 @@ -68,10 +68,18 @@ public interface RSActor extends RSRenderable, Actor @Override void setAnimation(int animation); + @Import("sequenceFrame") + @Override + int getAnimationFrame(); + @Import("sequenceFrame") @Override int getActionFrame(); + @Import("sequenceFrame") + @Override + void setAnimationFrame(int frame); + @Import("sequenceFrame") @Override void setActionFrame(int frame); @@ -167,32 +175,14 @@ public interface RSActor extends RSRenderable, Actor @Override int getWalkAnimation(); - // TODO: Remove next major - @Deprecated - @Import("walkBackSequence") - @Override - int getWalkBackAnimation(); - @Import("walkBackSequence") @Override int getWalkRotate180(); - // TODO: Remove next major - @Deprecated - @Import("walkLeftSequence") - @Override - int getWalkLeftAnimation(); - @Import("walkLeftSequence") @Override int getWalkRotateLeft(); - // TODO: Remove next major - @Deprecated - @Import("walkRightSequence") - @Override - int getWalkRightAnimation(); - @Import("walkRightSequence") @Override int getWalkRotateRight();