game event manager: send itemcontainer change events for all containers

This commit is contained in:
Adam
2021-10-11 20:19:00 -04:00
parent 5b0acccbc7
commit 870933985d
3 changed files with 17 additions and 9 deletions

View File

@@ -1186,6 +1186,12 @@ public interface Client extends GameEngine
@Nullable
ItemContainer getItemContainer(InventoryID inventory);
/**
* Get all item containers
* @return
*/
HashTable<ItemContainer> getItemContainers();
/**
* Gets the length of the cs2 vm's int stack
*/

View File

@@ -32,6 +32,14 @@ import javax.annotation.Nullable;
*/
public interface ItemContainer extends Node
{
/**
* Get the item container id
*
* @return
* @see InventoryID
*/
int getId();
/**
* Gets an array of all items in the container.
*

View File

@@ -33,14 +33,13 @@ import javax.inject.Singleton;
import net.runelite.api.Client;
import net.runelite.api.Constants;
import net.runelite.api.GameState;
import net.runelite.api.TileItem;
import net.runelite.api.InventoryID;
import net.runelite.api.ItemContainer;
import net.runelite.api.NPC;
import net.runelite.api.Node;
import net.runelite.api.Player;
import net.runelite.api.Scene;
import net.runelite.api.Tile;
import net.runelite.api.TileItem;
import net.runelite.api.events.DecorativeObjectSpawned;
import net.runelite.api.events.GameObjectSpawned;
import net.runelite.api.events.GroundObjectSpawned;
@@ -112,14 +111,9 @@ public class GameEventManager
eventBus.register(subscriber);
for (final InventoryID inventory : InventoryID.values())
for (final ItemContainer itemContainer : client.getItemContainers())
{
final ItemContainer itemContainer = client.getItemContainer(inventory);
if (itemContainer != null)
{
eventBus.post(new ItemContainerChanged(inventory.getId(), itemContainer));
}
eventBus.post(new ItemContainerChanged(itemContainer.getId(), itemContainer));
}
for (NPC npc : client.getCachedNPCs())