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 @Nullable
ItemContainer getItemContainer(InventoryID inventory); ItemContainer getItemContainer(InventoryID inventory);
/**
* Get all item containers
* @return
*/
HashTable<ItemContainer> getItemContainers();
/** /**
* Gets the length of the cs2 vm's int stack * 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 public interface ItemContainer extends Node
{ {
/**
* Get the item container id
*
* @return
* @see InventoryID
*/
int getId();
/** /**
* Gets an array of all items in the container. * 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.Client;
import net.runelite.api.Constants; import net.runelite.api.Constants;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.TileItem;
import net.runelite.api.InventoryID;
import net.runelite.api.ItemContainer; import net.runelite.api.ItemContainer;
import net.runelite.api.NPC; import net.runelite.api.NPC;
import net.runelite.api.Node; import net.runelite.api.Node;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.api.Scene; import net.runelite.api.Scene;
import net.runelite.api.Tile; import net.runelite.api.Tile;
import net.runelite.api.TileItem;
import net.runelite.api.events.DecorativeObjectSpawned; import net.runelite.api.events.DecorativeObjectSpawned;
import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameObjectSpawned;
import net.runelite.api.events.GroundObjectSpawned; import net.runelite.api.events.GroundObjectSpawned;
@@ -112,14 +111,9 @@ public class GameEventManager
eventBus.register(subscriber); eventBus.register(subscriber);
for (final InventoryID inventory : InventoryID.values()) for (final ItemContainer itemContainer : client.getItemContainers())
{ {
final ItemContainer itemContainer = client.getItemContainer(inventory); eventBus.post(new ItemContainerChanged(itemContainer.getId(), itemContainer));
if (itemContainer != null)
{
eventBus.post(new ItemContainerChanged(inventory.getId(), itemContainer));
}
} }
for (NPC npc : client.getCachedNPCs()) for (NPC npc : client.getCachedNPCs())