Skip to content

Commit

Permalink
Merge pull request #145 from CreativeTechGuy/144-fix
Browse files Browse the repository at this point in the history
Inventory Change handle missing items
  • Loading branch information
adamk33n3r authored Apr 28, 2024
2 parents 8a28a7b + c70e13d commit e991e83
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 6 deletions.
11 changes: 8 additions & 3 deletions src/main/java/com/adamk33n3r/runelite/watchdog/EventHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -209,9 +209,14 @@ private void onItemContainerChanged(ItemContainerChanged itemContainerChanged) {
return;
Item[] items = itemContainerChanged.getItemContainer().getItems();
long itemCount = Arrays.stream(items).filter(item -> item.getId() > -1).count();
Map<Integer, Integer> currentItems = new HashMap<>();
Map<Integer, Integer> allItems = new HashMap<>();
Arrays.stream(items)
.forEach(item -> allItems.merge(item.getId(), item.getQuantity(), Integer::sum));
.forEach(item -> {
currentItems.merge(item.getId(), item.getQuantity(), Integer::sum);
allItems.merge(item.getId(), item.getQuantity(), Integer::sum);
});
this.previousItemsTable.keySet().forEach((itemId) -> allItems.putIfAbsent(itemId, 0));
// Skip firing alerts if there are no previous items, since we just logged in. Even an empty inventory will have a map of -1 itemIds.
if (!this.previousItemsTable.isEmpty()) {
this.alertManager.getAllEnabledAlertsOfType(InventoryAlert.class)
Expand All @@ -222,7 +227,7 @@ private void onItemContainerChanged(ItemContainerChanged itemContainerChanged) {
this.fireAlert(inventoryAlert, inventoryAlert.getInventoryAlertType().getName());
} else if (inventoryAlert.getInventoryAlertType() == InventoryAlert.InventoryAlertType.ITEM) {
allItems.entrySet().stream()
.filter(itemWithCount -> itemWithCount.getKey() != -1 && (inventoryAlert.getItemQuantity() == 0 || inventoryAlert.getQuantityComparator().compare(itemWithCount.getValue(), inventoryAlert.getItemQuantity())))
.filter(itemWithCount -> itemWithCount.getKey() != -1 && inventoryAlert.getQuantityComparator().compare(itemWithCount.getValue(), inventoryAlert.getItemQuantity()))
.map(itemWithCount -> this.matchPattern(inventoryAlert,
this.itemManager.getItemComposition(itemWithCount.getKey()).getName()))
.filter(Objects::nonNull)
Expand All @@ -243,7 +248,7 @@ private void onItemContainerChanged(ItemContainerChanged itemContainerChanged) {
}
});
}
this.previousItemsTable = allItems;
this.previousItemsTable = currentItems;
}
//endregion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ protected void build() {
panel -> panel.addRegexMatcher(this.alert, "Enter the name of the item to trigger on...", "The name to trigger on. Supports glob (*)")
.addSubPanelControl(PanelUtils.createLabeledComponent(
isItemChange ? "Change" : "Quantity",
isItemChange ? "The quantity change of the item (in one tick) to trigger on. Negative for loss, positive for gain, 0 for no change" : "The minimum quantity of item to trigger on, use 0 for every time",
isItemChange ? "The quantity change of the item (in one tick) to trigger on. Negative for loss, positive for gain, 0 for no change" : "The quantity of item to trigger on",
new ComparableNumber(this.alert.getItemQuantity(), this.alert::setItemQuantity, isItemChange ? Integer.MIN_VALUE : 0, Integer.MAX_VALUE, 1, this.alert.getQuantityComparator(), this.alert::setQuantityComparator))),
() -> this.alert.getInventoryAlertType() == InventoryAlert.InventoryAlertType.ITEM || isItemChange
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#Tue Apr 23 17:20:37 EDT 2024
VERSION_BUILD=4668
#Sat Apr 27 21:47:28 PDT 2024
VERSION_BUILD=4638
VERSION_PHASE=release
VERSION_MAJOR=3
VERSION_MINOR=3
Expand Down

0 comments on commit e991e83

Please sign in to comment.