Files
leagues-tools/group-ironmen-tracker-master/src/main/java/men/groupiron/RunePouchState.java

52 lines
2.1 KiB
Java

package men.groupiron;
import net.runelite.api.Client;
import net.runelite.api.EnumComposition;
import net.runelite.api.EnumID;
import net.runelite.api.gameval.VarbitID;
public class RunePouchState implements ConsumableState {
private final ItemContainerItem rune1;
private final ItemContainerItem rune2;
private final ItemContainerItem rune3;
private final ItemContainerItem rune4;
private final transient String playerName;
public RunePouchState(String playerName, Client client) {
this.playerName = playerName;
final EnumComposition runepouchEnum = client.getEnum(EnumID.RUNEPOUCH_RUNE);
rune1 = itemForRune(client.getVarbitValue(VarbitID.RUNE_POUCH_TYPE_1), client.getVarbitValue(VarbitID.RUNE_POUCH_QUANTITY_1), runepouchEnum);
rune2 = itemForRune(client.getVarbitValue(VarbitID.RUNE_POUCH_TYPE_2), client.getVarbitValue(VarbitID.RUNE_POUCH_QUANTITY_2), runepouchEnum);
rune3 = itemForRune(client.getVarbitValue(VarbitID.RUNE_POUCH_TYPE_3), client.getVarbitValue(VarbitID.RUNE_POUCH_QUANTITY_3), runepouchEnum);
rune4 = itemForRune(client.getVarbitValue(VarbitID.RUNE_POUCH_TYPE_4), client.getVarbitValue(VarbitID.RUNE_POUCH_QUANTITY_4), runepouchEnum);
}
private ItemContainerItem itemForRune(int runeId, int amount, EnumComposition runepouchEnum) {
return new ItemContainerItem(runepouchEnum.getIntValue(runeId), amount);
}
@Override
public Object get() {
return new int[] {
rune1.getId(), rune1.getQuantity(),
rune2.getId(), rune2.getQuantity(),
rune3.getId(), rune3.getQuantity(),
rune4.getId(), rune4.getQuantity()
};
}
@Override
public String whoOwnsThis() {
return playerName;
}
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof RunePouchState)) return false;
RunePouchState other = (RunePouchState) o;
return rune1.equals(other.rune1) && rune2.equals(other.rune2) && rune3.equals(other.rune3) && rune4.equals(other.rune4);
}
}