agility plugin: use item events

This commit is contained in:
Adam
2018-07-15 16:33:24 -04:00
parent c5ab073407
commit 216d24ef5d

View File

@@ -35,8 +35,6 @@ import lombok.Getter;
import net.runelite.api.Client;
import net.runelite.api.Item;
import net.runelite.api.ItemID;
import net.runelite.api.ItemLayer;
import net.runelite.api.Node;
import net.runelite.api.Player;
import static net.runelite.api.Skill.AGILITY;
import net.runelite.api.Tile;
@@ -55,7 +53,8 @@ import net.runelite.api.events.GameTick;
import net.runelite.api.events.GroundObjectChanged;
import net.runelite.api.events.GroundObjectDespawned;
import net.runelite.api.events.GroundObjectSpawned;
import net.runelite.api.events.ItemLayerChanged;
import net.runelite.api.events.ItemDespawned;
import net.runelite.api.events.ItemSpawned;
import net.runelite.api.events.WallObjectChanged;
import net.runelite.api.events.WallObjectDespawned;
import net.runelite.api.events.WallObjectSpawned;
@@ -202,48 +201,32 @@ public class AgilityPlugin extends Plugin
}
@Subscribe
public void onItemLayerChanged(ItemLayerChanged event)
public void onItemSpawned(ItemSpawned itemSpawned)
{
if (obstacles.isEmpty())
{
return;
}
final Tile tile = event.getTile();
final ItemLayer itemLayer = tile.getItemLayer();
final boolean hasMark = tileHasMark(itemLayer);
final Item item = itemSpawned.getItem();
final Tile tile = itemSpawned.getTile();
if (markOfGrace != null && tile.getWorldLocation().equals(markOfGrace.getWorldLocation()) && !hasMark)
{
markOfGrace = null;
}
else if (hasMark)
if (item.getId() == ItemID.MARK_OF_GRACE)
{
markOfGrace = tile;
}
}
private boolean tileHasMark(ItemLayer itemLayer)
@Subscribe
public void onItemDespawned(ItemDespawned itemDespawned)
{
if (itemLayer != null)
{
Node currentItem = itemLayer.getBottom();
while (currentItem instanceof Item)
{
final Item item = (Item) currentItem;
currentItem = currentItem.getNext();
final Item item = itemDespawned.getItem();
if (item.getId() == ItemID.MARK_OF_GRACE)
{
return true;
markOfGrace = null;
}
}
}
return false;
}
@Subscribe
public void onGameTick(GameTick tick)