diff --git a/docs/api/Mouse.md b/docs/api/Mouse.md new file mode 100644 index 00000000000..4ad1aac9201 --- /dev/null +++ b/docs/api/Mouse.md @@ -0,0 +1,96 @@ +# Mouse Class Documentation + +## [Back](development.md) + +## Overview +The `Mouse` class defines the abstract interface for mouse interactions. It provides methods for clicking, moving, scrolling, and dragging the mouse. + +## Methods + +### `click` +- **Signature**: `public abstract Mouse click()` +- **Description**: Performs a left click at the current mouse position. + +### `click` +- **Signature**: `public abstract Mouse click(int x, int y)` +- **Description**: Clicks at the specified X and Y coordinates. + +### `click` +- **Signature**: `public abstract Mouse click(int x, int y, boolean rightClick)` +- **Description**: Clicks at the specified X and Y coordinates, optionally using a right click. + +### `click` +- **Signature**: `public abstract Mouse click(Point point)` +- **Description**: Clicks at the specified `Point`. + +### `click` +- **Signature**: `public abstract Mouse click(Point point, boolean rightClick)` +- **Description**: Clicks at the specified `Point`, optionally using a right click. + +### `click` +- **Signature**: `public abstract Mouse click(Point point, NewMenuEntry entry)` +- **Description**: Clicks at the specified `Point` associated with a `NewMenuEntry`. + +### `click` +- **Signature**: `public abstract Mouse click(Rectangle rectangle)` +- **Description**: Clicks at a random point within the specified `Rectangle`. + +### `click` +- **Signature**: `public abstract Mouse click(double x, double y)` +- **Description**: Clicks at the specified double coordinates. + +### `drag` +- **Signature**: `public abstract Mouse drag(Point startPoint, Point endPoint)` +- **Description**: Drags the mouse from the start point to the end point. + +### `getCanvas` +- **Signature**: `public Canvas getCanvas()` +- **Description**: Retrieves the game canvas. + +### `getMousePosition` +- **Signature**: `public abstract java.awt.Point getMousePosition()` +- **Description**: Gets the current position of the mouse. + +### `getRainbowColor` +- **Signature**: `public Color getRainbowColor()` +- **Description**: Generates a rainbow color cycling through hues. + +### `move` +- **Signature**: `public abstract Mouse move(int x, int y)` +- **Description**: Moves the mouse to the specified X and Y coordinates. + +### `move` +- **Signature**: `public abstract Mouse move(Point point)` +- **Description**: Moves the mouse to the specified `Point`. + +### `move` +- **Signature**: `public abstract Mouse move(Rectangle rect)` +- **Description**: Moves the mouse to a random point within the specified `Rectangle`. + +### `move` +- **Signature**: `public abstract Mouse move(double x, double y)` +- **Description**: Moves the mouse to the specified double coordinates. + +### `move` +- **Signature**: `public abstract Mouse move(Polygon polygon)` +- **Description**: Moves the mouse to a point within the specified `Polygon`. + +### `randomizeClick` +- **Signature**: `public int randomizeClick()` +- **Description**: Generates a random offset for clicking. + +### `scrollDown` +- **Signature**: `public abstract Mouse scrollDown(Point point)` +- **Description**: Scrolls down at the specified `Point`. + +### `scrollUp` +- **Signature**: `public abstract Mouse scrollUp(Point point)` +- **Description**: Scrolls up at the specified `Point`. + +### `setLastClick` +- **Signature**: `public abstract void setLastClick(Point point)` +- **Description**: Sets the last click position. + +### `setLastMove` +- **Signature**: `public abstract void setLastMove(Point point)` +- **Description**: Sets the last move position. diff --git a/docs/api/NewMenuEntry.md b/docs/api/NewMenuEntry.md new file mode 100644 index 00000000000..1efe2f52c67 --- /dev/null +++ b/docs/api/NewMenuEntry.md @@ -0,0 +1,145 @@ +# NewMenuEntry Class Documentation + +## [Back](development.md) + +## Overview +The `NewMenuEntry` class implements the `MenuEntry` interface and serves as a builder for creating and configuring menu entries. It allows for fluent chaining of methods to set properties like option, target, identifier, type, and more. + +## Constructors + +### `NewMenuEntry()` +- **Description**: Creates a new, empty `NewMenuEntry`. + +### `NewMenuEntry(int param0, int param1, int opcode, int identifier, int itemId, String target)` +- **Description**: Creates a new `NewMenuEntry` with specified parameters. + +### `NewMenuEntry(int param0, int param1, int opcode, int identifier, int itemId, String target, int worldViewId)` +- **Description**: Creates a new `NewMenuEntry` with specified parameters including world view ID. + +### `NewMenuEntry(int param0, int param1, int opcode, int identifier, int itemId, String target, Actor actor)` +- **Description**: Creates a new `NewMenuEntry` for an actor interaction with default option "Use". + +### `NewMenuEntry(int param0, int param1, int opcode, int identifier, int itemId, String target, Actor actor, String option)` +- **Description**: Creates a new `NewMenuEntry` for an actor interaction with a specified option. + +### `NewMenuEntry(int param0, int param1, int opcode, int identifier, int itemId, String option, String target, TileObject gameObject)` +- **Description**: Creates a new `NewMenuEntry` for a game object interaction. + +### `NewMenuEntry(int param0, int param1, int opcode, int identifier, int itemId, String option, String target, TileObject gameObject, int worldViewId)` +- **Description**: Creates a new `NewMenuEntry` for a game object interaction including world view ID. + +### `NewMenuEntry(String option, int param0, int param1, int opcode, int identifier, int itemId, String target)` +- **Description**: Creates a new `NewMenuEntry` with specified option and parameters. + +### `NewMenuEntry(String option, String target, int identifier, MenuAction type, int param0, int param1, boolean forceLeftClick)` +- **Description**: Creates a new `NewMenuEntry` with full specification. + +## Methods + +### `actor` +- **Signature**: `public NewMenuEntry actor(Actor actor)` +- **Description**: Sets the actor for the menu entry. + +### `findIdentifier` +- **Signature**: `public static int findIdentifier(int menuOption)` +- **Description**: Calculates the identifier for a given menu option using the default offset of +6. + +### `findIdentifier` +- **Signature**: `public static int findIdentifier(int menuOption, int offset)` +- **Description**: Calculates the identifier for a given menu option using a custom offset. + +### `forceLeftClick` +- **Signature**: `public NewMenuEntry forceLeftClick(boolean forceLeftClick)` +- **Description**: Sets whether the menu entry should force a left click. + +### `gameObject` +- **Signature**: `public NewMenuEntry gameObject(TileObject gameObject)` +- **Description**: Sets the game object for the menu entry. + +### `getActor` +- **Signature**: `public Actor getActor()` +- **Description**: Retrieves the actor associated with the menu entry. + +### `getGameObject` +- **Signature**: `public TileObject getGameObject()` +- **Description**: Retrieves the game object associated with the menu entry. + +### `getIdentifier` +- **Signature**: `public int getIdentifier()` +- **Description**: Gets the identifier of the menu entry. + +### `getItemId` +- **Signature**: `public int getItemId()` +- **Description**: Gets the item ID associated with the menu entry. + +### `getNpc` +- **Signature**: `public NPC getNpc()` +- **Description**: Retrieves the NPC if the actor is an NPC. + +### `getOption` +- **Signature**: `public String getOption()` +- **Description**: Gets the option text of the menu entry. + +### `getParam0` +- **Signature**: `public int getParam0()` +- **Description**: Gets the first parameter of the menu entry. + +### `getParam1` +- **Signature**: `public int getParam1()` +- **Description**: Gets the second parameter of the menu entry. + +### `getPlayer` +- **Signature**: `public Player getPlayer()` +- **Description**: Retrieves the Player if the actor is a Player. + +### `getTarget` +- **Signature**: `public String getTarget()` +- **Description**: Gets the target text of the menu entry. + +### `getType` +- **Signature**: `public MenuAction getType()` +- **Description**: Gets the menu action type. + +### `getWidget` +- **Signature**: `public Widget getWidget()` +- **Description**: Retrieves the widget associated with the menu entry. + +### `identifier` +- **Signature**: `public NewMenuEntry identifier(int identifier)` +- **Description**: Sets the identifier for the menu entry. + +### `itemId` +- **Signature**: `public NewMenuEntry itemId(int itemId)` +- **Description**: Sets the item ID for the menu entry. + +### `opcode` +- **Signature**: `public NewMenuEntry opcode(int opcode)` +- **Description**: Sets the menu action type using an opcode ID. + +### `option` +- **Signature**: `public NewMenuEntry option(String option)` +- **Description**: Sets the option text for the menu entry. + +### `param0` +- **Signature**: `public NewMenuEntry param0(int param0)` +- **Description**: Sets the first parameter for the menu entry. + +### `param1` +- **Signature**: `public NewMenuEntry param1(int param1)` +- **Description**: Sets the second parameter for the menu entry. + +### `target` +- **Signature**: `public NewMenuEntry target(String target)` +- **Description**: Sets the target text for the menu entry. + +### `type` +- **Signature**: `public NewMenuEntry type(MenuAction type)` +- **Description**: Sets the menu action type. + +### `widget` +- **Signature**: `public NewMenuEntry widget(Widget widget)` +- **Description**: Sets the widget for the menu entry. + +### `worldViewId` +- **Signature**: `public NewMenuEntry worldViewId(int worldViewId)` +- **Description**: Sets the world view ID for the menu entry. diff --git a/docs/api/Rs2Antiban.md b/docs/api/Rs2Antiban.md new file mode 100644 index 00000000000..9f7fd633567 --- /dev/null +++ b/docs/api/Rs2Antiban.md @@ -0,0 +1,76 @@ +# Rs2Antiban Class Documentation + +## [Back](development.md) + +## Overview +The `Rs2Antiban` class provides a comprehensive anti-ban system that simulates human-like behavior during various in-game activities. This system includes features such as mouse fatigue, random intervals, micro-breaks, action cooldowns, and contextually aware mouse movements, all aimed at reducing the risk of detection. + +## Methods + +### `actionCooldown` +- **Signature**: `public static void actionCooldown()` +- **Description**: Handles the execution of an action cooldown based on anti-ban behaviors. Controls the flow for activating the cooldown either with certainty or based on a chance. Includes logic to adjust behaviors such as non-linear intervals, behavioral variability, and random mouse movements. + +### `activateAntiban` +- **Signature**: `public static void activateAntiban()` +- **Description**: Activates the antiban system. + +### `checkForCookingEvent` +- **Signature**: `public static boolean checkForCookingEvent(ChatMessage event)` +- **Description**: Checks if a chat message corresponds to a cooking event. + +### `deactivateAntiban` +- **Signature**: `public static void deactivateAntiban()` +- **Description**: Deactivates the antiban system. + +### `isIdle` +- **Signature**: `public static boolean isIdle()` +- **Description**: Checks if the player is currently idle. + +### `isIdleTooLong` +- **Signature**: `public static boolean isIdleTooLong(int timeoutTicks)` +- **Description**: Checks if the player has been idle for too long based on a specified timeout in ticks. + +### `isMining` +- **Signature**: `public static boolean isMining()` +- **Description**: Checks if the player is currently performing a mining animation. + +### `isWoodcutting` +- **Signature**: `public static boolean isWoodcutting()` +- **Description**: Checks if the player is currently performing a woodcutting animation. + +### `moveMouseOffScreen` +- **Signature**: `public static void moveMouseOffScreen()` +- **Description**: Moves the mouse off the screen with a 100% chance to trigger. Used to simulate a user taking a break. + +### `moveMouseOffScreen` +- **Signature**: `public static void moveMouseOffScreen(double chance)` +- **Description**: Moves the mouse off the screen based on a specified chance percentage. + +### `moveMouseRandomly` +- **Signature**: `public static void moveMouseRandomly()` +- **Description**: Moves the mouse randomly based on the settings. Used to simulate natural mouse behavior. + +### `renderAntibanOverlayComponents` +- **Signature**: `public static void renderAntibanOverlayComponents(PanelComponent panelComponent)` +- **Description**: Renders an overlay component that displays various anti-ban settings and information within a panel. Populates a `PanelComponent` with details regarding the current anti-ban system's state. + +### `resetAntibanSettings` +- **Signature**: `public static void resetAntibanSettings()` +- **Description**: Resets all antiban settings to their default values. + +### `resetAntibanSettings` +- **Signature**: `public static void resetAntibanSettings(boolean forceReset)` +- **Description**: Resets all antiban settings, optionally forcing the reset even if overwrite settings are disabled. + +### `setActivity` +- **Signature**: `public static void setActivity(@NotNull Activity activity)` +- **Description**: Sets the current activity and adjusts antiban settings based on the activity type. + +### `setActivityIntensity` +- **Signature**: `public static void setActivityIntensity(ActivityIntensity activityIntensity)` +- **Description**: Sets the intensity level of the current activity. + +### `takeMicroBreakByChance` +- **Signature**: `public static boolean takeMicroBreakByChance()` +- **Description**: Attempts to trigger a micro-break based on a random chance, as configured in settings. Simulates human-like pauses. diff --git a/docs/api/Rs2Cannon.md b/docs/api/Rs2Cannon.md index 6f11096fba2..db815fe4b42 100644 --- a/docs/api/Rs2Cannon.md +++ b/docs/api/Rs2Cannon.md @@ -1,3 +1,20 @@ +# Rs2Cannon Class Documentation + ## [Back](development.md) -TODO \ No newline at end of file +## Overview +The `Rs2Cannon` class provides utility methods for interacting with the Dwarf Multicannon, including refilling and repairing it. + +## Methods + +### `refill` +- **Signature**: `public static boolean refill()` +- **Description**: Refills the cannon with a random amount of cannonballs (between 10 and 15) if the current ammo count is low. + +### `refill` +- **Signature**: `public static boolean refill(int cannonRefillAmount)` +- **Description**: Refills the cannon if the current ammo count is less than or equal to the specified `cannonRefillAmount`. Checks for cannonballs in inventory and interacts with the cannon. + +### `repair` +- **Signature**: `public static boolean repair()` +- **Description**: Repairs a broken multicannon. Finds the broken cannon object and interacts with it using the "Repair" option. diff --git a/docs/api/Rs2DepositBox.md b/docs/api/Rs2DepositBox.md new file mode 100644 index 00000000000..6fb2d49a1df --- /dev/null +++ b/docs/api/Rs2DepositBox.md @@ -0,0 +1,160 @@ +# Rs2DepositBox Class Documentation + +## [Back](development.md) + +## Overview +The `Rs2DepositBox` class provides utility methods for interacting with deposit boxes in the game, including opening, closing, and depositing items. + +## Methods + +### `bankItemsAndWalkBackToOriginalPosition` +- **Signature**: `public static boolean bankItemsAndWalkBackToOriginalPosition(List itemNames, WorldPoint initialPlayerLocation)` +- **Description**: Banks items if the inventory does not have enough empty slots. Will walk back to the initial player location. + +### `bankItemsAndWalkBackToOriginalPosition` +- **Signature**: `public static boolean bankItemsAndWalkBackToOriginalPosition(List itemNames, WorldPoint initialPlayerLocation, int emptySlotCount)` +- **Description**: Banks items if your inventory does not have enough empty slots. Will walk back to the initial player location. + +### `bankItemsAndWalkBackToOriginalPosition` +- **Signature**: `public static boolean bankItemsAndWalkBackToOriginalPosition(List itemNames, WorldPoint initialPlayerLocation, int emptySlotCount, int distance)` +- **Description**: Banks items if the inventory does not have enough empty slots. Will walk back to the initial player location, allowing a specified distance deviation. + +### `bankItemsAndWalkBackToOriginalPosition` +- **Signature**: `public static boolean bankItemsAndWalkBackToOriginalPosition(List itemNames, boolean exactItemNames, WorldPoint initialPlayerLocation, int emptySlotCount, int distance)` +- **Description**: Banks items at a deposit box if the inventory does not have enough empty slots. Will walk back to the initial player location. Supports exact or partial item name matching. + +### `closeDepositBox` +- **Signature**: `public static boolean closeDepositBox()` +- **Description**: Closes the deposit box interface. + +### `depositAll` +- **Signature**: `public static void depositAll()` +- **Description**: Deposits all items from the inventory into the deposit box. + +### `depositAll` +- **Signature**: `public static boolean depositAll(Integer... ids)` +- **Description**: Deposits only the inventory items that match the specified IDs. + +### `depositAll` +- **Signature**: `public static boolean depositAll(List names)` +- **Description**: Deposits all inventory items that match the specified names (partial match). + +### `depositAll` +- **Signature**: `public static boolean depositAll(List names, boolean exact)` +- **Description**: Deposits all inventory items that match the specified names with option for exact match. + +### `depositAll` +- **Signature**: `public static boolean depositAll(Predicate predicate)` +- **Description**: Deposits all inventory items that match the given predicate. + +### `depositAll` +- **Signature**: `public static boolean depositAll(String... names)` +- **Description**: Deposits all inventory items that match the specified names (partial match). + +### `depositAllExcept` +- **Signature**: `public static boolean depositAllExcept(Integer... ids)` +- **Description**: Deposits all inventory items except those with the specified IDs. + +### `depositAllExcept` +- **Signature**: `public static boolean depositAllExcept(List names)` +- **Description**: Deposits all inventory items excluding items with the specified names (partial match). + +### `depositAllExcept` +- **Signature**: `public static boolean depositAllExcept(List names, boolean exact)` +- **Description**: Deposits all inventory items excluding items with the specified names with option for exact match. + +### `depositAllExcept` +- **Signature**: `public static boolean depositAllExcept(String... names)` +- **Description**: Deposits all inventory items except those with the specified names. + +### `depositEquipment` +- **Signature**: `public static void depositEquipment()` +- **Description**: Deposits all equipment into the deposit box. + +### `depositOne` +- **Signature**: `public static void depositOne(int itemId)` +- **Description**: Deposits a specific item by its ID. + +### `depositOne` +- **Signature**: `public static void depositOne(Rs2ItemModel rs2Item)` +- **Description**: Deposits a specific item by its `Rs2ItemModel` reference. + +### `depositOne` +- **Signature**: `public static void depositOne(String itemName)` +- **Description**: Deposits a specific item by its name (partial match). + +### `depositOne` +- **Signature**: `public static void depositOne(String itemName, boolean exact)` +- **Description**: Deposits a specific item by its name with option for exact match. + +### `depositX` +- **Signature**: `public static void depositX(int itemId, int amount)` +- **Description**: Deposits a specified quantity of an item by its ID. + +### `depositX` +- **Signature**: `public static void depositX(Rs2ItemModel rs2Item, int amount)` +- **Description**: Deposits a specified quantity of an item by its `Rs2ItemModel` reference. + +### `depositX` +- **Signature**: `public static void depositX(String itemName, int amount)` +- **Description**: Deposits a specified quantity of an item by its name (partial match). + +### `depositX` +- **Signature**: `public static void depositX(String itemName, int amount, boolean exact)` +- **Description**: Deposits a specified quantity of an item by its name with option for exact match. + +### `getDepositBoxBounds` +- **Signature**: `public static Rectangle getDepositBoxBounds()` +- **Description**: Retrieves the bounding rectangle of the deposit box widget. + +### `getDepositBoxWidget` +- **Signature**: `public static Widget getDepositBoxWidget()` +- **Description**: Retrieves the widget for the deposit box if it is currently open. + +### `getItems` +- **Signature**: `public static List getItems()` +- **Description**: Retrieves the list of item widgets in the deposit box container. + +### `getItemWidget` +- **Signature**: `public static Widget getItemWidget(int slotId)` +- **Description**: Retrieves the widget of an item based on the specified slot ID in the deposit box. + +### `getNearestDepositBox` +- **Signature**: `public static DepositBoxLocation getNearestDepositBox()` +- **Description**: Returns the nearest accessible deposit box to the local player’s current location. + +### `getNearestDepositBox` +- **Signature**: `public static DepositBoxLocation getNearestDepositBox(WorldPoint worldPoint)` +- **Description**: Returns the nearest accessible deposit box to the specified world point. + +### `getNearestDepositBox` +- **Signature**: `public static DepositBoxLocation getNearestDepositBox(WorldPoint worldPoint, int maxObjectSearchRadius)` +- **Description**: Finds the nearest accessible deposit box from the given world point, scanning for objects or using pathfinding. + +### `isOpen` +- **Signature**: `public static boolean isOpen()` +- **Description**: Checks if the deposit box interface is open. + +### `itemBounds` +- **Signature**: `public static Rectangle itemBounds(Rs2ItemModel rs2Item)` +- **Description**: Gets the bounding rectangle for the slot of the specified item in the deposit box. + +### `openDepositBox` +- **Signature**: `public static boolean openDepositBox()` +- **Description**: Opens the deposit box interface by interacting with a nearby deposit box. + +### `walkToAndUseDepositBox` +- **Signature**: `public static boolean walkToAndUseDepositBox()` +- **Description**: Walks to the nearest deposit box location and opens it. + +### `walkToAndUseDepositBox` +- **Signature**: `public static boolean walkToAndUseDepositBox(DepositBoxLocation depositBoxLocation)` +- **Description**: Walks to the specified deposit box location and opens it. + +### `walkToDepositBox` +- **Signature**: `public static boolean walkToDepositBox()` +- **Description**: Walks to the nearest deposit box location. + +### `walkToDepositBox` +- **Signature**: `public static boolean walkToDepositBox(DepositBoxLocation depositBoxLocation)` +- **Description**: Walks to the specified deposit box location. diff --git a/docs/api/Rs2Farming.md b/docs/api/Rs2Farming.md new file mode 100644 index 00000000000..7fe00a5efb7 --- /dev/null +++ b/docs/api/Rs2Farming.md @@ -0,0 +1,80 @@ +# Rs2Farming Class Documentation + +## [Back](development.md) + +## Overview +The `Rs2Farming` class provides utility methods for farming operations, including retrieving farming patches, checking patch states, and managing farming-related tasks. + +## Methods + +### `getClosestPatch` +- **Signature**: `public static Optional getClosestPatch(List patches)` +- **Description**: Finds the closest patch to the player's current location from a list of patches. + +### `getEmptyPatches` +- **Signature**: `public static List getEmptyPatches(List patches)` +- **Description**: Gets empty patches ready for planting from a list of patches. + +### `getFruitTreePatches` +- **Signature**: `public static List getFruitTreePatches()` +- **Description**: Get all fruit tree farming patches. + +### `getHarvestablePatches` +- **Signature**: `public static List getHarvestablePatches(List patches)` +- **Description**: Gets patches that are healthy and ready for harvest from a list of patches. + +### `getHerbPatches` +- **Signature**: `public static List getHerbPatches()` +- **Description**: Get all herb farming patches. + +### `getPatchByRegionAndVarbit` +- **Signature**: `public static Optional getPatchByRegionAndVarbit(String regionName, int varbit)` +- **Description**: Get a patch by its region name and varbit for unique identification. + +### `getPatchesByTab` +- **Signature**: `public static List getPatchesByTab(Tab tab)` +- **Description**: Get all farming patches of a specific type (tab). + +### `getPatchesNeedingAttention` +- **Signature**: `public static List getPatchesNeedingAttention(List patches)` +- **Description**: Gets patches that need attention (diseased or dead) from a list of patches. + +### `getPatchesWithinDistance` +- **Signature**: `public static List getPatchesWithinDistance(List patches, WorldPoint location, int maxDistance)` +- **Description**: Get patches within a certain distance of a location. + +### `getReadyPatches` +- **Signature**: `public static List getReadyPatches(List patches)` +- **Description**: Get patches that are ready for action (not growing). This includes harvestable, diseased, dead, or empty patches. + +### `getSpiritTreePatches` +- **Signature**: `public static List getSpiritTreePatches()` +- **Description**: Get all spirit tree farming patches. + +### `getTreePatches` +- **Signature**: `public static List getTreePatches()` +- **Description**: Get all tree farming patches (regular trees). + +### `hasQuestRequirement` +- **Signature**: `public static boolean hasQuestRequirement(QuestState questState)` +- **Description**: Check if player has completed required quests for farming. + +### `hasRequiredFarmingLevel` +- **Signature**: `public static boolean hasRequiredFarmingLevel(int requiredLevel)` +- **Description**: Check if player has the required farming level for a specific patch type. + +### `isFarmingSystemReady` +- **Signature**: `public static boolean isFarmingSystemReady()` +- **Description**: Check if farming tracking is properly initialized. + +### `isPatchAccessible` +- **Signature**: `public static boolean isPatchAccessible(FarmingPatch patch, int maxDistance)` +- **Description**: Check if a patch is accessible (player is within range). + +### `logPatchStates` +- **Signature**: `public static void logPatchStates(List patches)` +- **Description**: Log farming patch states for debugging. + +### `predictPatchState` +- **Signature**: `public static CropState predictPatchState(FarmingPatch patch)` +- **Description**: Predict the state of a farming patch based on time tracking data. diff --git a/docs/api/Rs2GameObject.md b/docs/api/Rs2GameObject.md index 9dd9b1a74a9..e130e767bbd 100644 --- a/docs/api/Rs2GameObject.md +++ b/docs/api/Rs2GameObject.md @@ -1,5 +1,23 @@ # Rs2GameObject Class Documentation ## [Back](development.md) + +> **Deprecated:** `Rs2GameObject` is deprecated and marked for removal. Use the **Queryable API** via `Microbot.getRs2TileObjectCache().query()` instead. It provides a fluent, type-safe interface with better performance through tick-based caching. +> +> See the [Queryable API Documentation & Migration Guide](../../runelite-client/src/main/java/net/runelite/client/plugins/microbot/api/QUERYABLE_API.md#migration-guide) for migration steps and side-by-side examples. +> +> **Quick comparison:** +> ```java +> // Legacy (deprecated) +> TileObject tree = Rs2GameObject.findObject("Tree"); +> Rs2GameObject.interact(tree, "Chop down"); +> +> // Queryable API (recommended) +> Rs2TileObjectModel tree = Microbot.getRs2TileObjectCache().query() +> .withName("Tree") +> .nearest(); +> tree.click("Chop down"); +> ``` + ## Overview The `Rs2GameObject` class provides methods to interact with game objects within the game environment. It offers functionalities to locate, interact, and manipulate game objects based on various criteria like ID, name, or location. diff --git a/docs/api/Rs2Gembag.md b/docs/api/Rs2Gembag.md new file mode 100644 index 00000000000..c6e85c1d8bc --- /dev/null +++ b/docs/api/Rs2Gembag.md @@ -0,0 +1,56 @@ +# Rs2Gembag Class Documentation + +## [Back](development.md) + +## Overview +The `Rs2Gembag` class manages the state and interactions with the Gem Bag. It tracks the contents of the gem bag based on chat messages and inventory interactions. + +## Methods + +### `checkGemBag` +- **Signature**: `public static void checkGemBag()` +- **Description**: Initiates checking the gem bag contents. Interacts with the gem bag to "Check" it, which triggers a chat message with the contents. + +### `getGemBagContents` +- **Signature**: `public static List getGemBagContents()` +- **Description**: Retrieves the current list of items believed to be in the gem bag. + +### `getGemBagItemIds` +- **Signature**: `public static List getGemBagItemIds()` +- **Description**: Returns the list of item IDs that correspond to the gem bag (open and closed). + +### `getGemCount` +- **Signature**: `public static int getGemCount(String gem)` +- **Description**: Gets the count of a specific gem in the gem bag by its name. Returns 0 if the gem bag is missing or contents are unknown. + +### `getTotalGemCount` +- **Signature**: `public static int getTotalGemCount()` +- **Description**: Gets the total count of all gems currently stored in the gem bag. + +### `hasGemBag` +- **Signature**: `public static boolean hasGemBag()` +- **Description**: Checks if the player has a gem bag in their inventory. + +### `isAnyGemSlotFull` +- **Signature**: `public static boolean isAnyGemSlotFull()` +- **Description**: Checks if any gem slot in the gem bag is full (quantity 60). + +### `isGemBagOpen` +- **Signature**: `public static boolean isGemBagOpen()` +- **Description**: Checks if the gem bag is currently open (based on item ID). + +### `isUnknown` +- **Signature**: `public static boolean isUnknown()` +- **Description**: Checks if the contents of the gem bag are currently unknown (e.g., haven't been checked yet). + +### `onChatMessage` +- **Signature**: `public static void onChatMessage(ChatMessage event)` +- **Description**: Handles chat messages to update gem bag contents. Listens for messages indicating gems found or the "Check" message from the gem bag. + +### `onMenuOptionClicked` +- **Signature**: `public static void onMenuOptionClicked(MenuOptionClicked event)` +- **Description**: Handles menu option clicks related to the gem bag, such as "Empty" or "Fill", to update the internal state of the bag contents. + +### `resetGemBagContents` +- **Signature**: `public static void resetGemBagContents()` +- **Description**: Clears the internal record of the gem bag contents. diff --git a/docs/api/Rs2GrandExchange.md b/docs/api/Rs2GrandExchange.md new file mode 100644 index 00000000000..7757c23a93c --- /dev/null +++ b/docs/api/Rs2GrandExchange.md @@ -0,0 +1,232 @@ +# Rs2GrandExchange Class Documentation + +## [Back](development.md) + +## Overview +The `Rs2GrandExchange` class provides methods for interacting with the Grand Exchange in the game. It allows for buying, selling, collecting offers, and managing Grand Exchange slots. + +## Methods + +### `abortAllOffers` +- **Signature**: `public static boolean abortAllOffers(boolean collectToBank)` +- **Description**: Aborts all active Grand Exchange offers. Iterates through all Grand Exchange slots and attempts to abort any active offers. After aborting, collects all items from the Grand Exchange interface. + +### `abortOffer` +- **Signature**: `public static boolean abortOffer(String name, boolean collectToBank)` +- **Description**: Aborts an active Grand Exchange offer for the specified item name. Attempts to locate a non-available Grand Exchange slot containing an offer matching the given item name (case-insensitive). If found, sends an "Abort offer" action. After aborting, collects all items from the Grand Exchange. + +### `backToOverview` +- **Signature**: `public static void backToOverview()` +- **Description**: Clicks the back button to go from the buy/sell offer screen to the all slots overview. + +### `buyItem` +- **Signature**: `public static boolean buyItem(String itemName, int price, int quantity)` +- **Description**: Creates and processes a request to buy an item on the Grand Exchange. Constructs a `BUY` type request using the specified item name, price, and quantity. + +### `cancelSpecificOffers` +- **Signature**: `public static List> cancelSpecificOffers(List slotsToCancel, boolean collectToBank)` +- **Description**: Cancels only specific Grand Exchange slots instead of all offers. Returns details of cancelled offers for potential restoration. + +### `closeExchange` +- **Signature**: `public static void closeExchange()` +- **Description**: Closes the Grand Exchange interface. + +### `collectAll` +- **Signature**: `public static boolean collectAll(boolean collectToBank)` +- **Description**: Collects all completed Grand Exchange offers either into the bank or inventory. Checks if all slots are empty first. If the inventory is full, attempts to open the bank and deposit all items before continuing. + +### `collectAllToBank` +- **Signature**: `public static boolean collectAllToBank()` +- **Description**: Collects all completed Grand Exchange offers directly into the bank. Convenience method calling `collectAll(true)`. + +### `collectAllToInventory` +- **Signature**: `public static boolean collectAllToInventory()` +- **Description**: Collects all completed Grand Exchange offers into the inventory. Convenience method calling `collectAll(false)`. + +### `collectOffer` +- **Signature**: `public static boolean collectOffer(GrandExchangeSlots slot, boolean toBank)` +- **Description**: Collects items from a specific Grand Exchange slot. + +### `collectOfferAndGetQuantity` +- **Signature**: `public static int collectOfferAndGetQuantity(GrandExchangeSlots slot, boolean toBank, int itemId)` +- **Description**: Collects a specific offer and returns the exact number of items obtained. Tracks the actual quantity collected. + +### `findSlotForItem` +- **Signature**: `public static GrandExchangeSlots findSlotForItem(int itemId, boolean isSelling)` +- **Description**: Finds the Grand Exchange slot currently holding an offer for the specified item ID. + +### `findSlotForItem` +- **Signature**: `public static GrandExchangeSlots findSlotForItem(String itemName, boolean isSelling)` +- **Description**: Finds the Grand Exchange slot currently holding an offer for the specified item name. + +### `getActiveOfferSlots` +- **Signature**: `public static GrandExchangeSlots[] getActiveOfferSlots()` +- **Description**: Returns all slots with active offers. + +### `getAdaptiveBuyPrice` +- **Signature**: `public static int getAdaptiveBuyPrice(int itemId, double basePercentage, int retryAttempt)` +- **Description**: Calculates an intelligent buy price based on market conditions and retry attempts. + +### `getAdaptiveSellPrice` +- **Signature**: `public static int getAdaptiveSellPrice(int itemId, double basePercentage, int retryAttempt)` +- **Description**: Calculates an intelligent sell price based on market conditions and retry attempts. + +### `getAvailableSlot` +- **Signature**: `public static GrandExchangeSlots getAvailableSlot()` +- **Description**: Retrieves the first available Grand Exchange slot. + +### `getAvailableSlots` +- **Signature**: `public static GrandExchangeSlots[] getAvailableSlots()` +- **Description**: Retrieves all currently available Grand Exchange slots. + +### `getAvailableSlotsCount` +- **Signature**: `public static int getAvailableSlotsCount()` +- **Description**: Returns the count of currently available Grand Exchange slots. + +### `getAveragePrice` +- **Signature**: `public static int getAveragePrice(int itemId)` +- **Description**: Gets average price over the last hour. + +### `getAveragePrice` +- **Signature**: `public static int getAveragePrice(int itemId, TimeSeriesInterval interval)` +- **Description**: Gets average price over a specific time period using time-series data. + +### `getBuyingVolume` +- **Signature**: `public static int getBuyingVolume(int itemId)` +- **Description**: Gets the buying volume for an item from GE Tracker. + +### `getCompletedOffers` +- **Signature**: `public static Map getCompletedOffers()` +- **Description**: Finds and returns all slots that have completed offers ready for collection. + +### `getItemMappingData` +- **Signature**: `public static ItemMappingData getItemMappingData(int itemId)` +- **Description**: Gets item mapping data including trade limits from OSRS Wiki API. + +### `getItemsBoughtFromOffer` +- **Signature**: `public static int getItemsBoughtFromOffer(GrandExchangeSlots slot)` +- **Description**: Gets the exact number of items bought from a specific Grand Exchange slot offer. + +### `getItemsSoldFromOffer` +- **Signature**: `public static int getItemsSoldFromOffer(GrandExchangeSlots slot)` +- **Description**: Gets the exact number of items sold from a specific Grand Exchange slot offer. + +### `getOfferDetails` +- **Signature**: `public static GrandExchangeOfferDetails getOfferDetails(GrandExchangeSlots slot)` +- **Description**: Gets detailed information about a Grand Exchange offer in the specified slot. + +### `getOfferDetailsForCancellation` +- **Signature**: `public static Map getOfferDetailsForCancellation(GrandExchangeSlots slot)` +- **Description**: Enhanced slot management: Gets detailed information about an offer before cancelling it. + +### `getPrice` +- **Signature**: `public static int getPrice(int itemId)` +- **Description**: Gets the overall price for an item from GE Tracker. + +### `getRealTimePrices` +- **Signature**: `public static WikiPrice getRealTimePrices(int itemId)` +- **Description**: Gets real-time price data with caching from OSRS Wiki API (primary) or GE Tracker (fallback). + +### `getSearchResultWidget` +- **Signature**: `public static Pair getSearchResultWidget(String search, boolean exact)` +- **Description**: Searches the Grand Exchange item search results widget for an entry matching the specified search text. + +### `getSellingVolume` +- **Signature**: `public static int getSellingVolume(int itemId)` +- **Description**: Gets the selling volume for an item from GE Tracker. + +### `getSellPrice` +- **Signature**: `public static int getSellPrice(int itemId)` +- **Description**: Gets the selling price for an item from GE Tracker. + +### `getSlotFromIndex` +- **Signature**: `public static GrandExchangeSlots getSlotFromIndex(int index)` +- **Description**: Helper method to get a GrandExchangeSlots enum value from its index. + +### `getSlotIndex` +- **Signature**: `public static int getSlotIndex(GrandExchangeSlots slot)` +- **Description**: Gets the index (0-7) of the slot in the GE interface. + +### `getTimeSeriesData` +- **Signature**: `public static TimeSeriesAnalysis getTimeSeriesData(int itemId, TimeSeriesInterval interval)` +- **Description**: Gets time-series data starting from current time going back. + +### `getTimeSeriesData` +- **Signature**: `public static TimeSeriesAnalysis getTimeSeriesData(int itemId, TimeSeriesInterval interval, Long fromTimestamp)` +- **Description**: Gets time-series price data from OSRS Wiki API. + +### `hasBoughtOffer` +- **Signature**: `public static boolean hasBoughtOffer()` +- **Description**: Checks if any offer has a state of `BOUGHT`. + +### `hasBoughtOffer` +- **Signature**: `public static boolean hasBoughtOffer(GrandExchangeSlots slot)` +- **Description**: Checks if a specific Grand Exchange slot has a completed buy offer ready to collect. + +### `hasFinishedBuyingOffers` +- **Signature**: `public static boolean hasFinishedBuyingOffers()` +- **Description**: Checks if there are bought offers and no buying offers active. + +### `hasFinishedSellingOffers` +- **Signature**: `public static boolean hasFinishedSellingOffers()` +- **Description**: Checks if there are sold offers and no selling offers active. + +### `hasSoldOffer` +- **Signature**: `public static boolean hasSoldOffer()` +- **Description**: Checks if any offer has a state of `SOLD`. + +### `hasSoldOffer` +- **Signature**: `public static boolean hasSoldOffer(GrandExchangeSlots slot)` +- **Description**: Checks if a specific Grand Exchange slot has a completed sell offer ready to collect. + +### `isAllSlotsEmpty` +- **Signature**: `public static boolean isAllSlotsEmpty()` +- **Description**: Checks if all Grand Exchange slots are currently empty (available). + +### `isCancelledOfferWithItems` +- **Signature**: `public static boolean isCancelledOfferWithItems(GrandExchangeSlots slot)` +- **Description**: Checks if an offer was cancelled and still has items that can be collected. + +### `isOfferScreenOpen` +- **Signature**: `public static boolean isOfferScreenOpen()` +- **Description**: Checks if the offer screen (buy/sell offer screen) is open. + +### `isOpen` +- **Signature**: `public static boolean isOpen()` +- **Description**: Checks if the Grand Exchange screen is open. + +### `isSlotAvailable` +- **Signature**: `public static boolean isSlotAvailable(GrandExchangeSlots slot)` +- **Description**: Checks if a specified Grand Exchange slot is available for a new offer. + +### `openExchange` +- **Signature**: `public static boolean openExchange()` +- **Description**: Opens the Grand Exchange. Interacts with the "Grand Exchange Clerk" NPC. Handles bank pin if necessary. + +### `processOffer` +- **Signature**: `public static boolean processOffer(GrandExchangeRequest request)` +- **Description**: Processes a Grand Exchange offer request based on the action specified in the `GrandExchangeRequest`. Supports `COLLECT`, `BUY`, and `SELL` actions. + +### `restoreOffer` +- **Signature**: `public static boolean restoreOffer(Map offerDetails, GrandExchangeSlots targetSlot)` +- **Description**: Attempts to restore a cancelled offer using the provided details. + +### `sellInventory` +- **Signature**: `public static boolean sellInventory()` +- **Description**: Attempts to sell all tradeable items currently in the player's inventory on the Grand Exchange. + +### `sellItem` +- **Signature**: `public static boolean sellItem(String itemName, int quantity, int price)` +- **Description**: Creates and processes a request to sell an item on the Grand Exchange. Constructs a `SELL` type request. + +### `sellLoot` +- **Signature**: `public static boolean sellLoot(String npcName, List itemsToNotSell)` +- **Description**: Sells all the tradeable loot items from a specific NPC name, excluding specified items. + +### `setChatboxValue` +- **Signature**: `public static void setChatboxValue(int value)` +- **Description**: Sets a value in the chatbox input. + +### `walkToGrandExchange` +- **Signature**: `public static boolean walkToGrandExchange()` +- **Description**: Walks to the Grand Exchange location. diff --git a/docs/api/Rs2GroundItem.md b/docs/api/Rs2GroundItem.md index ae4f22fb9ff..9e71c573bd9 100644 --- a/docs/api/Rs2GroundItem.md +++ b/docs/api/Rs2GroundItem.md @@ -1,5 +1,22 @@ # Rs2GroundItem Class Documentation ## [Back](development.md) + +> **Deprecated:** `Rs2GroundItem` is deprecated and marked for removal. Use the **Queryable API** via `Microbot.getRs2TileItemCache().query()` instead. It provides a fluent, type-safe interface with better performance through tick-based caching. +> +> See the [Queryable API Documentation & Migration Guide](../../runelite-client/src/main/java/net/runelite/client/plugins/microbot/api/QUERYABLE_API.md#migration-guide) for migration steps and side-by-side examples. +> +> **Quick comparison:** +> ```java +> // Legacy (deprecated) +> Rs2GroundItem.loot("Dragon bones", 1, 10); +> +> // Queryable API (recommended) +> Rs2TileItemModel bones = Microbot.getRs2TileItemCache().query() +> .withName("Dragon bones") +> .nearest(); +> bones.click("Take"); +> ``` + ## Overview The `Rs2GroundItem` class provides methods to interact with ground items within the game, facilitating operations like picking up, checking existence, and interacting with items based on various criteria such as item ID, name, or location. diff --git a/docs/api/Rs2Npc.md b/docs/api/Rs2Npc.md index 92435925fc9..f06ff50ea35 100644 --- a/docs/api/Rs2Npc.md +++ b/docs/api/Rs2Npc.md @@ -1,5 +1,24 @@ # Rs2Npc Class Documentation ## [Back](development.md) + +> **Deprecated:** `Rs2Npc` is deprecated and marked for removal. Use the **Queryable API** via `Microbot.getRs2NpcCache().query()` instead. It provides a fluent, type-safe interface with better performance through tick-based caching. +> +> See the [Queryable API Documentation & Migration Guide](../../runelite-client/src/main/java/net/runelite/client/plugins/microbot/api/QUERYABLE_API.md#migration-guide) for migration steps and side-by-side examples. +> +> **Quick comparison:** +> ```java +> // Legacy (deprecated) +> NPC banker = Rs2Npc.getNpc("Banker"); +> Rs2Npc.interact(banker, "Bank"); +> +> // Queryable API (recommended) +> Rs2NpcModel banker = Microbot.getRs2NpcCache().query() +> .withName("Banker") +> .where(npc -> !npc.isInteracting()) +> .nearest(); +> banker.click("Bank"); +> ``` + ## Overview The `Rs2Npc` class provides a comprehensive suite of methods for interacting with NPCs within the game. These methods include retrieving NPCs by various attributes, validating NPC interactability, performing actions like attacking or pickpocketing, and handling NPC visibility and targeting through the game's camera and walking systems. diff --git a/docs/api/Rs2Pvp.md b/docs/api/Rs2Pvp.md index 8853d94e879..df0f1f0c82c 100644 --- a/docs/api/Rs2Pvp.md +++ b/docs/api/Rs2Pvp.md @@ -1,2 +1,36 @@ +# Rs2Pvp Class Documentation + ## [Back](development.md) -TODO \ No newline at end of file + +## Overview +The `Rs2Pvp` class provides utility methods for player-vs-player (PVP) related checks, such as wilderness levels, attackability of other players, and risk calculation. + +## Methods + +### `calculateRisk` +- **Signature**: `public static int calculateRisk(Client client, ItemManager itemManager)` +- **Description**: Calculates the total wealth risk of the player based on inventory and equipment. Considers tradeable value and high alchemy value for untradeables. + +### `getWildernessLevelFrom` +- **Signature**: `public static int getWildernessLevelFrom(WorldPoint point)` +- **Description**: Calculates the wilderness level at a specific `WorldPoint`. Handles various wilderness areas including main wilderness, God Wars Dungeon wilderness, underground areas, and specific PVP hotspots like Ferox Enclave or BH craters. + +### `isAttackable` +- **Signature**: `public static boolean isAttackable()` +- **Description**: Checks if there are any players nearby who are attackable by the local player, considering wilderness levels and combat level differences. + +### `isAttackable` +- **Signature**: `public static boolean isAttackable(Player player)` +- **Description**: Checks if a specific `Player` is attackable by the local player. + +### `isAttackable` +- **Signature**: `public static boolean isAttackable(Rs2PlayerModel rs2Player)` +- **Description**: Checks if a specific `Rs2PlayerModel` is attackable by the local player. + +### `isAttackable` +- **Signature**: `public static boolean isAttackable(Rs2PlayerModel rs2Player, boolean isDeadManworld, boolean isPvpWorld, int wildernessLevel)` +- **Description**: Checks if a specific `Rs2PlayerModel` is attackable given specific world conditions and wilderness level. + +### `isInWilderness` +- **Signature**: `public static boolean isInWilderness()` +- **Description**: Checks if the local player is currently in the wilderness based on varbit values. diff --git a/docs/api/Rs2RunePouch.md b/docs/api/Rs2RunePouch.md new file mode 100644 index 00000000000..6c8c81499a4 --- /dev/null +++ b/docs/api/Rs2RunePouch.md @@ -0,0 +1,108 @@ +# Rs2RunePouch Class Documentation + +## [Back](development.md) + +## Overview +The `Rs2RunePouch` class provides utilities to manage and interact with the Rune Pouch. It allows for checking rune contents, loading loadouts, and depositing runes into the bank. + +## Methods + +### `closeRunePouch` +- **Signature**: `public static boolean closeRunePouch()` +- **Description**: Closes the rune pouch interface if it is open. + +### `contains` +- **Signature**: `public static boolean contains(int itemId)` +- **Description**: Checks if the rune pouch contains at least one of the specified rune by item ID. + +### `contains` +- **Signature**: `public static boolean contains(int itemId, boolean allowCombinationRunes)` +- **Description**: Checks if the rune pouch contains at least one of the specified rune by item ID, with optional combination rune support. + +### `contains` +- **Signature**: `public static boolean contains(int itemId, int amt)` +- **Description**: Checks if the rune pouch contains at least the specified quantity of the given rune item ID. + +### `contains` +- **Signature**: `public static boolean contains(int itemId, int amt, boolean allowCombinationRunes)` +- **Description**: Checks if the rune pouch contains at least the specified quantity of the given rune item ID, with optional combination rune support. + +### `contains` +- **Signature**: `public static boolean contains(Map requiredRunes)` +- **Description**: Checks if the rune pouch contains all of the specified runes in the required quantities (strict match). + +### `contains` +- **Signature**: `public static boolean contains(Map requiredRunes, boolean allowCombinationRunes)` +- **Description**: Checks if the rune pouch contains the required runes and their quantities, with optional combination rune support. + +### `contains` +- **Signature**: `public static boolean contains(Runes rune)` +- **Description**: Checks if the rune pouch contains at least one of the specified rune. + +### `contains` +- **Signature**: `public static boolean contains(Runes rune, boolean allowCombinationRunes)` +- **Description**: Checks if the rune pouch contains at least one of the specified rune, with optional combination rune support. + +### `contains` +- **Signature**: `public static boolean contains(Runes rune, int amt)` +- **Description**: Checks if the rune pouch contains at least the specified quantity of the given rune. + +### `contains` +- **Signature**: `public static boolean contains(Runes rune, int amt, boolean allowCombinationRunes)` +- **Description**: Checks if the rune pouch contains at least the specified quantity of the given rune, with optional combination rune support. + +### `depositAll` +- **Signature**: `public static boolean depositAll()` +- **Description**: Deposits all runes from the pouch into the bank. Requires the bank to be open. + +### `fullUpdate` +- **Signature**: `public static void fullUpdate()` +- **Description**: Updates the internal state of the pouch from the current game varbits. + +### `getLoadoutSlots` +- **Signature**: `public static Map> getLoadoutSlots()` +- **Description**: Retrieves the map of loaded pouch slots from the bank interface. + +### `getQuantity` +- **Signature**: `public static int getQuantity(int itemId)` +- **Description**: Retrieves the current quantity of the specified rune item ID in the rune pouch. + +### `getQuantity` +- **Signature**: `public static int getQuantity(Runes rune)` +- **Description**: Retrieves the current quantity of the specified rune in the rune pouch. + +### `getRunes` +- **Signature**: `public static Map getRunes()` +- **Description**: Retrieves the current rune pouch contents as a map of runes and their quantities. + +### `getSlots` +- **Signature**: `public static List getSlots()` +- **Description**: Retrieves the list of current pouch slots. + +### `isEmpty` +- **Signature**: `public static boolean isEmpty()` +- **Description**: Checks if the rune pouch is currently empty. + +### `isRunePouchOpen` +- **Signature**: `public static boolean isRunePouchOpen()` +- **Description**: Checks if the rune pouch UI is currently open. + +### `load` +- **Signature**: `public static boolean load(Map requiredRunes)` +- **Description**: Attempts to load the specified runes into the rune pouch using strict matching. Can use bank loadouts or direct withdrawal. + +### `loadFromInventorySetup` +- **Signature**: `public static boolean loadFromInventorySetup(Map inventorySetupRunes)` +- **Description**: Attempts to load the specified runes into the rune pouch using fuzzy logic where applicable (e.g. from Inventory Setups). + +### `onVarbitChanged` +- **Signature**: `public static void onVarbitChanged(VarbitChanged ev)` +- **Description**: Updates the specific pouch slot when a varbit is changed. + +### `onWidgetLoaded` +- **Signature**: `public static void onWidgetLoaded(WidgetLoaded ev)` +- **Description**: Handles reading rune pouch loadouts from the bank interface widgets. + +### `openRunePouch` +- **Signature**: `public static boolean openRunePouch()` +- **Description**: Opens the rune pouch UI. diff --git a/docs/api/Rs2Settings.md b/docs/api/Rs2Settings.md index 8853d94e879..cf6f338802a 100644 --- a/docs/api/Rs2Settings.md +++ b/docs/api/Rs2Settings.md @@ -1,2 +1,88 @@ +# Rs2Settings Class Documentation + ## [Back](development.md) -TODO \ No newline at end of file + +## Overview +The `Rs2Settings` class provides methods to interact with and toggle various in-game settings, such as shift-dropping, hiding roofs, notifications, and audio settings. + +## Methods + +### `disableLevelUpNotifications` +- **Signature**: `public static boolean disableLevelUpNotifications()` +- **Description**: Disables level-up notifications in the settings. Convenience method that also closes the interface. + +### `disableLevelUpNotifications` +- **Signature**: `public static boolean disableLevelUpNotifications(boolean closeInterface)` +- **Description**: Disables level-up notifications in the settings, with an option to keep the interface open. + +### `disableWorldSwitcherConfirmation` +- **Signature**: `public static boolean disableWorldSwitcherConfirmation()` +- **Description**: Disables the confirmation dialog when switching worlds. Convenience method that also closes the interface. + +### `disableWorldSwitcherConfirmation` +- **Signature**: `public static boolean disableWorldSwitcherConfirmation(boolean closeInterface)` +- **Description**: Disables the confirmation dialog when switching worlds, with an option to keep the interface open. + +### `enableBankSlotLocking` +- **Signature**: `public static boolean enableBankSlotLocking()` +- **Description**: Enables bank slot locking if currently disabled. Navigates bank settings to toggle the feature. + +### `enableDropShiftSetting` +- **Signature**: `public static boolean enableDropShiftSetting()` +- **Description**: Enables shift-click dropping in the settings. Convenience method that also closes the interface. + +### `enableDropShiftSetting` +- **Signature**: `public static boolean enableDropShiftSetting(boolean closeInterface)` +- **Description**: Enables shift-click dropping in the settings, with an option to keep the interface open. + +### `enableSpellFiltering` +- **Signature**: `public static void enableSpellFiltering()` +- **Description**: Enables spell filtering in the magic spellbook if it is currently disabled. + +### `getMinimumItemValueAlchemyWarning` +- **Signature**: `public static int getMinimumItemValueAlchemyWarning()` +- **Description**: Retrieves the minimum item value that triggers a high alchemy warning. + +### `hideRoofs` +- **Signature**: `public static boolean hideRoofs()` +- **Description**: Hides roofs in the settings. Convenience method that also closes the interface. + +### `hideRoofs` +- **Signature**: `public static boolean hideRoofs(boolean closeInterface)` +- **Description**: Hides roofs in the settings, with an option to keep the interface open. + +### `isBankSlotLockingEnabled` +- **Signature**: `public static boolean isBankSlotLockingEnabled()` +- **Description**: Checks if bank slot locking is enabled. + +### `isDropShiftSettingEnabled` +- **Signature**: `public static boolean isDropShiftSettingEnabled()` +- **Description**: Checks if shift-click dropping is enabled. + +### `isEscCloseInterfaceSettingEnabled` +- **Signature**: `public static boolean isEscCloseInterfaceSettingEnabled()` +- **Description**: Checks if the "Esc closes interface" setting is enabled. + +### `isHideRoofsEnabled` +- **Signature**: `public static boolean isHideRoofsEnabled()` +- **Description**: Checks if roofs are currently hidden. + +### `isLevelUpNotificationsEnabled` +- **Signature**: `public static boolean isLevelUpNotificationsEnabled()` +- **Description**: Checks if level-up notifications are enabled. + +### `isSpellFilteringEnabled` +- **Signature**: `public static boolean isSpellFilteringEnabled()` +- **Description**: Checks if spell filtering is enabled in the magic spellbook. + +### `isWorldSwitcherConfirmationEnabled` +- **Signature**: `public static boolean isWorldSwitcherConfirmationEnabled()` +- **Description**: Checks if the world switcher confirmation is enabled. + +### `openSettings` +- **Signature**: `public static boolean openSettings()` +- **Description**: Opens the main settings interface. + +### `turnOffMusic` +- **Signature**: `public static void turnOffMusic()` +- **Description**: Turns off music, sound effects, and area sounds in the settings tab. diff --git a/docs/api/Rs2Shop.md b/docs/api/Rs2Shop.md new file mode 100644 index 00000000000..adbc45ef374 --- /dev/null +++ b/docs/api/Rs2Shop.md @@ -0,0 +1,76 @@ +# Rs2Shop Class Documentation + +## [Back](development.md) + +## Overview +The `Rs2Shop` class manages interactions with shops in the game, including opening shops, buying items, checking stock, and handling shop interfaces. + +## Methods + +### `buyItem` +- **Signature**: `public static boolean buyItem(String itemName, String quantity)` +- **Description**: Buys a specified quantity of an item from the shop by its name. + +### `buyItem` +- **Signature**: `public static boolean buyItem(int itemId, String quantity)` +- **Description**: Buys a specified quantity of an item from the shop by its ID. + +### `buyItemOptimally` +- **Signature**: `public static void buyItemOptimally(String itemName, int desiredQuantity)` +- **Description**: Buys an item in an optimal way given the desired total quantity. Uses allowed purchase quantities (50, 10, 5, 1) to minimize calls. + +### `closeShop` +- **Signature**: `public static void closeShop()` +- **Description**: Closes the shop interface if it is open. + +### `getNearestShopNpc` +- **Signature**: `public static Rs2NpcModel getNearestShopNpc(String npcName)` +- **Description**: Finds the nearest shop NPC with the specified name and "Trade" action (partial name matching). + +### `getNearestShopNpc` +- **Signature**: `public static Rs2NpcModel getNearestShopNpc(String npcName, boolean exact)` +- **Description**: Finds the nearest shop NPC with the specified name and "Trade" action. + +### `getSlot` +- **Signature**: `public static int getSlot(String itemName)` +- **Description**: Retrieves the slot number of the specified item in the shop. + +### `hasMinimumStock` +- **Signature**: `public static boolean hasMinimumStock(int itemId, int minimumQuantity)` +- **Description**: Checks if the specified item is in stock in the shop with quantity >= minimumQuantity. + +### `hasMinimumStock` +- **Signature**: `public static boolean hasMinimumStock(String itemName, int minimumQuantity)` +- **Description**: Checks if the specified item is in stock in the shop with quantity >= minimumQuantity. + +### `hasStock` +- **Signature**: `public static boolean hasStock(int itemId)` +- **Description**: Checks if the specified item is in stock in the shop. + +### `hasStock` +- **Signature**: `public static boolean hasStock(String itemName)` +- **Description**: Checks if the specified item is in stock in the shop. + +### `isFull` +- **Signature**: `public static boolean isFull()` +- **Description**: Checks if the shop is completely full. + +### `isOpen` +- **Signature**: `public static boolean isOpen()` +- **Description**: Checks if the shop interface is open. + +### `openShop` +- **Signature**: `public static boolean openShop(String npc)` +- **Description**: Opens the shop interface by interacting with the specified NPC (partial name match). + +### `openShop` +- **Signature**: `public static boolean openShop(String npcName, boolean exact)` +- **Description**: Opens the shop interface by interacting with the specified NPC. + +### `storeShopItemsInMemory` +- **Signature**: `public static void storeShopItemsInMemory(ItemContainerChanged e, int id)` +- **Description**: Updates the shop items in memory based on the provided event. + +### `waitForShopChanges` +- **Signature**: `public static boolean waitForShopChanges()` +- **Description**: Waits for the shop content to change by comparing the current items with the cached values. diff --git a/docs/api/Rs2Spells.md b/docs/api/Rs2Spells.md index 8853d94e879..bc049c3c344 100644 --- a/docs/api/Rs2Spells.md +++ b/docs/api/Rs2Spells.md @@ -1,2 +1,16 @@ +# Rs2Spells Class Documentation + ## [Back](development.md) -TODO \ No newline at end of file + +## Overview +The `Rs2Spells` enum defines all supported spells from Modern, Ancient, Lunar, and Arceuus spellbooks. Each enum constant represents a spell and contains information about its required runes, level, and spellbook. + +## Methods + +### `getElementalRunes` +- **Signature**: `public List getElementalRunes()` +- **Description**: Returns only the elemental runes (Air, Water, Earth, Fire) required for this spell. This is useful for checking if a staff or combination runes can satisfy the spell's requirements. + +### `getRequiredRunes` +- **Signature**: `public HashMap getRequiredRunes()` +- **Description**: Returns a map of runes and their quantities required to cast this spell. diff --git a/docs/api/Rs2Tab.md b/docs/api/Rs2Tab.md index 8853d94e879..20df099c03f 100644 --- a/docs/api/Rs2Tab.md +++ b/docs/api/Rs2Tab.md @@ -1,2 +1,80 @@ +# Rs2Tab Class Documentation + ## [Back](development.md) -TODO \ No newline at end of file + +## Overview +The `Rs2Tab` class manages interface tabs in the game, such as Inventory, Combat, Skills, and others. It provides methods to switch between tabs and check the currently active tab. + +## Methods + +### `getCurrentTab` +- **Signature**: `public static InterfaceTab getCurrentTab()` +- **Description**: Retrieves the currently open interface tab based on the `TOPLEVEL_PANEL` client variable. + +### `getSpellBookTab` +- **Signature**: `public static Widget getSpellBookTab()` +- **Description**: Retrieves the widget corresponding to the spellbook tab, accounting for different game layouts (resizable, fixed). + +### `isCurrentTab` +- **Signature**: `public static boolean isCurrentTab(InterfaceTab tab)` +- **Description**: Checks if the specified tab is currently selected. + +### `switchTo` +- **Signature**: `public static boolean switchTo(InterfaceTab tab)` +- **Description**: Switches to the specified interface tab using hotkeys. Returns `true` if the switch was successful or the tab was already active. + +### `switchToAccountManagementTab` +- **Signature**: `public static boolean switchToAccountManagementTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.ACC_MAN)`. + +### `switchToCombatOptionsTab` +- **Signature**: `public static boolean switchToCombatOptionsTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.COMBAT)`. + +### `switchToEmotesTab` +- **Signature**: `public static boolean switchToEmotesTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.EMOTES)`. + +### `switchToEquipmentTab` +- **Signature**: `public static boolean switchToEquipmentTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.EQUIPMENT)`. + +### `switchToFriendsTab` +- **Signature**: `public static boolean switchToFriendsTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.FRIENDS)`. + +### `switchToGroupingTab` +- **Signature**: `public static boolean switchToGroupingTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.CHAT)`. + +### `switchToInventoryTab` +- **Signature**: `public static boolean switchToInventoryTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.INVENTORY)`. + +### `switchToLogout` +- **Signature**: `public static boolean switchToLogout()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.LOGOUT)`. + +### `switchToMagicTab` +- **Signature**: `public static boolean switchToMagicTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.MAGIC)`. + +### `switchToMusicTab` +- **Signature**: `public static boolean switchToMusicTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.MUSIC)`. + +### `switchToPrayerTab` +- **Signature**: `public static boolean switchToPrayerTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.PRAYER)`. + +### `switchToQuestTab` +- **Signature**: `public static boolean switchToQuestTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.QUESTS)`. + +### `switchToSettingsTab` +- **Signature**: `public static boolean switchToSettingsTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.SETTINGS)`. + +### `switchToSkillsTab` +- **Signature**: `public static boolean switchToSkillsTab()` +- **Description**: Deprecated. Use `switchTo(InterfaceTab.SKILLS)`. diff --git a/docs/api/Rs2Walker.md b/docs/api/Rs2Walker.md index 8853d94e879..1d3298c7188 100644 --- a/docs/api/Rs2Walker.md +++ b/docs/api/Rs2Walker.md @@ -1,2 +1,44 @@ +# Rs2Walker Class Documentation + ## [Back](development.md) -TODO \ No newline at end of file + +## Overview +The `Rs2Walker` class is the primary utility for handling player movement and pathfinding. It supports walking to specific coordinates, handling obstacles, using transports (teleports, ships, etc.), and interacting with the minimap. + +## Methods + +### `canReach` +- **Signature**: `public static boolean canReach(WorldPoint worldPoint)` +- **Description**: Checks if a specific world point is reachable from the current location. + +### `getWalkPath` +- **Signature**: `public static List getWalkPath(WorldPoint target)` +- **Description**: Retrieves the walk path from the player's current location to the specified target location. + +### `getTotalTiles` +- **Signature**: `public static int getTotalTiles(WorldPoint destination)` +- **Description**: Gets the total amount of tiles to travel to destination. Returns `Integer.MAX_VALUE` if unreachable. + +### `setTarget` +- **Signature**: `public static void setTarget(WorldPoint target)` +- **Description**: Sets the current target for the walker. Can be used to update or clear the target. + +### `walkFastCanvas` +- **Signature**: `public static boolean walkFastCanvas(WorldPoint worldPoint)` +- **Description**: interacting with the game canvas to click the tile. Useful for short distances or when the tile is on screen. + +### `walkMiniMap` +- **Signature**: `public static boolean walkMiniMap(WorldPoint worldPoint)` +- **Description**: Walks to the specified world point by clicking on the minimap. + +### `walkTo` +- **Signature**: `public static boolean walkTo(int x, int y, int plane)` +- **Description**: Walks to the specified coordinates. + +### `walkTo` +- **Signature**: `public static boolean walkTo(WorldPoint target)` +- **Description**: Walks to the specified `WorldPoint`. Uses the shortest pathfinder and handles transports/obstacles. + +### `walkTo` +- **Signature**: `public static boolean walkTo(WorldPoint target, int distance)` +- **Description**: Walks to the specified `WorldPoint`, considering the action complete when within the specified distance. diff --git a/docs/api/Rs2Widget.md b/docs/api/Rs2Widget.md index 8853d94e879..494e1750a43 100644 --- a/docs/api/Rs2Widget.md +++ b/docs/api/Rs2Widget.md @@ -1,2 +1,212 @@ +# Rs2Widget Class Documentation + ## [Back](development.md) -TODO \ No newline at end of file + +## Overview +The `Rs2Widget` class provides a comprehensive set of methods for finding, checking, and interacting with widgets in the game interface. It supports finding widgets by text, ID, or structure, and interacting with them. + +## Methods + +### `calculateTextSimilarity` +- **Signature**: `public static double calculateTextSimilarity(String source, String target)` +- **Description**: Calculates text similarity score between two strings (0.0 to 1.0). + +### `checkBoundsOverlapWidgetInMainModal` +- **Signature**: `public static boolean checkBoundsOverlapWidgetInMainModal(Rectangle overlayBoundsCanvas, int viewportXOffset, int viewportYOffset)` +- **Description**: Checks if a given rectangle overlaps with any widget in the main modal interface. + +### `clickChildWidget` +- **Signature**: `public static boolean clickChildWidget(int id, int childId)` +- **Description**: Clicks on a child widget specified by the parent ID and child index. + +### `clickWidget` +- **Signature**: `public static boolean clickWidget(String text)` +- **Description**: Clicks a widget containing the specified text (partial match). + +### `clickWidget` +- **Signature**: `public static boolean clickWidget(String text, boolean exact)` +- **Description**: Clicks a widget containing the specified text, with an option for exact matching. + +### `clickWidget` +- **Signature**: `public static boolean clickWidget(String text, Optional widgetId, int childId, boolean exact)` +- **Description**: Clicks a widget matching text criteria, optionally scoped to a specific parent widget ID. + +### `clickWidget` +- **Signature**: `public static boolean clickWidget(Widget widget)` +- **Description**: Clicks the specified widget instance. + +### `clickWidget` +- **Signature**: `public static boolean clickWidget(int id)` +- **Description**: Clicks a widget specified by its ID. + +### `clickWidget` +- **Signature**: `public static boolean clickWidget(int parentId, int childId)` +- **Description**: Clicks a widget specified by its parent ID and child index. + +### `clickWidgetFast` +- **Signature**: `public static void clickWidgetFast(Widget widget)` +- **Description**: Performs a fast click on a widget using menu entry invocation. + +### `clickWidgetFast` +- **Signature**: `public static void clickWidgetFast(Widget widget, int param0)` +- **Description**: Performs a fast click on a widget with a specified parameter. + +### `clickWidgetFast` +- **Signature**: `public static void clickWidgetFast(Widget widget, int param0, int identifier)` +- **Description**: Performs a fast click on a widget with specified parameters and identifier. + +### `clickWidgetFast` +- **Signature**: `public static void clickWidgetFast(int packetId, int identifier)` +- **Description**: Performs a fast click on a widget specified by its packet ID. + +### `enableQuantityOption` +- **Signature**: `public static boolean enableQuantityOption(String quantity)` +- **Description**: Enables a specific quantity option (e.g., "All") in processing interfaces. + +### `enterWilderness` +- **Signature**: `public static boolean enterWilderness()` +- **Description**: Detects the wilderness warning interface and clicks the enter button. + +### `findBestMatchingWidget` +- **Signature**: `public static Widget findBestMatchingWidget(int widgetId, String targetText)` +- **Description**: Finds the best matching widget within a parent based on exact match, contains match, or word similarity. + +### `findSimilarWidgets` +- **Signature**: `public static List findSimilarWidgets(List widgets, String targetText, double threshold)` +- **Description**: Finds all widgets that match above a text similarity threshold. + +### `findWidget` +- **Signature**: `public static Widget findWidget(String text)` +- **Description**: Finds a widget containing the specified text (partial match). + +### `findWidget` +- **Signature**: `public static Widget findWidget(String text, boolean exact)` +- **Description**: Finds a widget containing the specified text with matching option. + +### `findWidget` +- **Signature**: `public static Widget findWidget(String text, List children)` +- **Description**: Finds a widget containing the specified text within a list of children (partial match). + +### `findWidget` +- **Signature**: `public static Widget findWidget(String text, List children, boolean exact)` +- **Description**: Searches for a widget with matching text, either in the provided children or across all root widgets. + +### `findWidget` +- **Signature**: `public static Widget findWidget(int spriteId, List children)` +- **Description**: Searches for a widget with the specified sprite ID among root widgets or specified children. + +### `findWidgetsWithAction` +- **Signature**: `public static Map findWidgetsWithAction(String actionText, int widgetGroupId, boolean clickWidget)` +- **Description**: Finds widgets with specific action text in a group. + +### `findWidgetsWithAction` +- **Signature**: `public static Map findWidgetsWithAction(String actionText, int widgetGroupId, int widgetSubGroupId, boolean clickWidget)` +- **Description**: Finds all widgets with specific action text in a subgroup. + +### `getChildWidgetSpriteID` +- **Signature**: `public static int getChildWidgetSpriteID(int id, int childId)` +- **Description**: Retrieves the sprite ID of a child widget. + +### `getChildWidgetText` +- **Signature**: `public static String getChildWidgetText(int id, int childId)` +- **Description**: Retrieves the text of a child widget. + +### `getWidget` +- **Signature**: `public static Widget getWidget(int id)` +- **Description**: Retrieves a widget by its ID. + +### `getWidget` +- **Signature**: `public static Widget getWidget(int id, int child)` +- **Description**: Retrieves a widget by parent ID and child index. + +### `getWidgetsKeyMap` +- **Signature**: `public static Map getWidgetsKeyMap(int widgetGroupId, int widgetSubGroupId)` +- **Description**: Gets keyboard shortcut keys for widgets in processing interfaces. + +### `handleProcessConfirmation` +- **Signature**: `public static boolean handleProcessConfirmation(int widgetGroupId)` +- **Description**: Handles chat/trade dialogue confirmations. + +### `handleProcessingInterface` +- **Signature**: `public static boolean handleProcessingInterface(String actionText)` +- **Description**: Handles generic processing interface interactions with quantity selection. + +### `hasVisibleWidgetText` +- **Signature**: `public static boolean hasVisibleWidgetText(String text)` +- **Description**: Checks if specific widget text exists and is visible. + +### `hasWidget` +- **Signature**: `public static boolean hasWidget(String text)` +- **Description**: Checks if a widget containing the specified text exists. + +### `hasWidgetText` +- **Signature**: `public static boolean hasWidgetText(String text, int componentId, boolean exact)` +- **Description**: Checks if a root widget or its descendants contain the specified text. + +### `hasWidgetText` +- **Signature**: `public static boolean hasWidgetText(String text, int widgetId, int childId, boolean exact)` +- **Description**: Checks if a specific widget or its descendants contain the specified text. + +### `isDepositBoxWidgetOpen` +- **Signature**: `public static boolean isDepositBoxWidgetOpen()` +- **Description**: Checks if the deposit box widget is open. + +### `isGoldCraftingWidgetOpen` +- **Signature**: `public static boolean isGoldCraftingWidgetOpen()` +- **Description**: Checks if the gold crafting widget is open. + +### `isHidden` +- **Signature**: `public static boolean isHidden(int id)` +- **Description**: Checks if a widget is hidden by ID. + +### `isHidden` +- **Signature**: `public static boolean isHidden(int parentId, int childId)` +- **Description**: Checks if a child widget is hidden. + +### `isProductionWidgetOpen` +- **Signature**: `public static boolean isProductionWidgetOpen()` +- **Description**: Checks if the production widget is open. + +### `isSilverCraftingWidgetOpen` +- **Signature**: `public static boolean isSilverCraftingWidgetOpen()` +- **Description**: Checks if the silver crafting widget is open. + +### `isSmithingWidgetOpen` +- **Signature**: `public static boolean isSmithingWidgetOpen()` +- **Description**: Checks if the smithing widget is open. + +### `isWidgetVisible` +- **Signature**: `public static boolean isWidgetVisible(int id)` +- **Description**: Checks if a widget is visible by ID. + +### `isWidgetVisible` +- **Signature**: `public static boolean isWidgetVisible(int widgetId, int childId)` +- **Description**: Checks if a child widget is visible. + +### `isWildernessInterfaceOpen` +- **Signature**: `public static boolean isWildernessInterfaceOpen()` +- **Description**: Checks if the wilderness warning interface is open. + +### `searchChildren` +- **Signature**: `public static Widget searchChildren(String text, Widget child, boolean exact)` +- **Description**: Recursively searches through child widgets for a text match. + +### `searchChildren` +- **Signature**: `public static Widget searchChildren(int spriteId, Widget child)` +- **Description**: Recursively searches through child widgets for a sprite ID match. + +### `sleepUntilHasNotWidgetText` +- **Signature**: `public static boolean sleepUntilHasNotWidgetText(String text, int widgetId, int childId, boolean exact, int sleep)` +- **Description**: Waits until a widget does NOT contain the specified text. + +### `sleepUntilHasWidget` +- **Signature**: `public static boolean sleepUntilHasWidget(String text)` +- **Description**: Waits until a widget containing the specified text appears. + +### `sleepUntilHasWidgetText` +- **Signature**: `public static boolean sleepUntilHasWidgetText(String text, int widgetId, int childId, boolean exact, int sleep)` +- **Description**: Waits until a widget contains the specified text. + +### `waitForWidget` +- **Signature**: `public static boolean waitForWidget(String text, int timeout)` +- **Description**: Waits for a widget to appear with specified text. diff --git a/docs/api/Rs2WorldPoint.md b/docs/api/Rs2WorldPoint.md new file mode 100644 index 00000000000..caef119190d --- /dev/null +++ b/docs/api/Rs2WorldPoint.md @@ -0,0 +1,52 @@ +# Rs2WorldPoint Class Documentation + +## [Back](development.md) + +## Overview +The `Rs2WorldPoint` class acts as a wrapper and utility for `WorldPoint`, providing additional functionality for pathfinding, distance calculation, and coordinate conversion, especially useful for instanced areas. + +## Methods + +### `convertInstancedWorldPoint` +- **Signature**: `public static WorldPoint convertInstancedWorldPoint(WorldPoint worldPoint)` +- **Description**: Converts an instanced `WorldPoint` coordinate to a global `WorldPoint`. This is useful for locating objects within instanced rooms relative to the global map. + +### `distanceToPath` +- **Signature**: `public int distanceToPath(WorldPoint other)` +- **Description**: Calculates the distance to a target `WorldPoint` along a path. Returns `Integer.MAX_VALUE` if no path is found or the path does not end at the target. + +### `getPlane` +- **Signature**: `public int getPlane()` +- **Description**: Gets the plane (height level) of the `Rs2WorldPoint`. + +### `getWorldPoint` +- **Signature**: `public WorldPoint getWorldPoint()` +- **Description**: Retrieves the underlying `WorldPoint` object. + +### `getX` +- **Signature**: `public int getX()` +- **Description**: Gets the X coordinate of the `Rs2WorldPoint`. + +### `getY` +- **Signature**: `public int getY()` +- **Description**: Gets the Y coordinate of the `Rs2WorldPoint`. + +### `normalizeY` +- **Signature**: `public static int normalizeY(WorldPoint point)` +- **Description**: Normalizes the Y coordinate of a `WorldPoint`. This is typically used for comparing locations in caves or dungeons where Y coordinates are shifted. + +### `pathTo` +- **Signature**: `public List pathTo(WorldPoint other)` +- **Description**: Calculates a path to the specified `WorldPoint`. Returns a list of `WorldPoint`s representing the path, or `null` if no path is found. + +### `pathTo` +- **Signature**: `public List pathTo(WorldPoint other, boolean fullPath)` +- **Description**: Calculates a path to the specified `WorldPoint`, optionally returning the full list of tiles (including intermediate steps) instead of just key checkpoints. + +### `quickDistance` +- **Signature**: `public static int quickDistance(WorldPoint a, WorldPoint b)` +- **Description**: Calculates the Chebyshev distance between two `WorldPoint`s. This is a quick approximation of distance often used in tile-based games. + +### `toLocalInstance` +- **Signature**: `public static WorldPoint toLocalInstance(WorldPoint worldPoint)` +- **Description**: Converts a global `WorldPoint` to a local instance `WorldPoint` if the player is currently in an instance. diff --git a/gradle.properties b/gradle.properties index a9094b8a74e..bd0ae39c255 100644 --- a/gradle.properties +++ b/gradle.properties @@ -28,10 +28,10 @@ org.gradle.parallel=true org.gradle.caching=false project.build.group=net.runelite -project.build.version=1.12.17 +project.build.version=1.12.18 glslang.path= -microbot.version=2.1.19 +microbot.version=2.1.20 microbot.commit.sha=nogit microbot.repo.url=http://138.201.81.246:8081/repository/microbot-snapshot/ microbot.repo.username= diff --git a/runelite-api/src/main/interfaces/interfaces.toml b/runelite-api/src/main/interfaces/interfaces.toml index 334a8da0e3c..839a5041e6d 100644 --- a/runelite-api/src/main/interfaces/interfaces.toml +++ b/runelite-api/src/main/interfaces/interfaces.toml @@ -259,7 +259,7 @@ id=13 [deposit_box] id=192 -inventory_item_container=23 +inventory_item_container=24 [destroy_item] id=584 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 470bdbda788..c47a1c8bcfc 100644 --- a/runelite-api/src/main/java/net/runelite/api/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java @@ -16134,5 +16134,36 @@ public final class ItemID public static final int HOODED_SLAYER_HELMET_I_33072 = 33072; public static final int FACILITY_BOTTLE_EMPTY = 33074; public static final int FACILITY_BOTTLE_FULL = 33077; + public static final int _25TH_ANNIVERSARY_HELMET = 33080; + public static final int _25TH_ANNIVERSARY_WARRIOR_TABARD = 33082; + public static final int _25TH_ANNIVERSARY_SKELETON_TABARD = 33084; + public static final int _25TH_ANNIVERSARY_5X5_HAT = 33086; + public static final int GARY = 33088; + public static final int BOTTOMLESS_MILK_BUCKET = 33089; + public static final int BOTTOMLESS_MILK_BUCKET_EMPTY = 33091; + public static final int COW_SLIPPERS = 33093; + public static final int COW_SLIPPERS_33096 = 33096; + public static final int COW_SLIPPERS_33097 = 33097; + public static final int COW_SLIPPERS_33098 = 33098; + public static final int BRUTUS_SLIPPERS = 33099; + public static final int MOOLETA = 33101; + public static final int COWBELL_AMULET = 33103; + public static final int COWBELL_AMULET_33104 = 33104; + public static final int RAW_TBONE_STEAK = 33106; + public static final int COOKED_TBONE_STEAK = 33109; + public static final int BURNT_TBONE_STEAK = 33112; + public static final int BULL_BONES = 33115; + public static final int MAGIC_LAMP = 33117; + public static final int ABYSSAL_POTATO = 33118; + public static final int PERFECTED_QUETZAL_WHISTLEI = 33120; + public static final int ANNIHILATION_EXIT_PORTAL_BLUEPRINTS = 33122; + public static final int BEEF = 33124; + public static final int THE_GROATS_PRINCIPLES = 33126; + public static final int MILK_SAMPLE = 33128; + public static final int MILK_SAMPLE_33130 = 33130; + public static final int EXIT_PORTAL_33132 = 33132; + public static final int PRISTINE_SPIDER_SILK = 33133; + public static final int SILKLINED_HERB_SACK = 33135; + public static final int OPEN_SILKLINED_HERB_SACK = 33137; /* 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 315705fa2df..d4faa8fc884 100644 --- a/runelite-api/src/main/java/net/runelite/api/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java @@ -5480,7 +5480,6 @@ public final class NpcID public static final int SCION = 5918; public static final int GRACE = 5919; public static final int MARK = 5920; - public static final int BIGREDJAPAN = 5921; public static final int SKULLBALL = 5922; public static final int SKULLBALL_BOSS = 5923; public static final int AGILITY_BOSS = 5924; @@ -13019,5 +13018,55 @@ public final class NpcID public static final int KETZEK_15573 = 15573; public static final int TZTOKJAD_15574 = 15574; public static final int TIGER_SHARK_15575 = 15575; + public static final int GARY_15576 = 15576; + public static final int GARY_15577 = 15577; + public static final int WIZARD_GARY = 15578; + public static final int GARY_15579 = 15579; + public static final int GARYS_HAT = 15582; + public static final int PORTAL_15587 = 15587; + public static final int THIEF_15588 = 15588; + public static final int SOOKIE = 15589; + public static final int GNOME_CHILD_15590 = 15590; + public static final int THRANDER = 15591; + public static final int CHUCK_15592 = 15592; + public static final int PIOUS_PETE = 15593; + public static final int MYSTERIOUS_WATCHER = 15594; + public static final int MYSTERIOUS_WATCHER_15595 = 15595; + public static final int MYSTERIOUS_WATCHER_15596 = 15596; + public static final int BIG_MO = 15597; + public static final int CHEERLEADER_15598 = 15598; + public static final int CHEERLEADER_15599 = 15599; + public static final int CHEERLEADER_15600 = 15600; + public static final int BLACK_DRAGON_15601 = 15601; + public static final int RED_DRAGON_15602 = 15602; + public static final int BLUE_DRAGON_15603 = 15603; + public static final int KING_BLACK_DRAGON_15604 = 15604; + public static final int BABY_BLUE_DRAGON_15605 = 15605; + public static final int LESSER_DEMON_15606 = 15606; + public static final int GREATER_DEMON_15607 = 15607; + public static final int BLACK_DEMON_15608 = 15608; + public static final int SCORPION_15609 = 15609; + public static final int KING_SCORPION_15610 = 15610; + public static final int ORC = 15611; + public static final int LIZARD_MAN = 15612; + public static final int TROLL_15613 = 15613; + public static final int CAVE_BUG_15614 = 15614; + public static final int CAVE_BUG_15615 = 15615; + public static final int KALPHITE_QUEEN_15616 = 15616; + public static final int KALPHITE_QUEEN_15617 = 15617; + public static final int KALPHITE_QUEEN_15618 = 15618; + public static final int FIRE_GIANT_15619 = 15619; + public static final int HILL_GIANT_15620 = 15620; + public static final int GOBLIN_15621 = 15621; + public static final int BIGREDJAPAN = 15622; + public static final int BIGREDJAPAN_15623 = 15623; + public static final int BULL = 15625; + public static final int BRUTUS = 15626; + public static final int BRUTUS_15627 = 15627; + public static final int DEMONIC_BRUTUS = 15628; + public static final int DEMONIC_BRUTUS_15629 = 15629; + public static final int BEEF = 15631; + public static final int CASSIUS_15632 = 15632; + public static final int BEEF_15633 = 15633; /* 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 c1b5ade3286..7d15b90b3e4 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullItemID.java @@ -16636,5 +16636,32 @@ public final class NullItemID public static final int NULL_33076 = 33076; public static final int NULL_33078 = 33078; public static final int NULL_33079 = 33079; + public static final int NULL_33081 = 33081; + public static final int NULL_33083 = 33083; + public static final int NULL_33085 = 33085; + public static final int NULL_33087 = 33087; + public static final int NULL_33090 = 33090; + public static final int NULL_33092 = 33092; + public static final int NULL_33094 = 33094; + public static final int NULL_33095 = 33095; + public static final int NULL_33100 = 33100; + public static final int NULL_33102 = 33102; + public static final int NULL_33105 = 33105; + public static final int NULL_33107 = 33107; + public static final int NULL_33108 = 33108; + public static final int NULL_33110 = 33110; + public static final int NULL_33111 = 33111; + public static final int NULL_33113 = 33113; + public static final int NULL_33114 = 33114; + public static final int NULL_33116 = 33116; + public static final int NULL_33119 = 33119; + public static final int NULL_33121 = 33121; + public static final int NULL_33123 = 33123; + public static final int NULL_33125 = 33125; + public static final int NULL_33127 = 33127; + public static final int NULL_33129 = 33129; + public static final int NULL_33131 = 33131; + public static final int NULL_33134 = 33134; + public static final int NULL_33136 = 33136; /* 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/NullNpcID.java b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java index 58a72148a36..afacc5e9094 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java @@ -447,6 +447,7 @@ public final class NullNpcID public static final int NULL_5901 = 5901; public static final int NULL_5902 = 5902; public static final int NULL_5903 = 5903; + public static final int NULL_5921 = 5921; public static final int NULL_5930 = 5930; public static final int NULL_5931 = 5931; public static final int NULL_5953 = 5953; @@ -2550,5 +2551,13 @@ public final class NullNpcID public static final int NULL_15569 = 15569; public static final int NULL_15570 = 15570; public static final int NULL_15571 = 15571; + public static final int NULL_15580 = 15580; + public static final int NULL_15581 = 15581; + public static final int NULL_15583 = 15583; + public static final int NULL_15584 = 15584; + public static final int NULL_15585 = 15585; + public static final int NULL_15586 = 15586; + public static final int NULL_15624 = 15624; + public static final int NULL_15630 = 15630; /* 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 45c88541273..136fd218cb5 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java @@ -20915,6 +20915,7 @@ public final class NullObjectID public static final int NULL_42640 = 42640; public static final int NULL_42647 = 42647; public static final int NULL_42648 = 42648; + public static final int NULL_42650 = 42650; public static final int NULL_42651 = 42651; public static final int NULL_42652 = 42652; public static final int NULL_42653 = 42653; @@ -23969,7 +23970,6 @@ public final class NullObjectID public static final int NULL_47173 = 47173; public static final int NULL_47176 = 47176; public static final int NULL_47177 = 47177; - public static final int NULL_47178 = 47178; public static final int NULL_47179 = 47179; public static final int NULL_47181 = 47181; public static final int NULL_47182 = 47182; @@ -31337,5 +31337,54 @@ public final class NullObjectID public static final int NULL_60678 = 60678; public static final int NULL_60679 = 60679; public static final int NULL_60680 = 60680; + public static final int NULL_60704 = 60704; + public static final int NULL_60705 = 60705; + public static final int NULL_60706 = 60706; + public static final int NULL_60707 = 60707; + public static final int NULL_60708 = 60708; + public static final int NULL_60709 = 60709; + public static final int NULL_60710 = 60710; + public static final int NULL_60711 = 60711; + public static final int NULL_60712 = 60712; + public static final int NULL_60713 = 60713; + public static final int NULL_60714 = 60714; + public static final int NULL_60715 = 60715; + public static final int NULL_60716 = 60716; + public static final int NULL_60717 = 60717; + public static final int NULL_60718 = 60718; + public static final int NULL_60719 = 60719; + public static final int NULL_60720 = 60720; + public static final int NULL_60721 = 60721; + public static final int NULL_60722 = 60722; + public static final int NULL_60723 = 60723; + public static final int NULL_60724 = 60724; + public static final int NULL_60725 = 60725; + public static final int NULL_60726 = 60726; + public static final int NULL_60727 = 60727; + public static final int NULL_60728 = 60728; + public static final int NULL_60733 = 60733; + public static final int NULL_60746 = 60746; + public static final int NULL_60747 = 60747; + public static final int NULL_60748 = 60748; + public static final int NULL_60749 = 60749; + public static final int NULL_60750 = 60750; + public static final int NULL_60751 = 60751; + public static final int NULL_60752 = 60752; + public static final int NULL_60753 = 60753; + public static final int NULL_60754 = 60754; + public static final int NULL_60755 = 60755; + public static final int NULL_60757 = 60757; + public static final int NULL_60758 = 60758; + public static final int NULL_60766 = 60766; + public static final int NULL_60770 = 60770; + public static final int NULL_60773 = 60773; + public static final int NULL_60784 = 60784; + public static final int NULL_60786 = 60786; + public static final int NULL_60787 = 60787; + public static final int NULL_60820 = 60820; + public static final int NULL_60821 = 60821; + public static final int NULL_60822 = 60822; + public static final int NULL_60823 = 60823; + public static final int NULL_60824 = 60824; /* 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 59c3c76876e..b453165bb80 100644 --- a/runelite-api/src/main/java/net/runelite/api/ObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/ObjectID.java @@ -23201,6 +23201,7 @@ public final class ObjectID public static final int EXIT_47149 = 47149; public static final int RUBBLE_47174 = 47174; public static final int CAVE_47175 = 47175; + public static final int THICK_WEB_47178 = 47178; public static final int WARMHANDZ_FIRE = 47180; public static final int BIRTHDAY_BALLOONS = 47188; public static final int BIRTHDAY_PLUSHIES = 47189; @@ -28249,6 +28250,10 @@ public final class ObjectID public static final int CORAL_DREDGER = 58499; public static final int CORAL_DREDGER_58500 = 58500; public static final int CORAL_DREDGER_58501 = 58501; + public static final int TILE_58502 = 58502; + public static final int RUNESCAPE_MEMENTO = 58503; + public static final int ATTACK_MEMENTO = 58504; + public static final int STRENGTH_MEMENTO = 58505; public static final int CHAIR_58519 = 58519; public static final int CACTUS_58520 = 58520; public static final int BUBBLES_58525 = 58525; @@ -28800,7 +28805,7 @@ public final class ObjectID public static final int KEG_OF_GROG = 59692; public static final int KEG_OF_CIDER = 59693; public static final int KEG_OF_WHIRLPOOL_SURPRISE = 59694; - public static final int KEG_OF_KRAKEN_INK_SOUT = 59695; + public static final int KEG_OF_KRAKEN_INK_STOUT = 59695; public static final int KEG_OF_PERILDANCE_BITTER = 59696; public static final int KEG_OF_TRAWLERS_TRUST = 59697; public static final int KEG_OF_HORIZONS_LURE = 59698; @@ -29333,5 +29338,99 @@ public final class ObjectID public static final int CORAL_60672 = 60672; public static final int CORAL_60673 = 60673; public static final int FOUNTAIN_60681 = 60681; + public static final int RANGED_MEMENTO = 60682; + public static final int MAGIC_MEMENTO = 60683; + public static final int DEFENCE_MEMENTO = 60684; + public static final int HITPOINTS_MEMENTO = 60685; + public static final int PRAYER_MEMENTO = 60686; + public static final int AGILITY_MEMENTO = 60687; + public static final int HERBLORE_MEMENTO = 60688; + public static final int THIEVING_MEMENTO = 60689; + public static final int CRAFTING_MEMENTO = 60690; + public static final int RUNECRAFT_MEMENTO = 60691; + public static final int MINING_MEMENTO = 60692; + public static final int SMITHING_MEMENTO = 60693; + public static final int FISHING_MEMENTO = 60694; + public static final int COOKING_MEMENTO = 60695; + public static final int FIREMAKING_MEMENTO = 60696; + public static final int WOODCUTTING_MEMENTO = 60697; + public static final int FLETCHING_MEMENTO = 60698; + public static final int SLAYER_MEMENTO = 60699; + public static final int FARMING_MEMENTO = 60700; + public static final int CONSTRUCTION_MEMENTO = 60701; + public static final int HUNTER_MEMENTO = 60702; + public static final int SAILING_MEMENTO = 60703; + public static final int TABLE_60729 = 60729; + public static final int TABLE_60730 = 60730; + public static final int LADDER_60731 = 60731; + public static final int LADDER_60732 = 60732; + public static final int PORTAL_60734 = 60734; + public static final int BARRIER_60735 = 60735; + public static final int SLEEPING_BAG_60736 = 60736; + public static final int STATUE_60737 = 60737; + public static final int ARCHWAY_60738 = 60738; + public static final int LIGHT_60739 = 60739; + public static final int LIGHT_60740 = 60740; + public static final int LIGHT_60741 = 60741; + public static final int LIGHT_60742 = 60742; + public static final int LIGHT_60743 = 60743; + public static final int LIGHT_60744 = 60744; + public static final int BIRTHDAY_BANNER = 60745; + public static final int BIRTHDAY_BANNER_60756 = 60756; + public static final int WEB_60759 = 60759; + public static final int GATE_60760 = 60760; + public static final int GATE_60761 = 60761; + public static final int GATE_60762 = 60762; + public static final int GATE_60763 = 60763; + public static final int GATE_60764 = 60764; + public static final int GATE_60765 = 60765; + public static final int SCOREBOARD_60767 = 60767; + public static final int SCOREBOARD_60768 = 60768; + public static final int WARNING_SIGN_60769 = 60769; + public static final int GROWTH = 60771; + public static final int GROWTH_60772 = 60772; + public static final int TROLLHEIM_PORTAL = 60774; + public static final int PADDEWWA_PORTAL = 60775; + public static final int LASSAR_PORTAL = 60776; + public static final int DAREEYAK_PORTAL = 60777; + public static final int OURANIA_PORTAL = 60778; + public static final int BARBARIAN_OUTPOST_PORTAL = 60779; + public static final int PORT_KHAZARD_PORTAL = 60780; + public static final int ICE_PLATEAU_PORTAL = 60781; + public static final int RESPAWN_PORTAL = 60782; + public static final int BOAT_PORTAL = 60783; + public static final int SHELVES_60785 = 60785; + public static final int DAIRY_COW_60788 = 60788; + public static final int PORTAL_60789 = 60789; + public static final int TROLLHEIM_PORTAL_60790 = 60790; + public static final int PADDEWWA_PORTAL_60791 = 60791; + public static final int LASSAR_PORTAL_60792 = 60792; + public static final int DAREEYAK_PORTAL_60793 = 60793; + public static final int OURANIA_PORTAL_60794 = 60794; + public static final int BARBARIAN_OUTPOST_PORTAL_60795 = 60795; + public static final int PORT_KHAZARD_PORTAL_60796 = 60796; + public static final int ICE_PLATEAU_PORTAL_60797 = 60797; + public static final int RESPAWN_PORTAL_60798 = 60798; + public static final int BOAT_PORTAL_60799 = 60799; + public static final int TROLLHEIM_PORTAL_60800 = 60800; + public static final int PADDEWWA_PORTAL_60801 = 60801; + public static final int LASSAR_PORTAL_60802 = 60802; + public static final int DAREEYAK_PORTAL_60803 = 60803; + public static final int OURANIA_PORTAL_60804 = 60804; + public static final int BARBARIAN_OUTPOST_PORTAL_60805 = 60805; + public static final int PORT_KHAZARD_PORTAL_60806 = 60806; + public static final int ICE_PLATEAU_PORTAL_60807 = 60807; + public static final int RESPAWN_PORTAL_60808 = 60808; + public static final int BOAT_PORTAL_60809 = 60809; + public static final int TROLLHEIM_PORTAL_60810 = 60810; + public static final int PADDEWWA_PORTAL_60811 = 60811; + public static final int LASSAR_PORTAL_60812 = 60812; + public static final int DAREEYAK_PORTAL_60813 = 60813; + public static final int OURANIA_PORTAL_60814 = 60814; + public static final int BARBARIAN_OUTPOST_PORTAL_60815 = 60815; + public static final int PORT_KHAZARD_PORTAL_60816 = 60816; + public static final int ICE_PLATEAU_PORTAL_60817 = 60817; + public static final int RESPAWN_PORTAL_60818 = 60818; + public static final int BOAT_PORTAL_60819 = 60819; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/PlayerComposition.java b/runelite-api/src/main/java/net/runelite/api/PlayerComposition.java index 3ab4916e2d0..db11206d57e 100644 --- a/runelite-api/src/main/java/net/runelite/api/PlayerComposition.java +++ b/runelite-api/src/main/java/net/runelite/api/PlayerComposition.java @@ -86,10 +86,9 @@ public interface PlayerComposition int getKitId(KitType type); /** - * Update the cached hash value for player equipment - * Used to cache the player models based on equipment. + * Update the cached hash value for player equipment. + * Call this whenever the player's equipment changes or overrides change. */ - @VisibleForDevtools void setHash(); /** @@ -117,4 +116,21 @@ public interface PlayerComposition */ @Nullable ColorTextureOverride[] getColorTextureOverrides(); + + /** + * Get the {@link ColorTextureOverride} for a kit slot. + */ + @Nullable + ColorTextureOverride getColorTextureOverride(KitType kit); + + /** + * Create a {@link ColorTextureOverride} for a kit slot. + * The ColorTextureOverride is initialized with the overrides from the provided item. + */ + ColorTextureOverride createColorTextureOverride(KitType kit, int itemId); + + /** + * Remove the {@link ColorTextureOverride} for a kit slot. + */ + void removeColorTextureOverride(KitType kit); } diff --git a/runelite-api/src/main/java/net/runelite/api/Quest.java b/runelite-api/src/main/java/net/runelite/api/Quest.java index dba5645448e..82d297b692a 100644 --- a/runelite-api/src/main/java/net/runelite/api/Quest.java +++ b/runelite-api/src/main/java/net/runelite/api/Quest.java @@ -239,6 +239,7 @@ public enum Quest TROUBLED_TORTUGANS(7106, "Troubled Tortugans"), THE_RED_REEF(7107, "The Red Reef"), LEARNING_THE_ROPES(9643, "Learning the Ropes"), + THE_IDES_OF_MILK(9645, "The Ides of Milk"), ; @Getter 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 b4a567bef23..d77c75300e2 100644 --- a/runelite-api/src/main/java/net/runelite/api/ScriptID.java +++ b/runelite-api/src/main/java/net/runelite/api/ScriptID.java @@ -483,7 +483,7 @@ public final class ScriptID @ScriptArguments(integer = 1, string = 1) public static final int POPUP_OVERLAY_YESNO_INIT = 4212; - @ScriptArguments(integer = 12) + @ScriptArguments(integer = 17) public static final int BANK_DEPOSITBOX_INIT = 144; @ScriptArguments(integer = 7) diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java b/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java index 967aca8d874..46e03baf889 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/AnimationID.java @@ -13716,5 +13716,103 @@ public final class AnimationID public static final int DEADMAN_2026_SOTD_SPECIAL_TOXIC_CHARGED = 13716; public static final int ZUK_SPAWN_NO_ROCK = 13717; public static final int FEVER_SPIDER_DEATH = 13718; + public static final int _25TH_PORTAL_SWIRL = 13719; + public static final int DRAGON_READY_OLD = 13720; + public static final int DRAGON_WALK_OLD = 13721; + public static final int DRAGON_ATTACK_OLD = 13722; + public static final int DRAGON_BLOCK_OLD = 13723; + public static final int DRAGON_HEAD_ATTACK_OLD = 13724; + public static final int DRAGON_FIREBREATH_ALL_ATTACK_OLD = 13725; + public static final int DRAGON_FIREBREATH_LEFT_ATTACK_OLD = 13726; + public static final int DRAGON_FIREBREATH_RIGHT_ATTACK_OLD = 13727; + public static final int DRAGON_FIREBREATH_MIDDLE_ATTACK_OLD = 13728; + public static final int DRAGON_DEATH_OLD = 13729; + public static final int DRAGON_FIREBREATH_OLD = 13730; + public static final int DRAGON_RANGED_ATTACKS_OLD = 13731; + public static final int DRAGON_ICEBREATH_ATTACK_OLD = 13732; + public static final int DRAGON_ACIDBREATH_ATTACK_OLD = 13733; + public static final int DRAGON_TRIPLE_FIREBREATH_ATTACK_OLD = 13734; + public static final int BABYDRAGON_READY_OLD = 13735; + public static final int BABYDRAGON_WALK_OLD = 13736; + public static final int BABYDRAGON_WALKBACKWARDS_OLD = 13737; + public static final int BABYDRAGON_WALKLEFT_OLD = 13738; + public static final int BABYDRAGON_WALKRIGHT_OLD = 13739; + public static final int BABYDRAGON_ATTACK_OLD = 13740; + public static final int BABYDRAGON_BLOCK_OLD = 13741; + public static final int BABYDRAGON_DEATH_OLD = 13742; + public static final int DEMON_READY_OLD = 13743; + public static final int DEMON_WALK_OLD = 13744; + public static final int DEMON_ATTACK_OLD = 13745; + public static final int DEMON_BLOCK_OLD = 13746; + public static final int DEMON_DEATH_OLD = 13747; + public static final int DEMON_DEATH_GREATER_OLD = 13748; + public static final int SCORPION_READY_OLD = 13749; + public static final int SCORPION_WALK_OLD = 13750; + public static final int SCORPION_ATTACK_OLD = 13751; + public static final int SCORPION_PARRY_OLD = 13752; + public static final int SCORPION_DEATH_OLD = 13753; + public static final int ORK_WALK = 13754; + public static final int ORK_ATTACK = 13755; + public static final int ORK_BLOCK = 13756; + public static final int ORK_READY = 13757; + public static final int ORK_DEATH = 13758; + public static final int LIZARDMAN_WALK = 13759; + public static final int LIZARDMAN_ATTACK = 13760; + public static final int LIZARDMAN_BLOCK = 13761; + public static final int LIZARDMAN_READY = 13762; + public static final int LIZARDMAN_DEATH = 13763; + public static final int CAVE_BUG_FADE_WALK = 13764; + public static final int BIGMO_READY = 13765; + public static final int BIGMO_TALK = 13766; + public static final int BIGMO_CHATHEAD_TALKING = 13767; + public static final int BIGMO_CHATHEAD_LAUGH = 13768; + public static final int KALPHITE_CRACKEDOPEN_OLD = 13769; + public static final int KALPHITE_ATTACK_CLAWS_OLD = 13770; + public static final int KALPHITE_QUEEN_RANGED_ATTACK_OLD = 13771; + public static final int KALPHITE_LIGHTNING_OLD = 13772; + public static final int KALPHITE_FLYING_LIGHTNING_OLD = 13773; + public static final int KALPHITE_GLOW_OLD = 13774; + public static final int KALPHITE_QUEEN_GLOW_OLD = 13775; + public static final int _25TH_SPOTLIGHT_PULSATE_1 = 13776; + public static final int _25TH_SPOTLIGHT_PULSATE_2 = 13777; + public static final int COW_BOSS_CHARGE = 13778; + public static final int COW_BOSS_GHOST_CHARGE = 13779; + public static final int COW_BOSS_HEAVY_BREATH = 13780; + public static final int COW_BOSS_IDLE = 13781; + public static final int COW_BOSS_WALK = 13782; + public static final int COW_BOSS_ATTACK = 13783; + public static final int COW_BOSS_DEATH = 13784; + public static final int COW_BOSS_STOMP = 13785; + public static final int COW_BOSS_GHOST_STOMP = 13786; + public static final int COW_BOSS_DEFEND = 13787; + public static final int COW_BOSS_DESPAWN_LOWPRIO = 13788; + public static final int COW_BOSS_DESPAWN_HIGHPRIO = 13789; + public static final int COW_BOSS_SPAWN = 13790; + public static final int COW_BOSS_SPIRIT_STOMP = 13791; + public static final int COW_BOSS_GHOST_SPIRIT_STOMP = 13792; + public static final int COW_BOSS_CHARGING_FADE_IN_FADE_OUT = 13793; + public static final int COW_BOSS_GHOST_CHARGING_FADE_IN_FADE_OUT = 13794; + public static final int COW_BOSS_CHARGE_START_FADE_OUT = 13795; + public static final int COW_BOSS_GHOST_CHARGE_START_FADE_OUT = 13796; + public static final int COW_BOSS_CHARGE_END_FADE_IN = 13797; + public static final int COW_BOSS_GHOST_CHARGE_END_FADE_IN = 13798; + public static final int COW_BOSS_STOMP_FADE_IN = 13799; + public static final int COW_BOSS_GHOST_STOMP_FADE_IN = 13800; + public static final int COWBOSS_PET_EMOTE = 13801; + public static final int COWBOSS_PET_EMOTE_SPOTANIM = 13802; + public static final int COWBOSS_PET_EMOTE_CHARGE = 13803; + public static final int MILK_IMPACT = 13804; + public static final int MILK_ORB_STATIC = 13805; + public static final int MILK_ORB_SPAWN = 13806; + public static final int MILK_ORB_DROP = 13807; + public static final int VFX_COWBOSS_STOMP_IMPACT01 = 13808; + public static final int VFX_COWBOSS_STOMP_IMPACT02 = 13809; + public static final int VFX_COWBOSS_STOMP_IMPACT03 = 13810; + public static final int HUMAN_COWBOSS_TELEPORT = 13811; + public static final int VFX_HUMAN_COWBOSS_TELEPORT = 13812; + public static final int VFX_HUMAN_COWBOSS_TELEPORT_LOOP = 13813; + public static final int VFX_HUMAN_COWBOSS_TELEPORT_EXIT = 13814; + public static final int HUMAN_COWQUEST_SICK = 13815; + public static final int HUMAN_SPIDER_SILK_CRAFTING = 13816; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java b/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java index cda734912bc..1aba297ccac 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/DBTableID.java @@ -422,6 +422,7 @@ public static final class Row public static final int QUEST_REDREEF = 7107; public static final int QUEST_BURIALATSEA = 7108; public static final int QUEST_LEARNINGTHEROPES = 9643; + public static final int QUEST_IDESOFMILK = 9645; } } @@ -446,6 +447,7 @@ public static final class Row public static final int XMAS_2025 = 4968; public static final int EASTER_2025 = 5107; public static final int HALLOWEEN_2025 = 6989; + public static final int BIRTHDAY_2026 = 7033; } } @@ -5850,6 +5852,7 @@ public static final class Row public static final int MUSIC_GREAT_CONCH_2 = 7094; public static final int MUSIC_GREAT_CONCH_UNDERGROUND = 7095; public static final int MUSIC_SCAPE_SAIL = 7096; + public static final int MUSIC_BRUTUS_COW_BOSS = 8662; } } @@ -6926,6 +6929,7 @@ public static final class Row public static final int HISCORES_BOSSES_YAMA = 5130; public static final int HISCORES_BOSSES_DOOM_OF_MOKHAIOTL = 5484; public static final int HISCORES_BOSSES_GRYPHON_BOSS = 9447; + public static final int HISCORES_BOSSES_COWBOSS = 9655; } } @@ -7266,6 +7270,7 @@ public static final class Row public static final int CHARGES_EYE_OF_AYAK_RUNES = 5188; public static final int CHARGES_HORN_OF_PLENTY = 7039; public static final int CHARGES_SAILORS_AMULET = 7040; + public static final int CHARGES_COWBELL_AMULET = 9644; } } @@ -9175,6 +9180,7 @@ public static final class Row public static final int POH_TROPHY_HALIBUT = 7125; public static final int POH_TROPHY_BLUEFIN = 7126; public static final int POH_TROPHY_MARLIN = 7127; + public static final int POH_GARDEN_CENTREPIECE_6 = 9654; } } @@ -10865,6 +10871,14 @@ public static final class Row public static final int CATHERBY_TELEPORT = 7021; public static final int GHORROCK_TELEPORT = 7022; public static final int CARRALLANGAR_TELEPORT = 7023; + public static final int TROLLHEIM_TELEPORT = 9646; + public static final int PADDEWWA_TELEPORT = 9647; + public static final int LASSAR_TELEPORT = 9648; + public static final int DAREEYAK_TELEPORT = 9649; + public static final int OURANIA_TELEPORT = 9650; + public static final int BARBARIAN_TELEPORT = 9651; + public static final int KHAZARD_TELEPORT = 9652; + public static final int ICEPLATEAU_TELEPORT = 9653; } } @@ -12999,37 +13013,32 @@ public static final class SailingBoatFacilityStats /** * integer */ - public static final int COL_BOAT_CARGOHOLD_SIZE_UIM = 29; + public static final int COL_BOAT_FETID_WATER_RESISTANT = 29; /** * integer */ - public static final int COL_BOAT_FETID_WATER_RESISTANT = 30; + public static final int COL_BOAT_CRYSTAL_FLECKED_RESISTANT = 30; /** * integer */ - public static final int COL_BOAT_CRYSTAL_FLECKED_RESISTANT = 31; + public static final int COL_BOAT_TANGLED_KELP_RESISTANT = 31; /** * integer */ - public static final int COL_BOAT_TANGLED_KELP_RESISTANT = 32; + public static final int COL_BOAT_ICY_SEAS_RESISTANT = 32; /** * integer */ - public static final int COL_BOAT_ICY_SEAS_RESISTANT = 33; + public static final int COL_BOAT_MAX_WIND_MOTES = 33; /** * integer */ - public static final int COL_BOAT_MAX_WIND_MOTES = 34; - - /** - * integer - */ - public static final int COL_BOAT_ADDITIONAL_RECOVERY_COST_PERCENTAGE = 35; + public static final int COL_BOAT_ADDITIONAL_RECOVERY_COST_PERCENTAGE = 34; public static final class Row { @@ -16213,5 +16222,15 @@ public static final class Row public static final int DEADMANSKULL_INTERFACE_TAB_ATTUNE = 9640; } } + + public static final class CowbossScenerynpcs + { + public static final int ID = 211; + + public static final class Row + { + public static final int COWBOSS_SCENERYNPCS = 8661; + } + } /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java b/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java index a651c98ca6d..43e3778869d 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java @@ -954,6 +954,7 @@ public final class InterfaceID public static final int MENU_NEW = 947; public static final int DEADMANSKULL_INTERFACE = 948; public static final int QUETZALWHISTLE_MENU = 949; + public static final int COWBOSS_SCOREBOARD = 950; public static final class _100GuideEggsOverlay { @@ -8107,44 +8108,47 @@ public static final class BankDepositbox { public static final int UNIVERSE = 0x00c0_0000; public static final int FRAME = 0x00c0_0001; - public static final int CONTENTS = 0x00c0_0002; - public static final int WORN = 0x00c0_0003; - public static final int WORN_GRAPHIC0 = 0x00c0_0004; - public static final int WORN_GRAPHIC1 = 0x00c0_0005; - public static final int WORN_GRAPHIC2 = 0x00c0_0006; - public static final int WORN_GRAPHIC3 = 0x00c0_0007; - public static final int WORN_GRAPHIC4 = 0x00c0_0008; - public static final int SLOT0 = 0x00c0_0009; - public static final int SLOT1 = 0x00c0_000a; - public static final int SLOT2 = 0x00c0_000b; - public static final int SLOT3 = 0x00c0_000c; - public static final int SLOT4 = 0x00c0_000d; - public static final int SLOT5 = 0x00c0_000e; - public static final int SLOT7 = 0x00c0_000f; - public static final int SLOT9 = 0x00c0_0010; - public static final int SLOT10 = 0x00c0_0011; - public static final int SLOT12 = 0x00c0_0012; - public static final int SLOT13 = 0x00c0_0013; - public static final int EXTRA_QUIVER_SLOT = 0x00c0_0014; - public static final int EXTRA_QUIVER_AMMO_GRAPHIC = 0x00c0_0015; - public static final int EXTRA_QUIVER_AMMO = 0x00c0_0016; - public static final int INVENTORY = 0x00c0_0017; - public static final int INVENTORY_GRAPHIC0 = 0x00c0_0018; - public static final int ITEM_BACKGROUND = 0x00c0_0019; - public static final int INVENTORY_RECT2 = 0x00c0_001a; - public static final int INVENTORY_RECT3 = 0x00c0_001b; - public static final int DEPOSIT_ALL_BUTTONS = 0x00c0_001c; - public static final int DEPOSIT_WORN = 0x00c0_001d; - public static final int DEPOSIT_INV = 0x00c0_001e; - public static final int DEPOSIT_LOOTINGBAG = 0x00c0_001f; - public static final int QUANTITY_BUTTONS = 0x00c0_0020; - public static final int MENU = 0x00c0_0021; - public static final int _1 = 0x00c0_0022; - public static final int _5 = 0x00c0_0023; - public static final int _10 = 0x00c0_0024; - public static final int X = 0x00c0_0025; - public static final int ALL = 0x00c0_0026; - public static final int POPUP = 0x00c0_0027; + public static final int MENU_BUTTON = 0x00c0_0002; + public static final int CONTENTS = 0x00c0_0003; + public static final int WORN = 0x00c0_0004; + public static final int WORN_GRAPHIC0 = 0x00c0_0005; + public static final int WORN_GRAPHIC1 = 0x00c0_0006; + public static final int WORN_GRAPHIC2 = 0x00c0_0007; + public static final int WORN_GRAPHIC3 = 0x00c0_0008; + public static final int WORN_GRAPHIC4 = 0x00c0_0009; + public static final int SLOT0 = 0x00c0_000a; + public static final int SLOT1 = 0x00c0_000b; + public static final int SLOT2 = 0x00c0_000c; + public static final int SLOT3 = 0x00c0_000d; + public static final int SLOT4 = 0x00c0_000e; + public static final int SLOT5 = 0x00c0_000f; + public static final int SLOT7 = 0x00c0_0010; + public static final int SLOT9 = 0x00c0_0011; + public static final int SLOT10 = 0x00c0_0012; + public static final int SLOT12 = 0x00c0_0013; + public static final int SLOT13 = 0x00c0_0014; + public static final int EXTRA_QUIVER_SLOT = 0x00c0_0015; + public static final int EXTRA_QUIVER_AMMO_GRAPHIC = 0x00c0_0016; + public static final int EXTRA_QUIVER_AMMO = 0x00c0_0017; + public static final int INVENTORY = 0x00c0_0018; + public static final int INVENTORY_GRAPHIC0 = 0x00c0_0019; + public static final int ITEM_BACKGROUND = 0x00c0_001a; + public static final int INVENTORY_RECT2 = 0x00c0_001b; + public static final int INVENTORY_RECT3 = 0x00c0_001c; + public static final int DEPOSIT_ALL_BUTTONS = 0x00c0_001d; + public static final int DEPOSIT_WORN = 0x00c0_001e; + public static final int DEPOSIT_INV = 0x00c0_001f; + public static final int DEPOSIT_LOOTINGBAG = 0x00c0_0020; + public static final int QUANTITY_BUTTONS = 0x00c0_0021; + public static final int LOCK_MENU = 0x00c0_0022; + public static final int _1 = 0x00c0_0023; + public static final int _5 = 0x00c0_0024; + public static final int _10 = 0x00c0_0025; + public static final int X = 0x00c0_0026; + public static final int ALL = 0x00c0_0027; + public static final int POPUP = 0x00c0_0028; + public static final int MENU_CONTAINER = 0x00c0_0029; + public static final int DEPOSITWORN_TOGGLE = 0x00c0_002a; } public static final class Objectbox @@ -30870,5 +30874,28 @@ public static final class QuetzalwhistleMenu public static final int SELECTED_CURRENT = 0x03b5_0011; public static final int CLOSE = 0x03b5_0012; } + + public static final class CowbossScoreboard + { + public static final int UNIVERSE = 0x03b6_0000; + public static final int BACKGROUND = 0x03b6_0001; + public static final int CLOSE = 0x03b6_0002; + public static final int CLOSE_ICON = 0x03b6_0003; + public static final int CONTENT = 0x03b6_0004; + public static final int TITLE = 0x03b6_0005; + public static final int STATS = 0x03b6_0006; + public static final int PKC = 0x03b6_0007; + public static final int PKC_CONTENT = 0x03b6_0008; + public static final int PD = 0x03b6_0009; + public static final int PD_CONTENT = 0x03b6_000a; + public static final int PBT = 0x03b6_000b; + public static final int PBT_CONTENT = 0x03b6_000c; + public static final int GKC = 0x03b6_000d; + public static final int GKC_CONTENT = 0x03b6_000e; + public static final int GD = 0x03b6_000f; + public static final int GD_CONTENT = 0x03b6_0010; + public static final int GBT = 0x03b6_0011; + public static final int GBT_CONTENT = 0x03b6_0012; + } /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java b/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java index 170f664dc4c..ac6fb1be46e 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/ItemID.java @@ -86636,6 +86636,161 @@ public final class ItemID */ public static final int SAILING_FACILITY_BOTTLE_FULL = 33077; + /** + * 25th anniversary helmet + */ + public static final int _25TH_ANNIVERSARY_HELMET = 33080; + + /** + * 25th anniversary warrior tabard + */ + public static final int _25TH_ANNIVERSARY_TABARD_1 = 33082; + + /** + * 25th anniversary skeleton tabard + */ + public static final int _25TH_ANNIVERSARY_TABARD_2 = 33084; + + /** + * 25th anniversary 5x5 hat + */ + public static final int _25TH_ANNIVERSARY_HAT = 33086; + + /** + * Gary + */ + public static final int _25TH_HOST_FOLLOWER = 33088; + + /** + * Bottomless milk bucket + */ + public static final int BOTTOMLESS_MILK_BUCKET_FILLED = 33089; + + /** + * Bottomless milk bucket (empty) + */ + public static final int BOTTOMLESS_MILK_BUCKET = 33091; + + /** + * Cow slippers + */ + public static final int COW_SLIPPERS = 33093; + + /** + * Cow slippers + */ + public static final int COW_SLIPPERS_RECOL_1 = 33096; + + /** + * Cow slippers + */ + public static final int COW_SLIPPERS_RECOL_2 = 33097; + + /** + * Cow slippers + */ + public static final int COW_SLIPPERS_RECOL_3 = 33098; + + /** + * Brutus slippers + */ + public static final int COW_SLIPPERS_RECOL_4 = 33099; + + /** + * Mooleta + */ + public static final int MOOLETA = 33101; + + /** + * Cowbell amulet + */ + public static final int COWBELL_AMULET_EMPTY = 33103; + + /** + * Cowbell amulet + */ + public static final int COWBELL_AMULET = 33104; + + /** + * Raw t-bone steak + */ + public static final int RAW_TBONE_STEAK = 33106; + + /** + * Cooked t-bone steak + */ + public static final int TBONE_STEAK = 33109; + + /** + * Burnt t-bone steak + */ + public static final int TBONE_STEAK_BURNED = 33112; + + /** + * Bull bones + */ + public static final int BULL_BONES = 33115; + + /** + * Magic lamp + */ + public static final int COWBOSS_REWARD_LAMP = 33117; + + /** + * Abyssal potato + */ + public static final int DEMONIC_POTATO = 33118; + + /** + * Perfected quetzal whistle(i) + */ + public static final int HG_QUETZALWHISTLE_PERFECTED_INFINITE = 33120; + + /** + * Annihilation exit portal blueprints + */ + public static final int POH_EXIT_PORTAL_WILDERNESS_THEME = 33122; + + /** + * Beef + */ + public static final int COWBOSSPET = 33124; + + /** + * The groats principles + */ + public static final int COWQUEST_HUSBANDRY_BOOK = 33126; + + /** + * Milk sample + */ + public static final int COWQUEST_MILK_SAMPLE_1 = 33128; + + /** + * Milk sample + */ + public static final int COWQUEST_MILK_SAMPLE_2 = 33130; + + /** + * Exit portal + */ + public static final int POH_GARDEN_CENTREPIECE_6 = 33132; + + /** + * Pristine spider silk + */ + public static final int SLAYER_SPIDER_SILK = 33133; + + /** + * Silklined herb sack + */ + public static final int SLAYER_HERB_SACK_SILK = 33135; + + /** + * Open silklined herb sack + */ + public static final int SLAYER_HERB_SACK_SILK_OPEN = 33137; + public static final class Cert { public static final int TWPART1 = 7; @@ -91219,6 +91374,10 @@ public static final class Cert public static final int SAILING_FACILITY_BOTTLE_EMPTY = 33075; public static final int BREW_RED_RUM = 33078; public static final int BREW_BLUE_RUM = 33079; + public static final int COW_SLIPPERS = 33094; + public static final int RAW_TBONE_STEAK = 33107; + public static final int TBONE_STEAK = 33110; + public static final int TBONE_STEAK_BURNED = 33113; } public static final class Placeholder @@ -100672,6 +100831,29 @@ public static final class Placeholder public static final int SW_SLAYER_HELM_I_HOODED = 33071; public static final int PVPA_SLAYER_HELM_I_HOODED = 33073; public static final int SAILING_FACILITY_BOTTLE_EMPTY = 33076; + public static final int _25TH_ANNIVERSARY_HELMET = 33081; + public static final int _25TH_ANNIVERSARY_TABARD_1 = 33083; + public static final int _25TH_ANNIVERSARY_TABARD_2 = 33085; + public static final int _25TH_ANNIVERSARY_HAT = 33087; + public static final int BOTTOMLESS_MILK_BUCKET_FILLED = 33090; + public static final int BOTTOMLESS_MILK_BUCKET = 33092; + public static final int COW_SLIPPERS = 33095; + public static final int COW_SLIPPERS_RECOL_4 = 33100; + public static final int MOOLETA = 33102; + public static final int COWBELL_AMULET = 33105; + public static final int RAW_TBONE_STEAK = 33108; + public static final int TBONE_STEAK = 33111; + public static final int TBONE_STEAK_BURNED = 33114; + public static final int BULL_BONES = 33116; + public static final int DEMONIC_POTATO = 33119; + public static final int HG_QUETZALWHISTLE_PERFECTED_INFINITE = 33121; + public static final int POH_EXIT_PORTAL_WILDERNESS_THEME = 33123; + public static final int COWBOSSPET = 33125; + public static final int COWQUEST_HUSBANDRY_BOOK = 33127; + public static final int COWQUEST_MILK_SAMPLE_1 = 33129; + public static final int COWQUEST_MILK_SAMPLE_2 = 33131; + public static final int SLAYER_SPIDER_SILK = 33134; + public static final int SLAYER_HERB_SACK_SILK = 33136; } /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java b/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java index e01a8af855b..d936d06f154 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java @@ -27853,10 +27853,6 @@ public final class NpcID * Mark */ public static final int ROOFTOPS_GRACE_DOG = 5920; - - /** - * BigRedJapan - */ public static final int ROOFTOPS_BIGREDJAPAN = 5921; /** @@ -67716,5 +67712,263 @@ public final class NpcID * Tiger shark */ public static final int SAILING_TIGER_SHARK_NOOP = 15575; + + /** + * Gary + */ + public static final int _25TH_HOST_MODEL = 15576; + + /** + * Gary + */ + public static final int _25TH_HOST_HATLESS = 15577; + + /** + * Wizard Gary + */ + public static final int _25TH_HOST_UPGRADED = 15578; + + /** + * Gary + */ + public static final int _25TH_HOST_FOLLOWER = 15579; + public static final int _25TH_HOST_OUTSIDE = 15580; + public static final int _25TH_HAT_OUTSIDE = 15581; + + /** + * <col=00ffff>Gary's hat</col> + */ + public static final int _25TH_HAT_MODEL = 15582; + public static final int _25TH_HOST_INSIDE = 15583; + public static final int _25TH_HOST_REALM = 15584; + public static final int _25TH_GRAYZAG = 15585; + public static final int _25TH_PORTAL_MULTI = 15586; + + /** + * <col=00ffff>Portal</col> + */ + public static final int _25TH_PORTAL_MODEL = 15587; + + /** + * Thief + */ + public static final int _25TH_THIEF = 15588; + + /** + * Sookie + */ + public static final int _25TH_CAT = 15589; + + /** + * Gnome Child + */ + public static final int _25TH_ANNIVERSARY_GNOMECHILD = 15590; + + /** + * Thrander + */ + public static final int _25TH_ANNIVERSARY_THRANDER = 15591; + + /** + * Chuck + */ + public static final int _25TH_ANNIVERSARY_CHUCK = 15592; + + /** + * Pious Pete + */ + public static final int _25TH_ANNIVERSARY_PIOUSPETE = 15593; + + /** + * Mysterious Watcher + */ + public static final int _25TH_ANNIVERSARY_SARADOMIN = 15594; + + /** + * Mysterious Watcher + */ + public static final int _25TH_ANNIVERSARY_GUTHIX = 15595; + + /** + * Mysterious Watcher + */ + public static final int _25TH_ANNIVERSARY_ZAMORAK = 15596; + + /** + * Big Mo + */ + public static final int _25TH_ANNIVERSARY_BIGMO = 15597; + + /** + * Cheerleader + */ + public static final int _25TH_ANNIVERSARY_CHEERLEADER_1 = 15598; + + /** + * Cheerleader + */ + public static final int _25TH_ANNIVERSARY_CHEERLEADER_2 = 15599; + + /** + * Cheerleader + */ + public static final int _25TH_ANNIVERSARY_CHEERLEADER_3 = 15600; + + /** + * Black dragon + */ + public static final int _25TH_ANNIVERSARY_DRAGON_BLACK = 15601; + + /** + * Red dragon + */ + public static final int _25TH_ANNIVERSARY_DRAGON_RED = 15602; + + /** + * Blue dragon + */ + public static final int _25TH_ANNIVERSARY_DRAGON_BLUE = 15603; + + /** + * King black dragon + */ + public static final int _25TH_ANNIVERSARY_DRAGON_KING = 15604; + + /** + * Baby blue dragon + */ + public static final int _25TH_ANNIVERSARY_DRAGON_BABY = 15605; + + /** + * Lesser demon + */ + public static final int _25TH_ANNIVERSARY_DEMON_LESSER = 15606; + + /** + * Greater demon + */ + public static final int _25TH_ANNIVERSARY_DEMON_GREATER = 15607; + + /** + * Black demon + */ + public static final int _25TH_ANNIVERSARY_DEMON_BLACK = 15608; + + /** + * Scorpion + */ + public static final int _25TH_ANNIVERSARY_SCORPION = 15609; + + /** + * King Scorpion + */ + public static final int _25TH_ANNIVERSARY_KINGSCORPION = 15610; + + /** + * Orc + */ + public static final int _25TH_ANNIVERSARY_ORC = 15611; + + /** + * Lizard man + */ + public static final int _25TH_ANNIVERSARY_LIZARDMAN = 15612; + + /** + * Troll + */ + public static final int _25TH_ANNIVERSARY_TROLL = 15613; + + /** + * Cave Bug + */ + public static final int _25TH_ANNIVERSARY_CAVE_BUG_COMBAT = 15614; + + /** + * Cave Bug + */ + public static final int _25TH_ANNIVERSARY_CAVE_BUG_DECORATIVE = 15615; + + /** + * Kalphite Queen + */ + public static final int _25TH_ANNIVERSARY_KALPHITE_QUEEN_WALKING = 15616; + + /** + * Kalphite Queen + */ + public static final int _25TH_ANNIVERSARY_KALPHITE_QUEEN_DEAD = 15617; + + /** + * Kalphite Queen + */ + public static final int _25TH_ANNIVERSARY_KALPHITE_QUEEN_FLYING = 15618; + + /** + * Fire giant + */ + public static final int _25TH_ANNIVERSARY_FIRE_GIANT = 15619; + + /** + * Hill Giant + */ + public static final int _25TH_ANNIVERSARY_HILL_GIANT = 15620; + + /** + * Goblin + */ + public static final int _25TH_ANNIVERSARY_GOBLIN = 15621; + + /** + * BigRedJapan + */ + public static final int ROOFTOPS_BIGREDJAPAN_OP = 15622; + + /** + * BigRedJapan + */ + public static final int ROOFTOPS_BIGREDJAPAN_NOOP = 15623; + public static final int COWBOSS_MAPPED = 15624; + + /** + * Bull + */ + public static final int COWBOSS_UNNAMED = 15625; + + /** + * Brutus + */ + public static final int COWBOSS = 15626; + + /** + * Brutus + */ + public static final int COWBOSS_ROUTEFIND = 15627; + + /** + * Demonic Brutus + */ + public static final int COWBOSS_HARDMODE = 15628; + + /** + * Demonic Brutus + */ + public static final int COWBOSS_HARDMODE_GHOST = 15629; + public static final int COWBOSS_INVISIBLE_PROJ_NPC = 15630; + + /** + * Beef + */ + public static final int COWBOSS_PET = 15631; + + /** + * Cassius + */ + public static final int COWBOSS_FARMER = 15632; + + /** + * Beef + */ + public static final int POH_COWBOSS_PET = 15633; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java b/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java index 2423cd88c9d..4474f1237eb 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java @@ -29742,6 +29742,7 @@ public class ObjectID1 * Tree */ public static final int REGICIDE_TREE_DEAD1SWAMP_WEB = 42649; + public static final int VM_BASEMENT_WALL_GROUND_FLOOR_NOBACK = 42650; public static final int QUEST_START_ICON_ANIMALMAGNETISM = 42651; public static final int QUEST_START_ICON_ANOTHERSLICEOFHAM = 42652; public static final int QUEST_START_ICON_ASCENTOFARCEUUS = 42653; @@ -40161,7 +40162,11 @@ public class ObjectID1 public static final int WILD_CAVE_EXIT01 = 47175; public static final int GREYBOX_TOMB_WALL02_DARK01 = 47176; public static final int GREYBOX_TOMB_WALL02_DARK02 = 47177; - public static final int OSB10_HOLIDAY_ICON = 47178; + + /** + * Thick Web + */ + public static final int HOSDUN_SARACHNIS_ENTRANCE_INSTANCE = 47178; public static final int OSB10_TABLE = 47179; /** @@ -71677,6 +71682,26 @@ public class ObjectID1 * Coral dredger */ public static final int TRR_CORAL_DREDGER_FIXED = 58501; + + /** + * Tile + */ + public static final int _25TH_GRID_BLANK = 58502; + + /** + * RuneScape memento + */ + public static final int _25TH_GRID_RUNESCAPE_MODEL = 58503; + + /** + * Attack memento + */ + public static final int _25TH_GRID_ATTACK_MODEL = 58504; + + /** + * Strength memento + */ + public static final int _25TH_GRID_STRENGTH_MODEL = 58505; public static final int TRR_PIER_SUPPORT_PILLAR01A = 58506; public static final int TRR_PIER_SUPPORT_STRAIGHT01A = 58507; public static final int TRR_PIER_SUPPORT_CORNER_OUTSIDE01A = 58508; @@ -75072,7 +75097,7 @@ public class ObjectID1 public static final int SAILING_KEG_WHIRLPOOL_SURPRISE = 59694; /** - * Keg of kraken ink sout + * Keg of kraken ink stout */ public static final int SAILING_KEG_KRAKEN_INK_STOUT = 59695; @@ -78189,5 +78214,524 @@ public class ObjectID1 * Fountain */ public static final int FOUNTAIN_2X3 = 60681; + + /** + * Ranged memento + */ + public static final int _25TH_GRID_RANGED_MODEL = 60682; + + /** + * Magic memento + */ + public static final int _25TH_GRID_MAGIC_MODEL = 60683; + + /** + * Defence memento + */ + public static final int _25TH_GRID_DEFENCE_MODEL = 60684; + + /** + * Hitpoints memento + */ + public static final int _25TH_GRID_HITPOINTS_MODEL = 60685; + + /** + * Prayer memento + */ + public static final int _25TH_GRID_PRAYER_MODEL = 60686; + + /** + * Agility memento + */ + public static final int _25TH_GRID_AGILITY_MODEL = 60687; + + /** + * Herblore memento + */ + public static final int _25TH_GRID_HERBLORE_MODEL = 60688; + + /** + * Thieving memento + */ + public static final int _25TH_GRID_THIEVING_MODEL = 60689; + + /** + * Crafting memento + */ + public static final int _25TH_GRID_CRAFTING_MODEL = 60690; + + /** + * Runecraft memento + */ + public static final int _25TH_GRID_RUNECRAFT_MODEL = 60691; + + /** + * Mining memento + */ + public static final int _25TH_GRID_MINING_MODEL = 60692; + + /** + * Smithing memento + */ + public static final int _25TH_GRID_SMITHING_MODEL = 60693; + + /** + * Fishing memento + */ + public static final int _25TH_GRID_FISHING_MODEL = 60694; + + /** + * Cooking memento + */ + public static final int _25TH_GRID_COOKING_MODEL = 60695; + + /** + * Firemaking memento + */ + public static final int _25TH_GRID_FIREMAKING_MODEL = 60696; + + /** + * Woodcutting memento + */ + public static final int _25TH_GRID_WOODCUTTING_MODEL = 60697; + + /** + * Fletching memento + */ + public static final int _25TH_GRID_FLETCHING_MODEL = 60698; + + /** + * Slayer memento + */ + public static final int _25TH_GRID_SLAYER_MODEL = 60699; + + /** + * Farming memento + */ + public static final int _25TH_GRID_FARMING_MODEL = 60700; + + /** + * Construction memento + */ + public static final int _25TH_GRID_CONSTRUCTION_MODEL = 60701; + + /** + * Hunter memento + */ + public static final int _25TH_GRID_HUNTER_MODEL = 60702; + + /** + * Sailing memento + */ + public static final int _25TH_GRID_SAILING_MODEL = 60703; + public static final int _25TH_GRID_RUNESCAPE_MULTI = 60704; + public static final int _25TH_GRID_ATTACK_MULTI = 60705; + public static final int _25TH_GRID_STRENGTH_MULTI = 60706; + public static final int _25TH_GRID_RANGED_MULTI = 60707; + public static final int _25TH_GRID_MAGIC_MULTI = 60708; + public static final int _25TH_GRID_DEFENCE_MULTI = 60709; + public static final int _25TH_GRID_HITPOINTS_MULTI = 60710; + public static final int _25TH_GRID_PRAYER_MULTI = 60711; + public static final int _25TH_GRID_AGILITY_MULTI = 60712; + public static final int _25TH_GRID_HERBLORE_MULTI = 60713; + public static final int _25TH_GRID_THIEVING_MULTI = 60714; + public static final int _25TH_GRID_CRAFTING_MULTI = 60715; + public static final int _25TH_GRID_RUNECRAFT_MULTI = 60716; + public static final int _25TH_GRID_MINING_MULTI = 60717; + public static final int _25TH_GRID_SMITHING_MULTI = 60718; + public static final int _25TH_GRID_FISHING_MULTI = 60719; + public static final int _25TH_GRID_COOKING_MULTI = 60720; + public static final int _25TH_GRID_FIREMAKING_MULTI = 60721; + public static final int _25TH_GRID_WOODCUTTING_MULTI = 60722; + public static final int _25TH_GRID_FLETCHING_MULTI = 60723; + public static final int _25TH_GRID_SLAYER_MULTI = 60724; + public static final int _25TH_GRID_FARMING_MULTI = 60725; + public static final int _25TH_GRID_CONSTRUCTION_MULTI = 60726; + public static final int _25TH_GRID_HUNTER_MULTI = 60727; + public static final int _25TH_GRID_SAILING_MULTI = 60728; + + /** + * Table + */ + public static final int _25TH_TABLE01_FOOD01 = 60729; + + /** + * Table + */ + public static final int _25TH_TABLE02_PRESENTS01 = 60730; + + /** + * Ladder + */ + public static final int _25TH_LADDER_BOTTOM = 60731; + + /** + * Ladder + */ + public static final int _25TH_LADDER_TOP = 60732; + public static final int _25TH_STONE = 60733; + + /** + * Portal + */ + public static final int _25TH_PORTAL_EXIT = 60734; + + /** + * Barrier + */ + public static final int _25TH_ARENA_FENCE = 60735; + + /** + * Sleeping bag + */ + public static final int _25TH_ARENA_SLEEPINGBAG = 60736; + + /** + * Statue + */ + public static final int _25TH_ARENA_STATUE = 60737; + + /** + * Archway + */ + public static final int _25TH_ARENA_WALL_ARCH_MID = 60738; + + /** + * Light + */ + public static final int _25TH_SPOTLIGHT_1 = 60739; + + /** + * Light + */ + public static final int _25TH_SPOTLIGHT_2 = 60740; + + /** + * Light + */ + public static final int _25TH_SPOTLIGHT_3 = 60741; + + /** + * Light + */ + public static final int _25TH_SPOTLIGHT_4 = 60742; + + /** + * Light + */ + public static final int _25TH_SPOTLIGHT_5 = 60743; + + /** + * Light + */ + public static final int _25TH_SPOTLIGHT_6 = 60744; + + /** + * Birthday Banner + */ + public static final int BIRTHDAY_BANNER01_YEAR_STANDING01 = 60745; + public static final int BIRTHDAY_BANNER01_YEAR_HANGING01 = 60746; + public static final int BIRTHDAY_BANNER01_YEAR_HANGING02 = 60747; + public static final int BIRTHDAY_BANNER01_YEAR_HANGING03 = 60748; + public static final int BIRTHDAY_BANNER01_YEAR_HANGING04 = 60749; + public static final int BIRTHDAY_BANNER01_YEAR_HANGING05 = 60750; + public static final int BIRTHDAY_BANNER01_YEAR_HANGING06 = 60751; + public static final int BIRTHDAY_BANNER01_ANNI25_HANGING01 = 60752; + public static final int BIRTHDAY_BANNER01_ANNI25_HANGING02 = 60753; + public static final int BIRTHDAY_BANNER01_ANNI25_HANGING03 = 60754; + public static final int BIRTHDAY_BANNER01_ANNI25_HANGING04 = 60755; + + /** + * Birthday Banner + */ + public static final int BIRTHDAY_BANNER01_ANNI25_STANDING01 = 60756; + public static final int BIRTHDAY_BUNTING01_MIDDLE01_OFFSET01 = 60757; + public static final int BIRTHDAY_BUNTING01_MIDDLE01_VARIANT02_CORNER = 60758; + + /** + * Web + */ + public static final int SARACHNIS_WEB_NOOP = 60759; + + /** + * Gate + */ + public static final int FENCEGATE_R_COWBOSS_START = 60760; + + /** + * Gate + */ + public static final int FENCEGATE_L_COWBOSS_START_NOOP = 60761; + + /** + * Gate + */ + public static final int FENCEGATE_R_COWBOSS_START_NOOP = 60762; + + /** + * Gate + */ + public static final int FENCEGATE_L_COWBOSS_START = 60763; + + /** + * Gate + */ + public static final int FENCEGATE_R_COWBOSS_EXIT = 60764; + + /** + * Gate + */ + public static final int FENCEGATE_L_COWBOSS_EXIT = 60765; + public static final int COWBOSS_SCOREBOARD_MULTI = 60766; + + /** + * Scoreboard + */ + public static final int COWBOSS_SCOREBOARD = 60767; + + /** + * Scoreboard + */ + public static final int COWBOSS_SCOREBOARD_UBER = 60768; + + /** + * Warning Sign + */ + public static final int COWBOSS_SIGN_WARNING = 60769; + public static final int COWBOSS_DEMONIC_POTATO_MULTI = 60770; + + /** + * Growth + */ + public static final int COWBOSS_DEMONIC_POTATO_NOOP = 60771; + + /** + * Growth + */ + public static final int COWBOSS_DEMONIC_POTATO = 60772; + public static final int BLOCKING_MILK = 60773; + + /** + * Trollheim Portal + */ + public static final int POH_PORTAL_LEAGUE_5_TROLLHEIM = 60774; + + /** + * Paddewwa Portal + */ + public static final int POH_PORTAL_LEAGUE_5_PADDEWWA = 60775; + + /** + * Lassar Portal + */ + public static final int POH_PORTAL_LEAGUE_5_LASSAR = 60776; + + /** + * Dareeyak Portal + */ + public static final int POH_PORTAL_LEAGUE_5_DAREEYAK = 60777; + + /** + * Ourania Portal + */ + public static final int POH_PORTAL_LEAGUE_5_OURANIA = 60778; + + /** + * Barbarian Outpost Portal + */ + public static final int POH_PORTAL_LEAGUE_5_BARBARIAN = 60779; + + /** + * Port Khazard Portal + */ + public static final int POH_PORTAL_LEAGUE_5_KHAZARD = 60780; + + /** + * Ice Plateau Portal + */ + public static final int POH_PORTAL_LEAGUE_5_ICEPLATEAU = 60781; + + /** + * Respawn Portal + */ + public static final int POH_PORTAL_LEAGUE_5_RESPAWN = 60782; + + /** + * Boat Portal + */ + public static final int POH_PORTAL_LEAGUE_5_BOAT = 60783; + public static final int QUEST_START_ICON_IDESOFMILK = 60784; + + /** + * Shelves + */ + public static final int COWQUEST_SETH_SHELF = 60785; + public static final int ARCHEDCAGE_BLACKBACKA_BOSS_L = 60786; + public static final int ARCHEDCAGE_BLACKBACKA_BOSS_R = 60787; + + /** + * Dairy cow + */ + public static final int FAT_COW_FAWEST = 60788; + + /** + * Portal + */ + public static final int POH_EXIT_PORTAL_WILDERNESS = 60789; + + /** + * Trollheim Portal + */ + public static final int POH_PORTAL_TEAK_TROLLHEIM = 60790; + + /** + * Paddewwa Portal + */ + public static final int POH_PORTAL_TEAK_PADDEWWA = 60791; + + /** + * Lassar Portal + */ + public static final int POH_PORTAL_TEAK_LASSAR = 60792; + + /** + * Dareeyak Portal + */ + public static final int POH_PORTAL_TEAK_DAREEYAK = 60793; + + /** + * Ourania Portal + */ + public static final int POH_PORTAL_TEAK_OURANIA = 60794; + + /** + * Barbarian Outpost Portal + */ + public static final int POH_PORTAL_TEAK_BARBARIAN = 60795; + + /** + * Port Khazard Portal + */ + public static final int POH_PORTAL_TEAK_KHAZARD = 60796; + + /** + * Ice Plateau Portal + */ + public static final int POH_PORTAL_TEAK_ICEPLATEAU = 60797; + + /** + * Respawn Portal + */ + public static final int POH_PORTAL_TEAK_RESPAWN = 60798; + + /** + * Boat Portal + */ + public static final int POH_PORTAL_TEAK_BOAT = 60799; + + /** + * Trollheim Portal + */ + public static final int POH_PORTAL_MAG_TROLLHEIM = 60800; + + /** + * Paddewwa Portal + */ + public static final int POH_PORTAL_MAG_PADDEWWA = 60801; + + /** + * Lassar Portal + */ + public static final int POH_PORTAL_MAG_LASSAR = 60802; + + /** + * Dareeyak Portal + */ + public static final int POH_PORTAL_MAG_DAREEYAK = 60803; + + /** + * Ourania Portal + */ + public static final int POH_PORTAL_MAG_OURANIA = 60804; + + /** + * Barbarian Outpost Portal + */ + public static final int POH_PORTAL_MAG_BARBARIAN = 60805; + + /** + * Port Khazard Portal + */ + public static final int POH_PORTAL_MAG_KHAZARD = 60806; + + /** + * Ice Plateau Portal + */ + public static final int POH_PORTAL_MAG_ICEPLATEAU = 60807; + + /** + * Respawn Portal + */ + public static final int POH_PORTAL_MAG_RESPAWN = 60808; + + /** + * Boat Portal + */ + public static final int POH_PORTAL_MAG_BOAT = 60809; + + /** + * Trollheim Portal + */ + public static final int POH_PORTAL_MARBLE_TROLLHEIM = 60810; + + /** + * Paddewwa Portal + */ + public static final int POH_PORTAL_MARBLE_PADDEWWA = 60811; + + /** + * Lassar Portal + */ + public static final int POH_PORTAL_MARBLE_LASSAR = 60812; + + /** + * Dareeyak Portal + */ + public static final int POH_PORTAL_MARBLE_DAREEYAK = 60813; + + /** + * Ourania Portal + */ + public static final int POH_PORTAL_MARBLE_OURANIA = 60814; + + /** + * Barbarian Outpost Portal + */ + public static final int POH_PORTAL_MARBLE_BARBARIAN = 60815; + + /** + * Port Khazard Portal + */ + public static final int POH_PORTAL_MARBLE_KHAZARD = 60816; + + /** + * Ice Plateau Portal + */ + public static final int POH_PORTAL_MARBLE_ICEPLATEAU = 60817; + + /** + * Respawn Portal + */ + public static final int POH_PORTAL_MARBLE_RESPAWN = 60818; + + /** + * Boat Portal + */ + public static final int POH_PORTAL_MARBLE_BOAT = 60819; + public static final int BOATKIT_SHIPHULL_STRAIGHT01_DAMAGED_L = 60820; + public static final int BOATKIT_SHIPHULL_STRAIGHT01_DAMAGED_R = 60821; + public static final int BOATKIT_SHIPHULL_STRAIGHT01_DAMAGED_MID = 60822; + public static final int BOATKIT_DECK_STRAIGHT01_BROKEN01 = 60823; + public static final int BOATKIT_DECK_STRAIGHT01_BROKEN01_MIRROR = 60824; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/SpotanimID.java b/runelite-api/src/main/java/net/runelite/api/gameval/SpotanimID.java index aa0d430bc8f..448966b197c 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/SpotanimID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/SpotanimID.java @@ -3579,5 +3579,34 @@ public final class SpotanimID public static final int DEADMAN_2026_SOTD_SPECIAL_START = 3572; public static final int DEADMAN_2026_SOTD_SPECIAL_EXTRA = 3573; public static final int SARADOMIN_LIGHTNING_DEADMAN = 3574; + public static final int DRAGON_FIREBREATH_OLD = 3575; + public static final int DRAGON_RANGED_FIRE_ATTACK_OLD = 3576; + public static final int DRAGON_ICEBREATH_OLD = 3577; + public static final int DRAGON_ACIDBREATH_OLD = 3578; + public static final int DRAGON_TRIPLE_FIREBREATH_ATTACK_OLD = 3579; + public static final int KALPHITE_GLOW_OLD = 3580; + public static final int KALPHITE_QUEEN_GLOW_OLD = 3581; + public static final int KALPHITE_GLOW_TRAVEL_OLD = 3582; + public static final int KALPHITE_GLOW_IMPACT_OLD = 3583; + public static final int _25TH_PORTAL_TELEPORT = 3584; + public static final int VFX_WHITE_PARTICLES = 3585; + public static final int VFX_WHITE_PARTICLES_REVERSE = 3586; + public static final int VFX_BEEF_TORNADO = 3587; + public static final int VFX_COWBOSS_STOMP_IMPACT01 = 3588; + public static final int VFX_COWBOSS_STOMP_IMPACT02 = 3589; + public static final int VFX_COWBOSS_STOMP_IMPACT03 = 3590; + public static final int VFX_COWBOSS_HM_RANGED_01 = 3591; + public static final int VFX_COWBOSS_HM_MELEE_01 = 3592; + public static final int VFX_COWBOSS_HM_MAGIC_01 = 3593; + public static final int VFX_COWBOSS_HM_IMPACT_RANGED_01 = 3594; + public static final int VFX_COWBOSS_HM_IMPACT_MELEE_01 = 3595; + public static final int VFX_COWBOSS_HM_IMPACT_MAGIC_01 = 3596; + public static final int VFX_COWBOSS_HM_LAUNCH_RANGED_01 = 3597; + public static final int VFX_COWBOSS_HM_LAUNCH_MELEE_01 = 3598; + public static final int VFX_COWBOSS_HM_LAUNCH_MAGIC_01 = 3599; + public static final int VFX_COWBOSS_HM_SPAWN_RANGED_01 = 3600; + public static final int VFX_COWBOSS_HM_SPAWN_MELEE_01 = 3601; + public static final int VFX_COWBOSS_HM_SPAWN_MAGIC_01 = 3602; + public static final int VFX_HUMAN_COWBOSS_TELEPORT01 = 3603; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java b/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java index f3f0c237194..9f5047b5bba 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java @@ -2750,5 +2750,18 @@ public final class VarPlayerID public static final int MUSIC_PLAYLIST_3_48 = 5386; public static final int MUSIC_PLAYLIST_3_49 = 5387; public static final int MUSIC_PLAYLIST_3_50 = 5388; + public static final int OPTIONS_VOLUMES_SAVED_DESKTOP_1 = 5396; + public static final int OPTIONS_VOLUMES_SAVED_DESKTOP_2 = 5397; + public static final int OPTIONS_VOLUMES_SAVED_MOBILE_1 = 5398; + public static final int OPTIONS_VOLUMES_SAVED_MOBILE_2 = 5399; + public static final int MUSIC_PLAYER_COLOUR_PLAYING = 5401; + public static final int COWBOSS_MISC = 5405; + public static final int TOTAL_COWBOSS_KILLS = 5407; + public static final int TOTAL_COWBOSS_HARDMODE_KILLS = 5408; + public static final int COWQUEST_MAIN = 5412; + public static final int POH_NEXUS_TELEPORT8 = 5413; + public static final int POH_NEXUS_TELEPORT9 = 5414; + public static final int POH_NEXUS_TELEPORT8_TEMP = 5415; + public static final int POH_NEXUS_TELEPORT9_TEMP = 5416; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java b/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java index d2633b6b3a4..2d8429e4627 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java @@ -14248,5 +14248,81 @@ public final class VarbitID public static final int MUSIC_PLAYLIST_3_TRACK_98 = 20035; public static final int MUSIC_PLAYLIST_3_TRACK_99 = 20036; public static final int MUSIC_PLAYLIST_3_TRACK_100 = 20037; + public static final int OPTION_MASTER_VOLUME_DESKTOP = 20038; + public static final int OPTION_MASTER_VOLUME_SAVED_DESKTOP = 20039; + public static final int OPTION_MUSIC_DESKTOP = 20040; + public static final int OPTION_MUSIC_SAVED_DESKTOP = 20041; + public static final int OPTION_SOUNDS_DESKTOP = 20042; + public static final int OPTION_SOUNDS_SAVED_DESKTOP = 20043; + public static final int OPTION_AREASOUNDS_DESKTOP = 20044; + public static final int OPTION_AREASOUNDS_SAVED_DESKTOP = 20045; + public static final int OPTION_MASTER_VOLUME_MOBILE = 20046; + public static final int OPTION_MASTER_VOLUME_SAVED_MOBILE = 20047; + public static final int OPTION_MUSIC_MOBILE = 20048; + public static final int OPTION_MUSIC_SAVED_MOBILE = 20049; + public static final int OPTION_SOUNDS_MOBILE = 20050; + public static final int OPTION_SOUNDS_SAVED_MOBILE = 20051; + public static final int OPTION_AREASOUNDS_MOBILE = 20052; + public static final int OPTION_AREASOUNDS_SAVED_MOBILE = 20053; + public static final int _25TH_TILES = 20054; + public static final int _25TH_TILE_RUNESCAPE = 20055; + public static final int _25TH_TILE_ATTACK = 20056; + public static final int _25TH_TILE_STRENGTH = 20057; + public static final int _25TH_TILE_RANGED = 20058; + public static final int _25TH_TILE_MAGIC = 20059; + public static final int _25TH_TILE_DEFENCE = 20060; + public static final int _25TH_TILE_HITPOINTS = 20061; + public static final int _25TH_TILE_PRAYER = 20062; + public static final int _25TH_TILE_AGILITY = 20063; + public static final int _25TH_TILE_HERBLORE = 20064; + public static final int _25TH_TILE_THIEVING = 20065; + public static final int _25TH_TILE_CRAFTING = 20066; + public static final int _25TH_TILE_RUNECRAFT = 20067; + public static final int _25TH_TILE_MINING = 20068; + public static final int _25TH_TILE_SMITHING = 20069; + public static final int _25TH_TILE_FISHING = 20070; + public static final int _25TH_TILE_COOKING = 20071; + public static final int _25TH_TILE_FIREMAKING = 20072; + public static final int _25TH_TILE_WOODCUTTING = 20073; + public static final int _25TH_TILE_FLETCHING = 20074; + public static final int _25TH_TILE_SLAYER = 20075; + public static final int _25TH_TILE_FARMING = 20076; + public static final int _25TH_TILE_CONSTRUCTION = 20077; + public static final int _25TH_TILE_HUNTER = 20078; + public static final int _25TH_TILE_SAILING = 20079; + public static final int PRIDE23_REDUNDANTBITS = 20080; + public static final int _25TH_PROGRESS = 20081; + public static final int _25TH_HOST_OUTSIDE = 20082; + public static final int CA_TOTAL_TASKS_COMPLETED_COWBOSS = 20083; + public static final int COWBOSS_SCOREBOARDS = 20090; + public static final int DEPOSITBOX_HIDEDEPOSITWORN = 20095; + public static final int REV_CAVE_TELE_LOCATION = 20096; + public static final int CHARGES_COWBELL_AMULET_QUANTITY = 20097; + public static final int COLLECTION_BOSSES_COWBOSS_COMPLETED = 20100; + public static final int COWQUEST = 20106; + public static final int COWQUEST_GILLIE_INFORMATION = 20107; + public static final int COWQUEST_SETH_INFORMATION = 20108; + public static final int COWQUEST_REWARD = 20109; + public static final int COWBOSS_REWARD_LAMP = 20110; + public static final int POH_NEXUS_TELE_36 = 20111; + public static final int POH_NEXUS_TELE_37 = 20112; + public static final int POH_NEXUS_TELE_38 = 20113; + public static final int POH_NEXUS_TELE_39 = 20114; + public static final int POH_NEXUS_TELE_40 = 20115; + public static final int POH_NEXUS_TELE_41 = 20116; + public static final int POH_NEXUS_TELE_42 = 20117; + public static final int POH_NEXUS_TELE_43 = 20118; + public static final int POH_NEXUS_TELE_44 = 20119; + public static final int POH_NEXUS_TELE_45 = 20120; + public static final int POH_NEXUS_TELE_36_TEMP = 20121; + public static final int POH_NEXUS_TELE_37_TEMP = 20122; + public static final int POH_NEXUS_TELE_38_TEMP = 20123; + public static final int POH_NEXUS_TELE_39_TEMP = 20124; + public static final int POH_NEXUS_TELE_40_TEMP = 20125; + public static final int POH_NEXUS_TELE_41_TEMP = 20126; + public static final int POH_NEXUS_TELE_42_TEMP = 20127; + public static final int POH_NEXUS_TELE_43_TEMP = 20128; + public static final int POH_NEXUS_TELE_44_TEMP = 20129; + public static final int POH_NEXUS_TELE_45_TEMP = 20130; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java b/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java index 1df3853e0c0..a694343277c 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/game/NpcUtil.java @@ -270,6 +270,8 @@ public void onAnimationChanged(AnimationChanged animationChanged) break; } // intentional fallthrough + // The Shellbane Gryphon has a non-standard death that does not work with isDead() so instead check the animation + case AnimationID.GRYPHON_BOSS_DEATH01: case AnimationID.TOP_SPIDER_MAGIC_DEATH_DETONATE: case AnimationID.TOP_SPIDER_RANGED_DEATH_DETONATE: case AnimationID.TOP_SPIDER_MELEE_DEATH_DETONATE: diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/LayoutManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/LayoutManager.java index 3d857367b93..ad1f322c2a5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/LayoutManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/LayoutManager.java @@ -516,9 +516,10 @@ private int matchPlaceholder(Set bank, int itemId) private int matchesVariant(Set bank, int itemId) { int baseId = ItemVariationMapping.map(itemId); - if (baseId != itemId) + Collection variations = ItemVariationMapping.getVariations(baseId); + if (variations.size() > 1) { - for (int variationId : ItemVariationMapping.getVariations(baseId)) + for (int variationId : variations) { if (bank.contains(variationId)) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java index b88520f1770..b01aaffb9ee 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java @@ -996,7 +996,8 @@ private void addTabActions(TagTab tab, Widget w) w.setAction(TAB_OP_CHANGE_ICON, CHANGE_ICON); if (!TAGTABS.equals(tab.getTag())) { - w.setAction(TAB_OP_LAYOUT, activeLayout != null ? DISABLE_LAYOUT : ENABLE_LAYOUT); + Layout layout = layoutManager.loadLayout(tab.getTag()); + w.setAction(TAB_OP_LAYOUT, layout != null ? DISABLE_LAYOUT : ENABLE_LAYOUT); } w.setAction(TAB_OP_EXPORT_TAB, EXPORT_TAB); w.setAction(TAB_OP_RENAME_TAB, RENAME_TAB); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java index c02bfc0100b..6709aef51f7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java @@ -77,6 +77,7 @@ public enum Boss ARAXXOR(NpcID.ARAXXOR_DEAD, 15, RSTimeUnit.GAME_TICKS, ItemID.ARAXXORPET, true), AMOXLIATL(NpcID.AMOXLIATL, 28, RSTimeUnit.GAME_TICKS, ItemID.AMOXLIATLPET), HUEYCOATL(NpcID.HUEY_HEAD_DEFEATED, 50, RSTimeUnit.GAME_TICKS, ItemID.HUEYPET), + SHELLBANE_GRYPHON(NpcID.GRYPHON_BOSS, 12, ChronoUnit.SECONDS, ItemID.GRYPHONBOSSPET_ADULT), ; private static final Map bosses; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java index 85cfc867201..a5a57e45b13 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java @@ -279,7 +279,7 @@ public class CoordinateClue extends ClueScroll implements LocationClueScroll CoordinateClue.builder() .itemId(ItemID.TRAIL_MEDIUM_SEXTANT_SAIL) .location(new WorldPoint(3183, 2453, 0)) - .directions("Center of the Great Conch.") + .directions("Center of the Great Conch (CJQ).") .build(), // Hard CoordinateClue.builder() diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index e1eb875364a..fb9ee3d5f7f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -1658,6 +1658,8 @@ public void loadScene(WorldView worldView, Scene scene) } } + Map roofChanges = new HashMap<>(); + // find zones which overlap and copy them Zone[][] newZones = new Zone[SCENE_ZONES][SCENE_ZONES]; final GameState gameState = client.getGameState(); @@ -1667,6 +1669,9 @@ public void loadScene(WorldView worldView, Scene scene) int[][][] prevTemplates = prev.getInstanceTemplateChunks(); int[][][] curTemplates = scene.getInstanceTemplateChunks(); + int[][][] prids = prev.getRoofs(); + int[][][] nrids = scene.getRoofs(); + for (int x = 0; x < SCENE_ZONES; ++x) { next: @@ -1715,6 +1720,37 @@ public void loadScene(WorldView worldView, Scene scene) assert old.sizeO > 0 || old.sizeA > 0; + // Roof ids aren't consistent between scenes, so build a mapping of old -> new roof ids + // Sometimes groups split or merge, so we can't copy the zone in that case + for (int level = 0; level < 4; level++) + { + for (int tx = 0; tx < 8; tx++) + { + for (int tz = 0; tz < 8; tz++) + { + int prid = prids[level][(ox << 3) + tx][(oz << 3) + tz]; + int nrid = nrids[level][(x << 3) + tx][(z << 3) + tz]; + + if (prid != nrid && (prid == 0 || nrid == 0)) + { + log.trace("Roof mismatch: {} -> {}", prid, nrid); + continue next; + } + + Integer orid = roofChanges.putIfAbsent(prid, nrid); + if (orid == null) + { + log.trace("Roof change: {} -> {}", prid, nrid); + } + else if (orid != nrid) + { + log.trace("Roof mismatch: {} -> {} vs {}", prid, nrid, orid); + continue next; + } + } + } + } + assert old.cull; old.cull = false; @@ -1828,51 +1864,6 @@ public void loadScene(WorldView worldView, Scene scene) } log.debug("Scene upload time {}", sw); - // Roof ids aren't consistent between scenes, so build a mapping of old -> new roof ids - Map roofChanges; - { - int[][][] prids = prev.getRoofs(); - int[][][] nrids = scene.getRoofs(); - dx <<= 3; - dy <<= 3; - roofChanges = new HashMap<>(); - - sw = Stopwatch.createStarted(); - for (int level = 0; level < 4; ++level) - { - for (int x = 0; x < Constants.EXTENDED_SCENE_SIZE; ++x) - { - for (int z = 0; z < Constants.EXTENDED_SCENE_SIZE; ++z) - { - int ox = x + dx; - int oz = z + dy; - - // old zone still in scene? - if (ox >= 0 && oz >= 0 && ox < Constants.EXTENDED_SCENE_SIZE && oz < Constants.EXTENDED_SCENE_SIZE) - { - int prid = prids[level][ox][oz]; - int nrid = nrids[level][x][z]; - if (prid > 0 && nrid > 0 && prid != nrid) - { - Integer old = roofChanges.putIfAbsent(prid, nrid); - if (old == null) - { - log.trace("Roof change: {} -> {}", prid, nrid); - } - else if (old != nrid) - { - log.debug("Roof change mismatch: {} -> {} vs {}", prid, nrid, old); - } - } - } - } - } - } - sw.stop(); - - log.debug("Roof remapping time {}", sw); - } - nextZones = newZones; nextRoofChanges = roofChanges; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java index e04d3dc41fb..273a4405c2c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java @@ -266,6 +266,7 @@ public void onAnimationChanged(AnimationChanged event) case AnimationID.HUMAN_FLETCHING_ADD_BOLT_TIPS_ADAMANT: case AnimationID.HUMAN_FLETCHING_ADD_BOLT_TIPS_RUNE: case AnimationID.HUMAN_FLETCHING_ADD_BOLT_TIPS_DRAGON: + case AnimationID.HUMAN_FLETCHING_HUNTINGBOLTS: /* Smithing(Anvil, Furnace, Cannonballs */ case AnimationID.HUMAN_SMITHING: case AnimationID.HUMAN_SMITHING_IMCANDO_HAMMER: diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java index 387677dc193..6dbc4accb33 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java @@ -42,7 +42,7 @@ public enum Task ABYSSAL_SIRE("The Abyssal Sire", ItemID.ABYSSALSIRE_PET), ALCHEMICAL_HYDRA("The Alchemical Hydra", ItemID.HYDRAPET), ANKOU("Ankou", ItemID.ANKOU_HEAD), - AQUANITES("Aquanite", ItemID.SLAYERGUIDE_AQUANITE), + AQUANITES("Aquanites", ItemID.SLAYERGUIDE_AQUANITE), ARAXXOR("Araxxor", ItemID.ARAXXORPET), ARAXYTES("Araxytes", ItemID.POH_ARAXYTE_HEAD, "Araxxor"), AVIANSIES("Aviansies", ItemID.ARCEUUS_CORPSE_AVIANSIE_INITIAL, "Kree'arra", "Flight Kilisa", "Flockleader Geerin", "Wingman Skree"), @@ -133,7 +133,6 @@ public enum Task MAGIC_AXES("Magic axes", ItemID.IRON_BATTLEAXE), MAMMOTHS("Mammoths", ItemID.BARBASSAULT_ATT_HORN_01), METAL_DRAGONS("Metal dragons", ItemID.POH_STEEL_DRAGON, "Bronze dragon", "Iron Dragon", "Steel dragon", "Mithril dragon", "Adamant dragon", "Rune dragon"), - MINIONS_OF_SCABARAS("Minions of scabaras", ItemID.NTK_SCARAB_GOLD, "Scarab swarm", "Locust rider", "Scarab mage"), MINOTAURS("Minotaurs", ItemID.ARCEUUS_CORPSE_MINOTAUR_INITIAL), MOGRES("Mogres", ItemID.SLAYERGUIDE_MOGRE), MOLANISKS("Molanisks", ItemID.SLAYERGUIDE_MOLANISK), @@ -152,12 +151,13 @@ public enum Task ROCKSLUGS("Rockslugs", ItemID.SLAYERGUIDE_ROCKSLUG, 4, ItemID.SLAYER_BAG_OF_SALT), ROGUES("Rogues", ItemID.ROGUESDEN_HELM), SARACHNIS("Sarachnis", ItemID.SARACHNISPET), + SCABARITES("Scabarites", ItemID.NTK_SCARAB_GOLD, "Scarab swarm", "Locust rider", "Scarab mage", "Small Scarab"), SCORPIA("Scorpia", ItemID.SCORPIA_PET), SCORPIONS("Scorpions", ItemID.ARCEUUS_CORPSE_SCORPION_INITIAL, "Scorpia", "Lobstrosity"), SEA_SNAKES("Sea snakes", ItemID.HUNDRED_ILM_SNAKE_CORPSE), SHADES("Shades", ItemID.BLACKROBETOP, "Loar", "Phrin", "Riyl", "Asyn", "Fiyr", "Urium"), SHADOW_WARRIORS("Shadow warriors", ItemID.BLACK_FULL_HELM), - SHELLBANE_GRYPHON("Shellbane Gryphon", ItemID.GRYPHONBOSSPET_ADULT), + SHELLBANE_GRYPHON("The Shellbane Gryphon", ItemID.GRYPHONBOSSPET_ADULT), SKELETAL_WYVERNS("Skeletal wyverns", ItemID.SLAYERGUIDE_SKELETALWYVERN), SKELETONS("Skeletons", ItemID.POH_SKELETON_GUARD, "Vet'ion", "Calvar'ion", "Skeletal Mystic"), SMOKE_DEVILS("Smoke devils", ItemID.CERT_GUIDE_ICON_DUMMY), 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 991e546bc24..1dc09047d72 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 @@ -533,6 +533,7 @@ public MouseEvent mousePressed(MouseEvent mouseEvent) .icon(consoleIconClosed) .tooltip("Show console") .onClick(this::toggleConsole) + .popup(Map.of("Clear", () -> consolePanel.clear())) .build(), false); updateConsoleToggleButton(); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/LogConsolePanel.java b/runelite-client/src/main/java/net/runelite/client/ui/LogConsolePanel.java index e6d3d929ceb..f6fe67040d3 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/LogConsolePanel.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/LogConsolePanel.java @@ -67,6 +67,18 @@ void append(String text) } } + void clear() + { + if (SwingUtilities.isEventDispatchThread()) + { + textArea.setText(""); + } + else + { + SwingUtilities.invokeLater(() -> textArea.setText("")); + } + } + OutputStream createOutputStream() { return new ConsoleOutputStream(); diff --git a/runelite-client/src/main/resources/item_variations.json b/runelite-client/src/main/resources/item_variations.json index 783391818c0..3a2d174d9aa 100644 --- a/runelite-client/src/main/resources/item_variations.json +++ b/runelite-client/src/main/resources/item_variations.json @@ -5983,6 +5983,10 @@ 8157, 8158 ], + "exit portal": [ + 8168, + 33132 + ], "dungeon entrance": [ 8172, 30992 @@ -12024,7 +12028,8 @@ 28587, 28588, 28589, - 28590 + 28590, + 33117 ], "spider hat": [ 28603, @@ -12219,6 +12224,10 @@ 29250, 30644 ], + "perfected quetzal whistle": [ + 29275, + 33120 + ], "small meat pouch": [ 29295, 29462 @@ -13706,5 +13715,27 @@ "facility bottle": [ 33074, 33077 + ], + "bottomless milk bucket": [ + 33089, + 33091 + ], + "cow slippers": [ + 33093, + 33096, + 33097, + 33098 + ], + "cowbell amulet": [ + 33103, + 33104 + ], + "milk sample": [ + 33128, + 33130 + ], + "silklined herb sack": [ + 33135, + 33137 ] } \ No newline at end of file diff --git a/runelite-client/src/main/scripts/ChatBuilder.hash b/runelite-client/src/main/scripts/ChatBuilder.hash index 7475f5b8703..bb351a2e820 100644 --- a/runelite-client/src/main/scripts/ChatBuilder.hash +++ b/runelite-client/src/main/scripts/ChatBuilder.hash @@ -1 +1 @@ -28EC734FE4D8A8E219E8DBD6AD85925BDA0135B9926B81687D99883FF3C4E494 \ No newline at end of file +455D3CF514AE67933FE189864EAA3F67AB035C64909306C17039B8BE9A2A43F9 \ No newline at end of file diff --git a/runelite-client/src/main/scripts/ChatBuilder.rs2asm b/runelite-client/src/main/scripts/ChatBuilder.rs2asm index d4d11f7fa1f..70e6196aad7 100644 --- a/runelite-client/src/main/scripts/ChatBuilder.rs2asm +++ b/runelite-client/src/main/scripts/ChatBuilder.rs2asm @@ -1579,7 +1579,7 @@ LABEL1428: if_icmpgt LABEL1434 jump LABEL1449 LABEL1434: - sconst "jk :P" + sconst "" iload 8 iload 9 iconst 10616889 diff --git a/runelite-client/src/main/scripts/ChatSplitBuilder.hash b/runelite-client/src/main/scripts/ChatSplitBuilder.hash index 99d534c0d32..e264da1a2c6 100644 --- a/runelite-client/src/main/scripts/ChatSplitBuilder.hash +++ b/runelite-client/src/main/scripts/ChatSplitBuilder.hash @@ -1 +1 @@ -E7349A938B9B1BBE5D3197F19AD127C83012A6F49E20CB03281A6AF06E05053C \ No newline at end of file +824CD10618903455D0630468F618676F672F4B3F3A23F5CE96F0202BF64A574A \ No newline at end of file diff --git a/runelite-client/src/main/scripts/ChatSplitBuilder.rs2asm b/runelite-client/src/main/scripts/ChatSplitBuilder.rs2asm index 11b458c1164..2bd262d24cc 100644 --- a/runelite-client/src/main/scripts/ChatSplitBuilder.rs2asm +++ b/runelite-client/src/main/scripts/ChatSplitBuilder.rs2asm @@ -20,13 +20,14 @@ enum iconst 0 if_icmpgt LABEL20 - jump LABEL77 + jump LABEL79 LABEL20: iload 6 - iconst 1745 - if_icmpeq LABEL24 - jump LABEL36 -LABEL24: + invoke 9336 + iconst 1 + if_icmpeq LABEL25 + jump LABEL37 +LABEL25: iconst 0 iconst 102 iconst 103 @@ -39,47 +40,48 @@ LABEL24: istore 1 istore 3 istore 2 -LABEL36: +LABEL37: iload 6 - iconst 1745 - if_icmpeq LABEL40 - jump LABEL55 -LABEL40: + invoke 9336 + iconst 1 + if_icmpeq LABEL42 + jump LABEL57 +LABEL42: get_varc_int 1220 iconst 1 - if_icmpeq LABEL44 - jump LABEL55 -LABEL44: + if_icmpeq LABEL46 + jump LABEL57 +LABEL46: iconst 4 istore 4 invoke 3179 iconst 1 - if_icmpeq LABEL50 - jump LABEL54 -LABEL50: + if_icmpeq LABEL52 + jump LABEL56 +LABEL52: iload 4 iconst 30 add istore 4 -LABEL54: - jump LABEL77 -LABEL55: +LABEL56: + jump LABEL79 +LABEL57: get_varc_int 41 iconst 1337 - if_icmpeq LABEL59 - jump LABEL68 -LABEL59: + if_icmpeq LABEL61 + jump LABEL70 +LABEL61: invoke 922 iconst 1 - if_icmpeq LABEL63 - jump LABEL68 -LABEL63: + if_icmpeq LABEL65 + jump LABEL70 +LABEL65: iload 4 iload 5 add istore 4 - jump LABEL77 -LABEL68: + jump LABEL79 +LABEL70: iload 4 iconst 73 iconst 73 @@ -89,7 +91,7 @@ LABEL68: if_getheight add istore 4 -LABEL77: +LABEL79: iload 4 istore 7 iconst 10682368 @@ -109,9 +111,9 @@ LABEL77: ostore 0 reboottimer iconst 0 - if_icmpgt LABEL98 - jump LABEL175 -LABEL98: + if_icmpgt LABEL100 + jump LABEL177 +LABEL100: reboottimer iconst 50 div @@ -120,9 +122,9 @@ LABEL98: istore 11 iload 11 iconst 10 - if_icmplt LABEL108 - jump LABEL119 -LABEL108: + if_icmplt LABEL110 + jump LABEL121 +LABEL110: sconst "System update in: " reboottimer iconst 3000 @@ -133,8 +135,8 @@ LABEL108: tostring join_string 4 ostore 0 - jump LABEL129 -LABEL119: + jump LABEL131 +LABEL121: sconst "System update in: " reboottimer iconst 3000 @@ -145,7 +147,7 @@ LABEL119: tostring join_string 4 ostore 0 -LABEL129: +LABEL131: iload 7 oload 0 iload 9 @@ -192,7 +194,7 @@ LABEL129: iload 9 enum istore 10 -LABEL175: +LABEL177: iconst -1 istore 12 iconst -1 @@ -224,22 +226,22 @@ LABEL175: ostore 5 get_varc_int 55 get_varc_int 202 - if_icmpge LABEL208 - jump LABEL340 -LABEL208: + if_icmpge LABEL210 + jump LABEL342 +LABEL210: get_varc_int 55 clientclock iconst 3000 sub - if_icmpgt LABEL214 - jump LABEL340 -LABEL214: + if_icmpgt LABEL216 + jump LABEL342 +LABEL216: iconst 14 chat_gethistorylength iconst 0 - if_icmpgt LABEL219 - jump LABEL340 -LABEL219: + if_icmpgt LABEL221 + jump LABEL342 +LABEL221: iconst 14 iconst 0 chat_gethistoryex_bytypeandline @@ -253,9 +255,9 @@ LABEL219: istore 12 iload 12 iconst -1 - if_icmpne LABEL234 - jump LABEL340 -LABEL234: + if_icmpne LABEL236 + jump LABEL342 +LABEL236: oload 0 invoke 2066 istore 16 @@ -263,12 +265,12 @@ LABEL234: ostore 0 iload 16 iconst 4 - if_icmpne LABEL246 + if_icmpne LABEL248 reboottimer iconst 0 - if_icmple LABEL246 - jump LABEL340 -LABEL246: + if_icmple LABEL248 + jump LABEL342 +LABEL248: iload 7 oload 2 oload 6 @@ -296,14 +298,14 @@ LABEL246: oload 4 string_length iconst 0 - if_icmpgt LABEL275 - jump LABEL304 -LABEL275: + if_icmpgt LABEL277 + jump LABEL306 +LABEL277: iload 16 iconst -1 - if_icmpne LABEL279 - jump LABEL304 -LABEL279: + if_icmpne LABEL281 + jump LABEL306 +LABEL281: iconst 6 sconst "Open" iload 10 @@ -328,8 +330,8 @@ LABEL279: sconst "iii" iload 10 if_setonmouseleave - jump LABEL312 -LABEL304: + jump LABEL314 +LABEL306: iconst -1 sconst "" iload 10 @@ -338,7 +340,7 @@ LABEL304: sconst "" iload 10 if_setonmouseleave -LABEL312: +LABEL314: iconst 10 sconst "Clear history" iload 10 @@ -367,7 +369,7 @@ LABEL312: iload 9 enum istore 10 -LABEL340: +LABEL342: iload 0 istore 12 iconst 0 @@ -376,39 +378,39 @@ LABEL340: istore 19 get_varp 287 iconst 1 - if_icmpeq LABEL350 - jump LABEL592 -LABEL350: + if_icmpeq LABEL352 + jump LABEL594 +LABEL352: get_varc_int 41 iconst 1337 - if_icmpne LABEL357 + if_icmpne LABEL359 get_varbit 4089 iconst 0 - if_icmpeq LABEL357 - jump LABEL592 -LABEL357: + if_icmpeq LABEL359 + jump LABEL594 +LABEL359: invoke 7831 iconst 1 - if_icmpeq LABEL361 - jump LABEL592 -LABEL361: + if_icmpeq LABEL363 + jump LABEL594 +LABEL363: iload 12 iconst -1 - if_icmpne LABEL365 - jump LABEL592 -LABEL365: + if_icmpne LABEL367 + jump LABEL594 +LABEL367: iload 10 iconst -1 - if_icmpne LABEL369 - jump LABEL592 -LABEL369: + if_icmpne LABEL371 + jump LABEL594 +LABEL371: iload 7 iload 4 sub iconst 57 - if_icmplt LABEL375 - jump LABEL592 -LABEL375: + if_icmplt LABEL377 + jump LABEL594 +LABEL377: iload 12 chat_gethistoryex_byuid istore 15 @@ -426,7 +428,7 @@ LABEL375: invoke 91 iconst 1 if_icmpeq CHAT_FILTER ; Jump to our new label instead - jump LABEL588 + jump LABEL590 CHAT_FILTER: oload 0 ; Load the message iconst 1 ; Gets changed to 0 if message is blocked @@ -438,9 +440,9 @@ CHAT_FILTER: pop_int ; Pop the messageType iconst 1 ; 2nd half of conditional ostore 0 ; Override the message with our filtered message - if_icmpeq LABEL393 ; Check if we are building this message - jump LABEL588 -LABEL393: + if_icmpeq LABEL395 ; Check if we are building this message + jump LABEL590 +LABEL395: iconst 1 ; splitpmbox iload 12 ; message uid sconst "" ; message channel @@ -457,12 +459,12 @@ LABEL393: pop_object ; message channel iload 18 switch - 3: LABEL396 - 7: LABEL396 - 6: LABEL425 - 5: LABEL454 - jump LABEL492 -LABEL396: + 3: LABEL398 + 7: LABEL398 + 6: LABEL427 + 5: LABEL456 + jump LABEL494 +LABEL398: iload 7 oload 2 oload 5 @@ -493,8 +495,8 @@ LABEL396: invoke 203 add istore 7 - jump LABEL511 -LABEL425: + jump LABEL513 +LABEL427: iload 7 oload 2 oload 5 @@ -525,8 +527,8 @@ LABEL425: invoke 203 add istore 7 - jump LABEL511 -LABEL454: + jump LABEL513 +LABEL456: iload 7 oload 2 oload 5 @@ -551,9 +553,9 @@ LABEL454: istore 7 iload 19 iconst 0 - if_icmpeq LABEL480 - jump LABEL491 -LABEL480: + if_icmpeq LABEL482 + jump LABEL493 +LABEL482: iload 13 iconst 500 add @@ -565,9 +567,9 @@ LABEL480: sconst "i" iconst 10616832 if_setontimer -LABEL491: - jump LABEL511 -LABEL492: +LABEL493: + jump LABEL513 +LABEL494: iload 7 oload 2 oload 0 @@ -587,31 +589,31 @@ LABEL492: invoke 199 add istore 7 -LABEL511: +LABEL513: iload 10 if_clearops iload 18 iconst 3 - if_icmpeq LABEL523 + if_icmpeq LABEL525 iload 18 iconst 6 - if_icmpeq LABEL523 + if_icmpeq LABEL525 iload 18 iconst 7 - if_icmpeq LABEL523 - jump LABEL566 -LABEL523: + if_icmpeq LABEL525 + jump LABEL568 +LABEL525: iload 14 iconst 1 - if_icmpeq LABEL527 - jump LABEL532 -LABEL527: + if_icmpeq LABEL529 + jump LABEL534 +LABEL529: iconst 7 sconst "Message" iload 10 if_setop - jump LABEL540 -LABEL532: + jump LABEL542 +LABEL534: iconst 7 sconst "Add friend" iload 10 @@ -620,7 +622,7 @@ LABEL532: sconst "Add ignore" iload 10 if_setop -LABEL540: +LABEL542: iconst 9 sconst "Report" iload 10 @@ -628,14 +630,14 @@ LABEL540: oload 1 invoke 2759 iconst 1 - if_icmpeq LABEL549 - jump LABEL553 -LABEL549: + if_icmpeq LABEL551 + jump LABEL555 +LABEL551: iconst 10 sconst "Crown Info" iload 10 if_setop -LABEL553: +LABEL555: sconst "" oload 1 sconst "" @@ -648,13 +650,13 @@ LABEL553: sconst "is" iload 10 if_setonop - jump LABEL570 -LABEL566: + jump LABEL572 +LABEL568: iconst -1 sconst "" iload 10 if_setonop -LABEL570: +LABEL572: iconst -1 sconst "" iload 10 @@ -673,17 +675,17 @@ LABEL570: iload 9 enum istore 10 -LABEL588: +LABEL590: iload 12 chat_getprevuid istore 12 - jump LABEL361 -LABEL592: + jump LABEL363 +LABEL594: iload 10 iconst -1 - if_icmpne LABEL596 - jump LABEL679 -LABEL596: + if_icmpne LABEL598 + jump LABEL681 +LABEL598: iload 10 if_clearops iconst -1 @@ -710,14 +712,14 @@ LABEL596: multiply cc_find iconst 1 - if_icmpeq LABEL624 - jump LABEL628 -LABEL624: + if_icmpeq LABEL626 + jump LABEL630 +LABEL626: sconst "" cc_settext iconst 1 cc_sethide -LABEL628: +LABEL630: iconst 10682368 iload 9 iconst 4 @@ -726,14 +728,14 @@ LABEL628: add cc_find iconst 1 - if_icmpeq LABEL638 - jump LABEL642 -LABEL638: + if_icmpeq LABEL640 + jump LABEL644 +LABEL640: sconst "" cc_settext iconst 1 cc_sethide -LABEL642: +LABEL644: iconst 10682368 iload 9 iconst 4 @@ -742,14 +744,14 @@ LABEL642: add cc_find iconst 1 - if_icmpeq LABEL652 - jump LABEL656 -LABEL652: + if_icmpeq LABEL654 + jump LABEL658 +LABEL654: sconst "" cc_settext iconst 1 cc_sethide -LABEL656: +LABEL658: iconst 10682368 iload 9 iconst 4 @@ -758,12 +760,12 @@ LABEL656: add cc_find iconst 1 - if_icmpeq LABEL666 - jump LABEL668 -LABEL666: + if_icmpeq LABEL668 + jump LABEL670 +LABEL668: iconst 1 cc_sethide -LABEL668: +LABEL670: iload 9 iconst 1 add @@ -774,6 +776,6 @@ LABEL668: iload 9 enum istore 10 - jump LABEL592 -LABEL679: + jump LABEL594 +LABEL681: return diff --git a/runelite-client/src/main/scripts/LayoutResizableStones.hash b/runelite-client/src/main/scripts/LayoutResizableStones.hash index 55154a18ba5..5f02622b66d 100644 --- a/runelite-client/src/main/scripts/LayoutResizableStones.hash +++ b/runelite-client/src/main/scripts/LayoutResizableStones.hash @@ -1 +1 @@ -F447EDB4DB9B01E29C62C0F9242746DD97FD99315DFDB0D0C608B2482794FC82 \ No newline at end of file +9808BCC0788983C233CDDFECA2BC0552C1515CC84A390F88E2F8DADD1E115E0C \ No newline at end of file diff --git a/runelite-client/src/main/scripts/LayoutResizableStones.rs2asm b/runelite-client/src/main/scripts/LayoutResizableStones.rs2asm index 511e46d16ac..b278147310f 100644 --- a/runelite-client/src/main/scripts/LayoutResizableStones.rs2asm +++ b/runelite-client/src/main/scripts/LayoutResizableStones.rs2asm @@ -16,7 +16,7 @@ 1130: LABEL103 1129: LABEL141 1745: LABEL161 - jump LABEL170 + jump LABEL174 LABEL9: iconst 10747998 if_getwidth @@ -124,7 +124,7 @@ LABEL96: invoke 633 iconst 10747926 if_sethide - jump LABEL170 + jump LABEL174 LABEL103: get_varbit 4084 iconst 1 @@ -168,7 +168,7 @@ LABEL134: invoke 633 iconst 10551318 if_sethide - jump LABEL170 + jump LABEL174 LABEL141: invoke 3297 iconst 1 @@ -192,16 +192,20 @@ LABEL153: enum 2122 LABEL160: - jump LABEL170 + jump LABEL174 LABEL161: invoke 2581 get_varbit 6254 invoke 633 + iconst 73 + iconst 73 + iload 1 iconst 39387167 + enum if_sethide invoke 2526 pop_int clientclock set_varc_int 384 -LABEL170: +LABEL174: return diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java index 903e4b88d94..942705ab458 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java @@ -285,8 +285,8 @@ public void npcMatching() assertTrue(matches("Ancient Custodian", Task.CUSTODIAN_STALKERS)); assertTrue(matches("Gryphon", Task.GRYPHONS)); assertTrue(matches("Dire gryphon", Task.GRYPHONS)); - assertTrue(matches("Shellbane Gryphon", Task.GRYPHONS)); - assertTrue(matches("Shellbane Gryphon", Task.SHELLBANE_GRYPHON)); + assertTrue(matches("The Shellbane Gryphon", Task.GRYPHONS)); + assertTrue(matches("The Shellbane Gryphon", Task.SHELLBANE_GRYPHON)); assertTrue(matches("Lava Strykewyrm", Task.WYRMS)); assertTrue(matches("Magma strykewyrm", Task.WYRMS)); assertTrue(matches("Aquanite", Task.AQUANITES));