Fix fishing plugin inventory/equipment check

Check both inventory and equipment when receiving item container change
events instead of hiding overlay if item is not contained in all
item containers.

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
Tomas Slusny
2018-09-06 20:19:51 +02:00
parent 8f613f7126
commit 9cacfedea1

View File

@@ -44,6 +44,7 @@ import net.runelite.api.ChatMessageType;
import net.runelite.api.Client;
import net.runelite.api.InventoryID;
import net.runelite.api.Item;
import net.runelite.api.ItemContainer;
import net.runelite.api.ItemID;
import net.runelite.api.NPC;
import net.runelite.api.coords.LocalPoint;
@@ -128,62 +129,15 @@ public class FishingPlugin extends Plugin
@Subscribe
public void onItemContainerChanged(ItemContainerChanged event)
{
boolean showOverlays = false;
if (session.getLastFishCaught() != null)
if (event.getItemContainer() != client.getItemContainer(InventoryID.INVENTORY)
&& event.getItemContainer() != client.getItemContainer(InventoryID.EQUIPMENT))
{
showOverlays = true;
return;
}
else if (event.getItemContainer() == client.getItemContainer(InventoryID.INVENTORY))
{
for (Item item : event.getItemContainer().getItems())
{
if (item == null)
{
continue;
}
switch (item.getId())
{
case ItemID.DRAGON_HARPOON:
case ItemID.INFERNAL_HARPOON:
case ItemID.INFERNAL_HARPOON_UNCHARGED:
case ItemID.HARPOON:
case ItemID.BARBTAIL_HARPOON:
case ItemID.BIG_FISHING_NET:
case ItemID.SMALL_FISHING_NET:
case ItemID.SMALL_FISHING_NET_6209:
case ItemID.FISHING_ROD:
case ItemID.FLY_FISHING_ROD:
case ItemID.BARBARIAN_ROD:
case ItemID.OILY_FISHING_ROD:
case ItemID.LOBSTER_POT:
case ItemID.KARAMBWAN_VESSEL:
case ItemID.KARAMBWAN_VESSEL_3159:
showOverlays = true;
break;
}
}
}
else if (event.getItemContainer() == client.getItemContainer(InventoryID.EQUIPMENT))
{
for (Item item : event.getItemContainer().getItems())
{
if (item == null)
{
continue;
}
switch (item.getId())
{
case ItemID.DRAGON_HARPOON:
case ItemID.INFERNAL_HARPOON:
case ItemID.INFERNAL_HARPOON_UNCHARGED:
showOverlays = true;
break;
}
}
}
final boolean showOverlays = session.getLastFishCaught() != null
|| canPlayerFish(client.getItemContainer(InventoryID.INVENTORY))
|| canPlayerFish(client.getItemContainer(InventoryID.EQUIPMENT));
if (showOverlays)
{
@@ -219,6 +173,43 @@ public class FishingPlugin extends Plugin
updateConfig();
}
private boolean canPlayerFish(final ItemContainer itemContainer)
{
if (itemContainer == null)
{
return false;
}
for (Item item : itemContainer.getItems())
{
if (item == null)
{
continue;
}
switch (item.getId())
{
case ItemID.DRAGON_HARPOON:
case ItemID.INFERNAL_HARPOON:
case ItemID.INFERNAL_HARPOON_UNCHARGED:
case ItemID.HARPOON:
case ItemID.BARBTAIL_HARPOON:
case ItemID.BIG_FISHING_NET:
case ItemID.SMALL_FISHING_NET:
case ItemID.SMALL_FISHING_NET_6209:
case ItemID.FISHING_ROD:
case ItemID.FLY_FISHING_ROD:
case ItemID.BARBARIAN_ROD:
case ItemID.OILY_FISHING_ROD:
case ItemID.LOBSTER_POT:
case ItemID.KARAMBWAN_VESSEL:
case ItemID.KARAMBWAN_VESSEL_3159:
return true;
}
}
return false;
}
private void updateConfig()
{
spotIds.clear();