Added new menu

This commit is contained in:
JKetelaar
2015-04-12 15:03:46 +02:00
parent f92d6fab4b
commit 6fff121df2
15 changed files with 451 additions and 409 deletions
+39 -49
View File
@@ -13,8 +13,7 @@ import java.util.ArrayList;
import java.util.Properties;
/**
* @author Everel
* @author Matt123337
* @author Everel, Matt123337, JKetelaar
*/
public class Bank {
public static final int[] BANKERS = new int[]{44, 45, 494, 495, 498, 499,
@@ -25,25 +24,7 @@ public class Bank {
10517, 11402, 11758, 12759, 14367, 19230, 20325, 24914, 25808,
26972, 29085, 52589, 34752, 35647, 36786, 2012, 2015, 2019, 693,
4483, 12308, 20607, 21301, 27663, 42192};
public static int BANK_INTERFACE = 5292;
public static int ITEM_INTERFACE = 5382;
public static int BUTTON_DEPOSIT_ALL = 5386;
public static int INV_PARENT_ID = 5064;
public static int BANK_OPEN_INDEX = 1;
static {
Properties p = Context.getInstance().getServerProviderInfo().getProperties();
if (p.containsKey("bankInterface"))
BANK_INTERFACE = Integer.parseInt(p.getProperty("bankInterface"));
if (p.containsKey("bankItemInterface"))
ITEM_INTERFACE = Integer.parseInt(p.getProperty("bankItemInterface"));
if (p.containsKey("bankDepositAll"))
BUTTON_DEPOSIT_ALL = Integer.parseInt(p.getProperty("bankDepositAll"));
if (p.containsKey("bankInvParent"))
INV_PARENT_ID = Integer.parseInt(p.getProperty("bankInvParent"));
if (p.containsKey("bankOpenIndex"))
BANK_OPEN_INDEX = Integer.parseInt(p.getProperty("bankOpenIndex"));
}
private static Properties settings = Context.getInstance().getServerProviderInfo().getSettings();
/**
* Gets nearest banker
@@ -90,10 +71,10 @@ public class Bank {
Npc banker = getBanker();
if (bank != null) {
bank.interact(BANK_OPEN_INDEX);
bank.interact(SceneObjects.Option.USE);
return true;
} else if (banker != null) {
banker.interact(BANK_OPEN_INDEX);
banker.interact(Npcs.Option.BANK);
return true;
}
@@ -104,7 +85,7 @@ public class Bank {
* Deposits all items
*/
public static void depositAll() {
Menu.clickButton(BUTTON_DEPOSIT_ALL);
Menu.clickButton(Integer.parseInt(settings.getProperty("button_deposit_all")));
}
/**
@@ -114,7 +95,6 @@ public class Bank {
* @param amount
*/
public static void withdraw(int id, int amount, int sleep) {
if (!isOpen()) {
return;
}
@@ -126,15 +106,15 @@ public class Bank {
}
if (amount == 1) {
b.transform(0, ITEM_INTERFACE);
b.transform(Items.Option.TRANSFORM_ONE, Integer.parseInt(settings.getProperty("item_interface_id")));
} else if (amount == 5) {
b.transform(1, ITEM_INTERFACE);
b.transform(Items.Option.TRANSFORM_FIVE, Integer.parseInt(settings.getProperty("item_interface_id")));
} else if (amount == 10) {
b.transform(2, ITEM_INTERFACE);
b.transform(Items.Option.TRANSFORM_TEN, Integer.parseInt(settings.getProperty("item_interface_id")));
} else if (amount == 0) {
b.transform(3, ITEM_INTERFACE);
b.transform(Items.Option.TRANSFORM_ALL, Integer.parseInt(settings.getProperty("item_interface_id")));
} else {
b.transform(4, ITEM_INTERFACE);
b.transform(Items.Option.TRANSFORM_X, Integer.parseInt(settings.getProperty("item_interface_id")));
Time.sleep(1500 + sleep);
Keyboard.getInstance().sendKeys("" + amount);
}
@@ -148,14 +128,16 @@ public class Bank {
* @return bank item
*/
public static Item getItem(int id) {
if (!isOpen()) {
return null;
}
for (Item i : Bank.getBankItems()) {
if (i.getId() == id) {
return i;
Item[] items;
if ((items = Bank.getBankItems()) != null) {
for (Item i : items) {
if (i.getId() == id) {
return i;
}
}
}
return null;
@@ -172,7 +154,8 @@ public class Bank {
if (!isOpen()) {
return 0;
}
return getItem(id).getStackSize();
Item item;
return ((item = getItem(id)) != null ? item.getStackSize() : 0);
}
/**
@@ -180,17 +163,22 @@ public class Bank {
*
* @param bank booth
*/
public static void open(SceneObject bank) {
public static void open(final SceneObject bank) {
if (isOpen()) {
return;
}
if (bank.getLocation().distanceTo() > 8) {
bank.getLocation().walkTo();
Time.sleep(new SleepCondition() {
@Override
public boolean isValid() {
return bank.distanceTo() < 8;
}
}, 5000);
return;
}
bank.interact(BANK_OPEN_INDEX);
bank.interact(SceneObjects.Option.USE);
}
@@ -201,8 +189,7 @@ public class Bank {
if (!isOpen()) {
return;
}
//[index: 1, action1: -1, action2: -1, action3: 5384, id: 200]
Menu.sendAction(200, -1, -1, 5384);
Menu.sendAction(200, -1, -1, Integer.parseInt(settings.getProperty("button_close_bank")));
}
/**
@@ -220,7 +207,7 @@ public class Bank {
for (Item i : Inventory.getItems()) {
if (!ignored.contains(i.getId())) {
while (Bank.isOpen() && Inventory.getCount(i.getId()) > 0) {
i.transform(3, INV_PARENT_ID);
i.transform(Items.Option.TRANSFORM_ALL, Integer.parseInt(settings.getProperty("inventory_parent_id")));
ignored.add(i.getId());
final int previous = Inventory.getCount(true);
Time.sleep(new SleepCondition() {
@@ -244,7 +231,7 @@ public class Bank {
if (!isOpen()) {
return null;
}
return Loader.getClient().getInterfaceCache()[5382].getItems();
return Loader.getClient().getInterfaceCache()[Integer.parseInt(settings.getProperty("item_interface_id"))].getItems();
}
/**
@@ -256,7 +243,7 @@ public class Bank {
if (!isOpen()) {
return null;
}
return Loader.getClient().getInterfaceCache()[5382].getStackSizes();
return Loader.getClient().getInterfaceCache()[Integer.parseInt(settings.getProperty("item_interface_id"))].getStackSizes();
}
/**
@@ -271,12 +258,14 @@ public class Bank {
ArrayList<Item> items = new ArrayList<Item>();
int[] ids = getBankItemIDs();
int[] stacks = getBankStacks();
for (int i = 0; i < ids.length; i++) {
if (ids[i] > 0) {
items.add(new Item(ids[i], stacks[i], i));
if (ids != null && stacks != null) {
for (int i = 0; i < ids.length; i++) {
if (ids[i] > 0) {
items.add(new Item(ids[i], stacks[i], i));
}
}
}
return (Item[]) items.toArray(new Item[items.size()]);
return items.toArray(new Item[items.size()]);
}
/**
@@ -288,7 +277,8 @@ public class Bank {
if (!isOpen()) {
return 0;
}
return getBankItemIDs().length;
int[] items;
return ((items = getBankItemIDs()) != null ? items.length : 0);
}
/**
@@ -297,7 +287,7 @@ public class Bank {
* @return <b>true</b> if bank is open
*/
public static boolean isOpen() {
return Loader.getClient().getOpenInterfaceId() == BANK_INTERFACE;
return Loader.getClient().getOpenInterfaceId() == Integer.parseInt(settings.getProperty("bank_interface_id"));
}
}
@@ -1,5 +1,6 @@
package org.rev317.min.api.methods;
import org.parabot.core.Context;
import org.parabot.environment.api.utils.Filter;
import org.rev317.min.Loader;
import org.rev317.min.accessors.Client;
@@ -10,9 +11,10 @@ import org.rev317.min.api.wrappers.GroundItem;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Properties;
/**
* @author Everel
* @author Everel, JKetelaar
*/
public class GroundItems {
private static final Comparator<GroundItem> NEAREST_SORTER = new Comparator<GroundItem>() {
@@ -32,6 +34,7 @@ public class GroundItems {
};
private static Client client;
private static Properties settings = Context.getInstance().getServerProviderInfo().getSettings();
/**
* Gets all loaded ground items
@@ -43,7 +46,7 @@ public class GroundItems {
if (client == null) {
client = Loader.getClient();
}
final ArrayList<GroundItem> items = new ArrayList<GroundItem>();
final ArrayList<GroundItem> items = new ArrayList<>();
for (int x = 0; x < 104; x++) {
for (int y = 0; y < 104; y++) {
final GroundItem[] groundItemsAtTile = getGroundItemsAt(x, y);
@@ -76,14 +79,11 @@ public class GroundItems {
if (deque == null) {
return null;
}
ArrayList<GroundItem> list = null;
ArrayList<GroundItem> list = new ArrayList<>();
final Node holder = deque.getHead();
Node curNode = holder.getNext();
while (curNode != null && curNode != holder
&& curNode != deque.getHead()) {
if (list == null) {
list = new ArrayList<GroundItem>();
}
final org.rev317.min.accessors.Item groundItem = (org.rev317.min.accessors.Item) curNode;
list.add(new GroundItem(groundItem, x, y));
curNode = curNode.getNext();
@@ -149,4 +149,28 @@ public class GroundItems {
});
}
public enum Option{
FIRST(Integer.parseInt(settings.getProperty("menu_ground_item_first_interaction"))),
SECOND(Integer.parseInt(settings.getProperty("menu_ground_item_second_interaction"))),
THIRD(Integer.parseInt(settings.getProperty("menu_ground_item_third_interaction"))),
TAKE(Integer.parseInt(settings.getProperty("menu_ground_item_third_interaction"))),
FOURTH(Integer.parseInt(settings.getProperty("menu_ground_item_fourth_interaction"))),
FIFTH(Integer.parseInt(settings.getProperty("menu_ground_item_fifth_interaction"))),
EXAMINE(Integer.parseInt(settings.getProperty("menu_ground_item_examine_interaction")));
int actionId;
Option(int actionId) {
this.actionId = actionId;
}
public int getActionId() {
return actionId;
}
}
}
+10 -7
View File
@@ -1,5 +1,6 @@
package org.rev317.min.api.methods;
import org.parabot.core.Context;
import org.parabot.environment.api.utils.Filter;
import org.parabot.environment.api.utils.Time;
import org.parabot.environment.scripts.framework.SleepCondition;
@@ -8,13 +9,15 @@ import org.rev317.min.accessors.Interface;
import org.rev317.min.api.wrappers.Item;
import java.util.ArrayList;
import java.util.Properties;
/**
* @author Everel, JKetelaar, Fryslan
*/
public class Inventory {
public static final int INVENTORY_INDEX = 3214;
private static Properties settings = Context.getInstance().getServerProviderInfo().getSettings();
private static final Filter<Item> ALL_FILTER = new Filter<Item>() {
@@ -56,7 +59,7 @@ public class Inventory {
* @return interface of inventory
*/
public static Interface getInterface() {
return Loader.getClient().getInterfaceCache()[INVENTORY_INDEX];
return Loader.getClient().getInterfaceCache()[Integer.parseInt(settings.getProperty("inventory_index"))];
}
/**
@@ -178,7 +181,7 @@ public class Inventory {
}
final int[] items = inventory.getItems();
final int[] stackSizes = inventory.getStackSizes();
final ArrayList<Item> invItems = new ArrayList<Item>(28);
final ArrayList<Item> invItems = new ArrayList<>(28);
for (int i = 0; i < items.length; i++) {
final int itemId = items[i];
if (itemId < 1) {
@@ -257,9 +260,9 @@ public class Inventory {
if (io != null) {
if (it != null) {
Menu.interact(io, "use");
Menu.interact(io, Items.Option.USE.getActionId());
Time.sleep(50, 100);
Menu.interact(it, "use with");
Menu.interact(it, Items.Option.USE_WITH.getActionId());
Time.sleep(50, 100);
return true;
}
@@ -282,9 +285,9 @@ public class Inventory {
if (io != null) {
if (it != null) {
Menu.interact(io, "use");
Menu.interact(io, Items.Option.USE.getActionId());
Time.sleep(50, 100);
Menu.interact(it, "use with");
Menu.interact(it, Items.Option.USE_WITH.getActionId());
Time.sleep(50, 100);
sleepCondition.isValid();
return true;
+67
View File
@@ -0,0 +1,67 @@
package org.rev317.min.api.methods;
import org.parabot.core.Context;
import java.util.Properties;
/**
* @author JKetelaar
*/
public class Items {
private static Properties settings = Context.getInstance().getServerProviderInfo().getSettings();
public enum Option{
TRANSFORM_FIRST(Integer.parseInt(settings.getProperty("menu_transform_one_interaction"))),
VALUE(Integer.parseInt(settings.getProperty("menu_transform_one_interaction"))),
TRANSFORM_ONE(Integer.parseInt(settings.getProperty("menu_transform_one_interaction"))),
TRANSFORM_SECOND(Integer.parseInt(settings.getProperty("menu_transform_five_interaction"))),
TRANSFORM_FIVE(Integer.parseInt(settings.getProperty("menu_transform_five_interaction"))),
TRANSFORM_THIRD(Integer.parseInt(settings.getProperty("menu_transform_ten_interaction"))),
TRANSFORM_TEN(Integer.parseInt(settings.getProperty("menu_transform_ten_interaction"))),
TRANSFORM_FOURTH(Integer.parseInt(settings.getProperty("menu_transform_all_interaction"))),
TRANSFORM_ALL(Integer.parseInt(settings.getProperty("menu_transform_all_interaction"))),
TRANSFORM_FIFTH(Integer.parseInt(settings.getProperty("menu_transform_x_interaction"))),
TRANSFORM_X(Integer.parseInt(settings.getProperty("menu_transform_x_interaction"))),
TRANSFORM_HUNDRED(Integer.parseInt(settings.getProperty("menu_transform_x_interaction"))),
TRANSFORM_SIXTH(Integer.parseInt(settings.getProperty("menu_transform_all_but_one_interaction"))),
TRANSFORM_ALL_BUT_ONE(Integer.parseInt(settings.getProperty("menu_transform_all_but_one_interaction"))),
TRANSFORM_EXAMINE(Integer.parseInt(settings.getProperty("menu_transform_examine_interaction"))),
FIRST(Integer.parseInt(settings.getProperty("menu_item_first_interaction"))),
WEAR(Integer.parseInt(settings.getProperty("menu_item_first_interaction"))),
SECOND(Integer.parseInt(settings.getProperty("menu_item_second_interaction"))),
CONSUME(Integer.parseInt(settings.getProperty("menu_item_second_interaction"))),
THIRD(Integer.parseInt(settings.getProperty("menu_item_third_interaction"))),
EMPTY(Integer.parseInt(settings.getProperty("menu_item_third_interaction"))),
FOURTH(Integer.parseInt(settings.getProperty("menu_item_fourth_interaction"))),
USE(Integer.parseInt(settings.getProperty("menu_item_fourth_interaction"))),
FIFTH(Integer.parseInt(settings.getProperty("menu_item_fifth_interaction"))),
DROP(Integer.parseInt(settings.getProperty("menu_item_fifth_interaction"))),
SIXTH(Integer.parseInt(settings.getProperty("menu_item_sixth_interaction"))),
EXAMINE(Integer.parseInt(settings.getProperty("menu_item_sixth_interaction"))),
SEVENTH(Integer.parseInt(settings.getProperty("menu_item_seventh_interaction"))),
USE_WITH(Integer.parseInt(settings.getProperty("menu_item_seventh_interaction")));
int actionId;
Option(int actionId) {
this.actionId = actionId;
}
public int getActionId() {
return actionId;
}
}
}
+149 -269
View File
@@ -1,269 +1,149 @@
package org.rev317.min.api.methods;
import org.parabot.core.Context;
import org.rev317.min.Loader;
import org.rev317.min.accessors.Client;
import org.rev317.min.api.wrappers.Character;
import org.rev317.min.api.wrappers.GroundItem;
import org.rev317.min.api.wrappers.Item;
import org.rev317.min.api.wrappers.SceneObject;
import java.util.HashMap;
/**
* @author Everel
*/
public class Menu {
public static final int ACTION_CLICK_BUTTON = 646;
public static final int ACTION_DROP_ITEM = 847;
public static final int ACTION_TAKE_ITEM = 234;
private static HashMap<String, String> constants;
/**
* Interacts with a sceneobject
*
* @param object
* @param actionIndex
*/
public static void interact(SceneObject object, int actionIndex) {
int actionId = 502;
switch (actionIndex) {
case 0:
actionId = 502;
break;
case 1:
actionId = 900;
break;
case 2:
actionId = 113;
break;
case 3:
actionId = 872;
break;
case 4:
actionId = 1062;
break;
}
if (Game.hasAction4()) {
sendAction(actionId, object.getHash(), object.getLocalRegionX(), object.getLocalRegionY(), object.getId(), 0);
} else {
sendAction(actionId, object.getHash(), object.getLocalRegionX(), object.getLocalRegionY());
}
}
/**
* Interacts with a character
*
* @param character
* @param actionIndex
*/
public static void interact(Character character, int actionIndex) {
int actionId = 20;
switch (actionIndex) {
case 0:
actionId = 20;
break;
case 1:
actionId = 412;
break;
case 2:
actionId = 225;
break;
case 3:
actionId = 965;
break;
case 4:
actionId = 478;
break;
}
sendAction(actionId, character.getIndex(), 0, 0);
}
/**
* Interacts with an item when it has the following menu Transform-1 Transform-5 Transform-10 etc..
*
* @param item
* @param actionIndex
* @param interfaceParentId
*/
public static void transformItem(Item item, int actionIndex,
int interfaceParentId) {
int actionId = 632;
switch (actionIndex) {
case 0:
actionId = 632;
break;
case 1:
actionId = 78;
break;
case 2:
actionId = 867;
break;
case 3:
actionId = 431;
break;
case 4:
actionId = 53;
break;
}
sendAction(actionId, (int) item.getId() - 1, item.getSlot(),
interfaceParentId);
}
/**
* Takes grounditem from the ground
*
* @param item
*/
public static void take(GroundItem item) {
sendAction(ACTION_TAKE_ITEM, item.getId(), item.getX(), item.getY());
}
/**
* Interacts with a ground item
*
* @param item
* @param action
*/
public static void interact(GroundItem item, int action) {
int actionId = 652;
switch (action) {
case 0:
actionId = 652;
break;
case 1:
actionId = 567;
break;
case 2:
actionId = 234;
break;
case 3:
actionId = 244;
break;
case 4:
actionId = 213;
break;
}
sendAction(actionId, item.getId(), item.getX(), item.getY());
}
public static void interact(Item item, int action){
int actionId = 447;
switch (action){
case 0:
actionId = 447;
break;
case 1:
actionId = 847;
break;
case 2:
actionId = 1125;
break;
case 3:
actionId = 1107;
break;
}
sendAction(actionId, item.getId() - 1, item.getSlot(), 3214);
}
public static void interact(Item item, String action){
int actionId = 447;
switch (action.toLowerCase()){
case "use":
actionId = 447;
break;
case "drop":
actionId = 847;
break;
case "examine":
actionId = 1125;
break;
case "cancel":
actionId = 1107;
break;
case "wear":
actionId = 454;
break;
case "use with":
actionId = 870;
break;
}
sendAction(actionId, item.getId() - 1, item.getSlot(), 3214);
}
/**
* Drops an item
*
* @param item
*/
public static void drop(Item item) {
sendAction(ACTION_DROP_ITEM, (int) item.getId() - 1, item.getSlot(),
Inventory.INVENTORY_INDEX);
}
/**
* Clicks a button
*
* @param id
*/
public static void clickButton(int id) {
sendAction(ACTION_CLICK_BUTTON, 0, 0, id);
}
/**
* Sends an action to the client
*
* @param action
* @param cmd1
* @param cmd2
* @param cmd3
*/
public static void sendAction(int action, int cmd1, int cmd2, int cmd3) {
sendAction(action, cmd1, cmd2, cmd3, 1);
}
/**
* Sends an action to the client
*
* @param action
* @param cmd1
* @param cmd2
* @param cmd3
* @param index
*/
public static void sendAction(int action, int cmd1, int cmd2, int cmd3, int index) {
sendAction(action, cmd1, cmd2, cmd3, 0, index);
}
/**
* Sends an action to the client
*
* @param action
* @param cmd1
* @param cmd2
* @param cmd3
* @param cmd4
* @param index
*/
public static void sendAction(int action, int cmd1, int cmd2, int cmd3, int cmd4, int index) {
if (constants == null) {
constants = Context.getInstance().getHookParser().getConstants();
}
Client client = Loader.getClient();
client.getMenuAction1()[index] = cmd1;
client.getMenuAction2()[index] = cmd2;
client.getMenuAction3()[index] = cmd3;
if (Game.hasAction4()) {
client.getMenuAction4()[index] = cmd4;
}
client.getMenuActionId()[index] = action;
client.doAction(index);
}
}
package org.rev317.min.api.methods;
import org.parabot.core.Context;
import org.rev317.min.Loader;
import org.rev317.min.accessors.Client;
import org.rev317.min.api.wrappers.Character;
import org.rev317.min.api.wrappers.GroundItem;
import org.rev317.min.api.wrappers.Item;
import org.rev317.min.api.wrappers.SceneObject;
import java.util.Properties;
/**
* @author JKetelaar, Everel
*/
public class Menu {
private static Properties settings = Context.getInstance().getServerProviderInfo().getSettings();
/**
* Interacts with a sceneobject
*
* @param object
* @param actionId
*/
public static void interact(SceneObject object, int actionId) {
if (Game.hasAction4()) {
sendAction(actionId, object.getHash(), object.getLocalRegionX(), object.getLocalRegionY(), object.getId(), 0);
} else {
sendAction(actionId, object.getHash(), object.getLocalRegionX(), object.getLocalRegionY());
}
}
/**
* Interacts with a character
*
* @param character
* @param actionId
*/
public static void interact(Character character, int actionId) {
sendAction(actionId, character.getIndex(), 0, 0);
}
/**
* Interacts with an item when it has the following menu Transform-1 Transform-5 Transform-10 etc..
*
* @param item
* @param actionId
* @param interfaceParentId
*/
public static void transformItem(Item item, int actionId,
int interfaceParentId) {
sendAction(actionId, item.getId() - 1, item.getSlot(),
interfaceParentId);
}
/**
* Takes grounditem from the ground
*
* @param item
*/
public static void take(GroundItem item) {
sendAction(Integer.parseInt(settings.getProperty("button_take_item")), item.getId(), item.getX(), item.getY());
}
/**
* Interacts with a ground item
*
* @param item
* @param actionId
*/
public static void interact(GroundItem item, int actionId) {
sendAction(actionId, item.getId(), item.getX(), item.getY());
}
public static void interact(Item item, int actionId){
sendAction(actionId, item.getId() - 1, item.getSlot(), 3214);
}
/**
* Drops an item
*
* @param item
*/
public static void drop(Item item) {
sendAction(Integer.parseInt(settings.getProperty("button_drop_item")), item.getId() - 1, item.getSlot(),
Integer.parseInt(settings.getProperty("inventory_index")));
}
/**
* Clicks a button
*
* @param id
*/
public static void clickButton(int id) {
sendAction(Integer.parseInt(settings.getProperty("button_action_click")), 0, 0, id);
}
/**
* Sends an action to the client
*
* @param action
* @param cmd1
* @param cmd2
* @param cmd3
*/
public static void sendAction(int action, int cmd1, int cmd2, int cmd3) {
sendAction(action, cmd1, cmd2, cmd3, 1);
}
/**
* Sends an action to the client
*
* @param action
* @param cmd1
* @param cmd2
* @param cmd3
* @param index
*/
public static void sendAction(int action, int cmd1, int cmd2, int cmd3, int index) {
sendAction(action, cmd1, cmd2, cmd3, 0, index);
}
/**
* Sends an action to the client
*
* @param action
* @param cmd1
* @param cmd2
* @param cmd3
* @param cmd4
* @param index
*/
public static void sendAction(int action, int cmd1, int cmd2, int cmd3, int cmd4, int index) {
Client client = Loader.getClient();
client.getMenuAction1()[index] = cmd1;
client.getMenuAction2()[index] = cmd2;
client.getMenuAction3()[index] = cmd3;
if (Game.hasAction4()) {
client.getMenuAction4()[index] = cmd4;
}
client.getMenuActionId()[index] = action;
client.doAction(index);
}
}
+35 -2
View File
@@ -1,5 +1,6 @@
package org.rev317.min.api.methods;
import org.parabot.core.Context;
import org.parabot.environment.api.utils.Filter;
import org.rev317.min.Loader;
import org.rev317.min.accessors.Client;
@@ -8,9 +9,10 @@ import org.rev317.min.api.wrappers.Npc;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Properties;
/**
* @author Everel
* @author Everel, JKetelaar
*/
public class Npcs {
@@ -31,6 +33,7 @@ public class Npcs {
}
};
private static Properties settings = Context.getInstance().getServerProviderInfo().getSettings();
/**
* Gets all Npcs except local Npc
@@ -41,7 +44,7 @@ public class Npcs {
*/
public static final Npc[] getNpcs(final Filter<Npc> filter) {
final Client client = Loader.getClient();
ArrayList<Npc> npcList = new ArrayList<Npc>();
ArrayList<Npc> npcList = new ArrayList<>();
final org.rev317.min.accessors.Npc[] accNpcs = client.getNpcs();
for (int i = 0; i < accNpcs.length; i++) {
if (accNpcs[i] == null) {
@@ -141,4 +144,34 @@ public class Npcs {
return getNearest(ALL_FILTER);
}
public enum Option{
FIRST(Integer.parseInt(settings.getProperty("menu_character_first_interaction"))),
ATTACK(Integer.parseInt(settings.getProperty("menu_character_first_interaction"))),
SECOND(Integer.parseInt(settings.getProperty("menu_character_second_interaction"))),
TALK_TO(Integer.parseInt(settings.getProperty("menu_character_second_interaction"))),
INTERACT(Integer.parseInt(settings.getProperty("menu_character_second_interaction"))),
THIRD(Integer.parseInt(settings.getProperty("menu_character_third_interaction"))),
TRADE(Integer.parseInt(settings.getProperty("menu_character_third_interaction"))),
BANK(Integer.parseInt(settings.getProperty("menu_character_third_interaction"))),
PICKPOCKET(Integer.parseInt(settings.getProperty("menu_character_third_interaction"))),
FOURTH(Integer.parseInt(settings.getProperty("menu_character_fourth_interaction"))),
COLLECT(Integer.parseInt(settings.getProperty("menu_character_fourth_interaction"))),
FIFTH(Integer.parseInt(settings.getProperty("menu_character_fifth_interaction"))),
EXAMINE(Integer.parseInt(settings.getProperty("menu_character_examine")));
int actionId;
Option(int actionId) {
this.actionId = actionId;
}
public int getActionId() {
return actionId;
}
}
}
+29 -1
View File
@@ -1,5 +1,6 @@
package org.rev317.min.api.methods;
import org.parabot.core.Context;
import org.parabot.environment.api.utils.Filter;
import org.rev317.min.Loader;
import org.rev317.min.accessors.Client;
@@ -8,9 +9,10 @@ import org.rev317.min.api.wrappers.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Properties;
/**
* @author Everel
* @author Everel, JKetelaar
*/
public class Players {
@@ -31,6 +33,7 @@ public class Players {
}
};
private static Properties settings = Context.getInstance().getServerProviderInfo().getSettings();
/**
* Gets all players except local player
@@ -95,4 +98,29 @@ public class Players {
return new Player(Loader.getClient().getMyPlayer(), -1);
}
public enum Option{
FIRST(Integer.parseInt(settings.getProperty("menu_character_first_interaction"))),
SECOND(Integer.parseInt(settings.getProperty("menu_character_second_interaction"))),
THIRD(Integer.parseInt(settings.getProperty("menu_character_third_interaction"))),
FOURTH(Integer.parseInt(settings.getProperty("menu_character_fourth_interaction"))),
FIFTH(Integer.parseInt(settings.getProperty("menu_character_fifth_interaction"))),
TRADE(Integer.parseInt(settings.getProperty("menu_character_trade"))),
ATTACK(Integer.parseInt(settings.getProperty("menu_character_attack"))),
EXAMINE(Integer.parseInt(settings.getProperty("menu_character_examine")));
int actionId;
Option(int actionId) {
this.actionId = actionId;
}
public int getActionId() {
return actionId;
}
}
}
@@ -1,18 +1,16 @@
package org.rev317.min.api.methods;
import org.parabot.core.Context;
import org.parabot.environment.api.utils.Filter;
import org.rev317.min.Loader;
import org.rev317.min.accessors.Ground;
import org.rev317.min.accessors.SceneObjectTile;
import org.rev317.min.api.wrappers.SceneObject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.*;
/**
* @author Everel
* @author Everel, JKetelaar
*/
public class SceneObjects {
@@ -33,6 +31,7 @@ public class SceneObjects {
}
};
private static Properties settings = Context.getInstance().getServerProviderInfo().getSettings();
/**
* Gets the most important scene objects in game which can be interacted with, filters out: 'walls, wall
@@ -184,7 +183,7 @@ public class SceneObjects {
for (final SceneObjectTile interactiveObject : interactiveObjects) {
if (interactiveObject != null) {
if (sceneObjects == null) {
sceneObjects = new ArrayList<SceneObject>();
sceneObjects = new ArrayList<>();
}
sceneObjects.add(new SceneObject(interactiveObject, SceneObject.TYPE_INTERACTIVE));
}
@@ -193,7 +192,7 @@ public class SceneObjects {
SceneObjectTile sceneObjectTile = sceneTile.getWallObject();
if (sceneObjectTile != null) {
if (sceneObjects == null) {
sceneObjects = new ArrayList<SceneObject>();
sceneObjects = new ArrayList<>();
}
sceneObjects.add(new SceneObject(sceneObjectTile, SceneObject.TYPE_WALL));
}
@@ -201,7 +200,7 @@ public class SceneObjects {
sceneObjectTile = sceneTile.getWallDecoration();
if (sceneObjectTile != null) {
if (sceneObjects == null) {
sceneObjects = new ArrayList<SceneObject>();
sceneObjects = new ArrayList<>();
}
sceneObjects.add(new SceneObject(sceneObjectTile, SceneObject.TYPE_WALLDECORATION));
}
@@ -209,7 +208,7 @@ public class SceneObjects {
sceneObjectTile = sceneTile.getGroundDecoration();
if (sceneObjectTile != null) {
if (sceneObjects == null) {
sceneObjects = new ArrayList<SceneObject>();
sceneObjects = new ArrayList<>();
}
sceneObjects.add(new SceneObject(sceneObjectTile, SceneObject.TYPE_GROUNDDECORATION));
}
@@ -217,12 +216,48 @@ public class SceneObjects {
sceneObjectTile = sceneTile.getGroundItem();
if (sceneObjectTile != null) {
if (sceneObjects == null) {
sceneObjects = new ArrayList<SceneObject>();
sceneObjects = new ArrayList<>();
}
sceneObjects.add(new SceneObject(sceneObjectTile, SceneObject.TYPE_GROUNDITEM));
}
return sceneObjects;
}
public enum Option{
FIRST(Integer.parseInt(settings.getProperty("menu_scene_object_first_interaction"))),
TALK_TO(Integer.parseInt(settings.getProperty("menu_scene_object_first_interaction"))),
CHOP_DOWN(Integer.parseInt(settings.getProperty("menu_scene_object_first_interaction"))),
CRAFT_RUNE(Integer.parseInt(settings.getProperty("menu_scene_object_first_interaction"))),
PRAY_AT(Integer.parseInt(settings.getProperty("menu_scene_object_first_interaction"))),
OPEN(Integer.parseInt(settings.getProperty("menu_scene_object_first_interaction"))),
DEPOSIT(Integer.parseInt(settings.getProperty("menu_scene_object_first_interaction"))),
USE(Integer.parseInt(settings.getProperty("menu_scene_object_first_interaction"))),
SEARCH(Integer.parseInt(settings.getProperty("menu_scene_object_first_interaction"))),
SECOND(Integer.parseInt(settings.getProperty("menu_scene_object_second_interaction"))),
TELEPORT(Integer.parseInt(settings.getProperty("menu_scene_object_second_interaction"))),
STEAL_FROM(Integer.parseInt(settings.getProperty("menu_scene_object_second_interaction"))),
PRAY(Integer.parseInt(settings.getProperty("menu_scene_object_second_interaction"))),
USE_QUICKLY(Integer.parseInt(settings.getProperty("menu_scene_object_second_interaction"))),
THIRD(Integer.parseInt(settings.getProperty("menu_scene_object_third_interaction"))),
FOURTH(Integer.parseInt(settings.getProperty("menu_scene_object_fourth_interaction"))),
FIFTH(Integer.parseInt(settings.getProperty("menu_scene_object_fifth_interaction"))),
EXAMINE(Integer.parseInt(settings.getProperty("menu_scene_object_examine")));
int actionId;
Option(int actionId) {
this.actionId = actionId;
}
public int getActionId() {
return actionId;
}
}
}
+9 -32
View File
@@ -16,30 +16,7 @@ import java.util.Properties;
*/
public class Trading {
/*
TODO Get the player its offer and implement its features
*/
public static int OPPONENT_OFFER_INTERFACE_ID = 3416;
public static int MY_OFFER_INTERFACE_ID = 3415;
public static int FIRST_TRADE_INTERFACE_ID = 3323;
public static int SECOND_TRADE_INTERFACE_ID = 3443;
static {
Properties p = Context.getInstance().getServerProviderInfo().getProperties();
if (p.containsKey("opponentInterface")) {
OPPONENT_OFFER_INTERFACE_ID = Integer.parseInt(p.getProperty("opponentInterface"));
}
if (p.containsKey("myInterface")) {
OPPONENT_OFFER_INTERFACE_ID = Integer.parseInt(p.getProperty("myInterface"));
}
if (p.containsKey("firstTradeInterface")) {
FIRST_TRADE_INTERFACE_ID = Integer.parseInt(p.getProperty("firstTradeInterface"));
}
if (p.containsKey("secondTradeInterface")) {
SECOND_TRADE_INTERFACE_ID = Integer.parseInt(p.getProperty("secondTradeInterface"));
}
}
private static Properties settings = Context.getInstance().getServerProviderInfo().getSettings();
/**
* Checks if the first or the second screen is open, based on the given boolean
@@ -47,7 +24,7 @@ public class Trading {
* @return True if the requested screen is open
*/
public static boolean isOpen(boolean first){
return Loader.getClient().getOpenInterfaceId() == (first ? FIRST_TRADE_INTERFACE_ID : SECOND_TRADE_INTERFACE_ID);
return Loader.getClient().getOpenInterfaceId() == (first ? Integer.parseInt(settings.getProperty("first_trade_interface_id")) : Integer.parseInt(settings.getProperty("second_trade_interface_id")));
}
/**
@@ -55,7 +32,7 @@ public class Trading {
* @return True if open, false if not open
*/
public static boolean isOpen(){
return Loader.getClient().getOpenInterfaceId() == FIRST_TRADE_INTERFACE_ID || Loader.getClient().getOpenInterfaceId() == SECOND_TRADE_INTERFACE_ID;
return Loader.getClient().getOpenInterfaceId() == Integer.parseInt(settings.getProperty("first_trade_interface_id")) || Loader.getClient().getOpenInterfaceId() == Integer.parseInt(settings.getProperty("second_trade_interface_id"));
}
/**
@@ -74,8 +51,8 @@ public class Trading {
public static Item[] getMyOffer() {
ArrayList<Item> items = new ArrayList<>();
int[] ids = getItemIDs(MY_OFFER_INTERFACE_ID);
int[] stacks = getItemStacks(MY_OFFER_INTERFACE_ID);
int[] ids = getItemIDs(Integer.parseInt(settings.getProperty("my_offer_interface_id")));
int[] stacks = getItemStacks(Integer.parseInt(settings.getProperty("my_offer_interface_id")));
for (int i = 0; i < ids.length; i++) {
if (ids[i] > 0) {
items.add(new Item(ids[i], stacks[i], i));
@@ -86,8 +63,8 @@ public class Trading {
public static Item[] getOpponentsOffer() {
ArrayList<Item> items = new ArrayList<>();
int[] ids = getItemIDs(OPPONENT_OFFER_INTERFACE_ID);
int[] stacks = getItemStacks(OPPONENT_OFFER_INTERFACE_ID);
int[] ids = getItemIDs(Integer.parseInt(settings.getProperty("opponent_offer_interface_id")));
int[] stacks = getItemStacks(Integer.parseInt(settings.getProperty("opponent_offer_interface_id")));
for (int i = 0; i < ids.length; i++) {
if (ids[i] > 0) {
items.add(new Item(ids[i], stacks[i], i));
@@ -123,7 +100,7 @@ public class Trading {
* TODO Figure a way to use packets instead
* Accepts the offer and hits the button to continue to the second screen
*/
private static void acceptOffer() {
public static void acceptOffer() {
Time.sleep(500, 750);
Mouse.getInstance().click(260, 190, true);
Time.sleep(500, 750);
@@ -133,7 +110,7 @@ public class Trading {
* TODO Figure a way to use packets instead
* Accepts the trade and hits the button to complete the trade
*/
private static void acceptTrade() {
public static void acceptTrade() {
Time.sleep(500, 750);
Mouse.getInstance().click(230, 310, true);
Time.sleep(500, 750);
@@ -5,7 +5,6 @@ import org.rev317.min.Loader;
import org.rev317.min.api.interfaces.Locatable;
import org.rev317.min.api.methods.Calculations;
import org.rev317.min.api.methods.Game;
import org.rev317.min.api.methods.Menu;
import org.rev317.min.api.methods.Players;
/**
@@ -75,15 +74,6 @@ public class Character implements Locatable {
return (int) Calculations.distanceTo(getLocation());
}
/**
* Interacts with this character
*
* @param i
*/
public void interact(int i) {
Menu.interact(this, i);
}
/**
* Gets current health
*
@@ -2,9 +2,7 @@ package org.rev317.min.api.wrappers;
import org.parabot.core.reflect.RefClass;
import org.rev317.min.api.interfaces.Locatable;
import org.rev317.min.api.methods.Calculations;
import org.rev317.min.api.methods.Game;
import org.rev317.min.api.methods.Menu;
import org.rev317.min.api.methods.*;
/**
* @author Everel
@@ -50,10 +48,10 @@ public class GroundItem implements Locatable {
/**
* Interacts with this ground item
*
* @param actionIndex
* @param option
*/
public void interact(int actionIndex) {
Menu.interact(this, actionIndex);
public void interact(GroundItems.Option option) {
Menu.interact(this, option.getActionId());
}
/**
+7 -14
View File
@@ -1,5 +1,6 @@
package org.rev317.min.api.wrappers;
import org.rev317.min.api.methods.Items;
import org.rev317.min.api.methods.Menu;
/**
@@ -52,27 +53,19 @@ public class Item {
/**
* Interacts with this item
*
* @param i
* @param option
*/
public void interact(int i) {
Menu.interact(this, i);
}
/**
* Interacts with this item
* @param s
*/
public void interact(String s){
Menu.interact(this, s);
public void interact(Items.Option option) {
Menu.interact(this, option.getActionId());
}
/**
*
* @param actionIndex
* @param option
* @param interfaceParentId
*/
public void transform(int actionIndex, int interfaceParentId) {
Menu.transformItem(this, actionIndex, interfaceParentId);
public void transform(Items.Option option, int interfaceParentId) {
Menu.transformItem(this, option.getActionId(), interfaceParentId);
}
}
+11
View File
@@ -1,6 +1,8 @@
package org.rev317.min.api.wrappers;
import org.parabot.core.reflect.RefClass;
import org.rev317.min.api.methods.Menu;
import org.rev317.min.api.methods.Npcs;
/**
* @author Everel
@@ -32,4 +34,13 @@ public final class Npc extends Character {
return new RefClass(this.accessor);
}
/**
* Interacts with this character
*
* @param option
*/
public void interact(Npcs.Option option) {
Menu.interact(this, option.getActionId());
}
}
@@ -1,5 +1,8 @@
package org.rev317.min.api.wrappers;
import org.rev317.min.api.methods.Menu;
import org.rev317.min.api.methods.Players;
/**
* @author Everel
*/
@@ -12,4 +15,13 @@ public class Player extends Character {
public String getName(){
return getAccessor().getName();
}
/**
* Interacts with this character
*
* @param option
*/
public void interact(Players.Option option) {
Menu.interact(this, option.getActionId());
}
}
@@ -6,6 +6,7 @@ import org.rev317.min.api.interfaces.Locatable;
import org.rev317.min.api.methods.Calculations;
import org.rev317.min.api.methods.Game;
import org.rev317.min.api.methods.Menu;
import org.rev317.min.api.methods.SceneObjects;
/**
* @author Everel
@@ -91,10 +92,10 @@ public class SceneObject implements Locatable {
/**
* Interacts with this object
*
* @param actionIndex
* @param option
*/
public void interact(int actionIndex) {
Menu.interact(this, actionIndex);
public void interact(SceneObjects.Option option) {
Menu.interact(this, option.getActionId());
}
/**