CopyPastaOSRS / consumable-cooldowns

External plugin for Oldschool RuneScape's RuneLite client. Displays cooldowns of consumable items (food & drinks) in your inventory
BSD 2-Clause "Simplified" License
0 stars 1 forks source link

java.lang.ArrayIndexOutOfBoundsException: Index 38 out of bounds for length 28 #9

Closed Felanbird closed 8 months ago

Felanbird commented 1 year ago

edit: It's probably related to the pool space in the PoH, my most recent one I recognized I restored and then tp'd out.

I get this WARN in my logs literally all the time, I have powershell open so I notice it, but even then I'm not actively tracking every action I make, also I often don't notice it for a few minutes, so I'm not fully sure what is to blame.

2023-10-18 21:36:15 EDT [Client] WARN  n.runelite.client.eventbus.EventBus - Uncaught exception in event subscriber
java.lang.ArrayIndexOutOfBoundsException: Index 38 out of bounds for length 28
    at com.consumablecooldowns.ConsumableCooldownsPlugin.onMenuOptionClicked(ConsumableCooldownsPlugin.java:301)
    at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70)
    at net.runelite.client.eventbus.EventBus.post(EventBus.java:223)
    at net.runelite.client.callback.Hooks.post(Hooks.java:194)
    at bz.ll(bz.java:22465)
    at client.bn(client.java:49860)
    at client.kt(client.java:40622)
    at client.hw(client.java:3486)
    at client.bo(client.java:1124)
    at bb.gv(bb.java:358)
    at bb.run(bb.java:335)
    at java.base/java.lang.Thread.run(Thread.java:833)
consistency example ![image](https://github.com/CopyPastaOSRS/consumable-cooldowns/assets/41973452/06ac9c39-4530-45b4-a562-a85d2e843a48)

I did run debug level logs one time for some other reason, and I noticed the log seems to blame slot 38 which one log mentions being the occult altar & others a teleport menu, which I assume is the jewellery box.

debug logs ``` 2023-11-02 19:50:25 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 854 - Menu option clicked: drink. Slot: 38 2023-11-02 19:50:25 EDT [Client] WARN n.runelite.client.eventbus.EventBus - Uncaught exception in event subscriber java.lang.ArrayIndexOutOfBoundsException: Index 38 out of bounds for length 28 at com.consumablecooldowns.ConsumableCooldownsPlugin.onMenuOptionClicked(ConsumableCooldownsPlugin.java:301) at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70) at net.runelite.client.eventbus.EventBus.post(EventBus.java:223) at net.runelite.client.callback.Hooks.post(Hooks.java:194) at bz.ll(bz.java:22765) at client.xf(client.java:12436) at client.nb(client.java:19226) at client.hw(client.java:3486) at client.bl(client.java:1124) at bb.di(bb.java:358) at bb.fx(bb.java) at bb.run(bb.java:35113) at java.base/java.lang.Thread.run(Thread.java:833) 2023-11-02 19:50:25 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 855 - Menu option clicked: drink. Slot: 38 2023-11-02 19:50:26 EDT [Client] WARN n.runelite.client.eventbus.EventBus - Uncaught exception in event subscriber java.lang.ArrayIndexOutOfBoundsException: Index 38 out of bounds for length 28 at com.consumablecooldowns.ConsumableCooldownsPlugin.onMenuOptionClicked(ConsumableCooldownsPlugin.java:301) at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70) at net.runelite.client.eventbus.EventBus.post(EventBus.java:223) at net.runelite.client.callback.Hooks.post(Hooks.java:194) at bz.ll(bz.java:22765) at client.xf(client.java:12436) at client.nb(client.java:19226) at client.hw(client.java:3486) at client.bl(client.java:1124) at bb.di(bb.java:358) at bb.fx(bb.java) at bb.run(bb.java:35113) at java.base/java.lang.Thread.run(Thread.java:833) 2023-11-02 19:50:26 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 855 - Menu option clicked: drink. Slot: 38 2023-11-02 19:50:26 EDT [Client] WARN n.runelite.client.eventbus.EventBus - Uncaught exception in event subscriber java.lang.ArrayIndexOutOfBoundsException: Index 38 out of bounds for length 28 at com.consumablecooldowns.ConsumableCooldownsPlugin.onMenuOptionClicked(ConsumableCooldownsPlugin.java:301) at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70) at net.runelite.client.eventbus.EventBus.post(EventBus.java:223) at net.runelite.client.callback.Hooks.post(Hooks.java:194) at bz.ll(bz.java:22765) at client.xf(client.java:12436) at client.nb(client.java:19226) at client.hw(client.java:3486) at client.bl(client.java:1124) at bb.di(bb.java:358) at bb.fx(bb.java) at bb.run(bb.java:35113) at java.base/java.lang.Thread.run(Thread.java:833) 2023-11-02 19:50:26 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 855 - Menu option clicked: drink. Slot: 38 2023-11-02 19:50:26 EDT [Client] WARN n.runelite.client.eventbus.EventBus - Uncaught exception in event subscriber java.lang.ArrayIndexOutOfBoundsException: Index 38 out of bounds for length 28 at com.consumablecooldowns.ConsumableCooldownsPlugin.onMenuOptionClicked(ConsumableCooldownsPlugin.java:301) at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70) at net.runelite.client.eventbus.EventBus.post(EventBus.java:223) at net.runelite.client.callback.Hooks.post(Hooks.java:194) at bz.ll(bz.java:22765) at client.xf(client.java:12436) at client.nb(client.java:19226) at client.hw(client.java:3486) at client.bl(client.java:1124) at bb.di(bb.java:358) at bb.fx(bb.java) at bb.run(bb.java:35113) at java.base/java.lang.Thread.run(Thread.java:833) 2023-11-02 19:50:28 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 859 - Menu option clicked: teleport menu. Slot: 38 2023-11-02 19:50:28 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 859 - Menu option skipped. Consumable: false, already in actions: false 2023-11-02 19:50:29 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 860 - Menu option clicked: walk here. Slot: 550 2023-11-02 19:50:29 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 860 - Menu option skipped. Consumable: false, already in actions: false 2023-11-02 19:50:29 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 861 - Menu option clicked: walk here. Slot: 448 2023-11-02 19:50:29 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 861 - Menu option skipped. Consumable: false, already in actions: false 2023-11-02 19:50:29 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 861 - Menu option clicked: edgeville. Slot: 46 2023-11-02 19:50:29 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 861 - Menu option skipped. Consumable: false, already in actions: false 2023-11-02 19:50:29 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 861 - Menu option clicked: edgeville. Slot: 46 2023-11-02 19:50:29 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 861 - Menu option skipped. Consumable: false, already in actions: false 2023-11-02 19:50:30 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 863 - Menu option clicked: edgeville. Slot: 46 2023-11-02 19:50:30 EDT [Client] DEBUG c.c.ConsumableCooldownsPlugin - 863 - Menu option skipped. Consumable: false, already in actions: false ``` ![image](https://github.com/CopyPastaOSRS/consumable-cooldowns/assets/41973452/b71bd5e1-e738-457d-ac8c-6df3759ed6b3)

In most cases it seems to handle everything fine, but other times it sees drink happened in slot 38 and it ⚠️ 's

CopyPastaOSRS commented 1 year ago

I can reproduce it by click the PoH pool. It makes sense that this happens because any options with drink or eat get evaluated by the plugin currently. I will add a check if the slot is above 28 (definitely not an inventory option) to prevent this unnecessary warning spam. Thanks for the report!

Felanbird commented 8 months ago

This was fixed in c4dbf59a698b4816c847c383d9997245a222d580