diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..7faa4b4
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml b/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml
new file mode 100644
index 0000000..f3f3738
--- /dev/null
+++ b/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_all_5_0_4.xml b/.idea/libraries/Maven__org_ow2_asm_asm_all_5_0_4.xml
new file mode 100644
index 0000000..d99e4d6
--- /dev/null
+++ b/.idea/libraries/Maven__org_ow2_asm_asm_all_5_0_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_parabot_317_api_minified_1_21_3.xml b/.idea/libraries/Maven__org_parabot_317_api_minified_1_21_3.xml
new file mode 100644
index 0000000..50d2f12
--- /dev/null
+++ b/.idea/libraries/Maven__org_parabot_317_api_minified_1_21_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_parabot_client_2_7.xml b/.idea/libraries/Maven__org_parabot_client_2_7.xml
new file mode 100644
index 0000000..c6b0498
--- /dev/null
+++ b/.idea/libraries/Maven__org_parabot_client_2_7.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_parabot_internal_api_1_52_1.xml b/.idea/libraries/Maven__org_parabot_internal_api_1_52_1.xml
new file mode 100644
index 0000000..d2756be
--- /dev/null
+++ b/.idea/libraries/Maven__org_parabot_internal_api_1_52_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 0548357..5755a99 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,12 @@
+
+
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index b14c28d..1c413de 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -3,14 +3,7 @@
-
-
-
-
-
-
-
-
+
@@ -29,6 +22,13 @@
+
+
+
+
+
+
+
@@ -40,18 +40,29 @@
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
diff --git a/ParaScript.iml b/ParaScript.iml
index f1662ba..b12236a 100644
--- a/ParaScript.iml
+++ b/ParaScript.iml
@@ -1,31 +1,19 @@
-
-
+
+
-
-
+
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..9e17272
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,74 @@
+
+
+ 4.0.0
+
+ src
+ parascript
+ 1
+
+
+ 1.8
+
+
+
+
+ parabot-maven
+ Parabot its Maven Repository
+ http://maven.parabot.org/
+
+
+
+
+
+ org.parabot
+ client
+ 2.7
+
+
+ org.parabot
+ 317-api-minified
+ 1.21.3
+
+
+
+
+ 1000204
+
+
+ src/main/resources
+ true
+
+ config.xml
+
+
+
+ src/main/resources
+ false
+
+ config.xml
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+ 8
+ 8
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ src/main/resources/config.xml
+
+
+
+
+
+
diff --git a/src/ParaScript/Main.java b/src/ParaScript/Main.java
deleted file mode 100644
index f8e533e..0000000
--- a/src/ParaScript/Main.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package ParaScript;
-
-import ParaScript.data.Variables;
-import ParaScript.strategies.*;
-import ParaScript.ui.UI;
-import org.parabot.environment.api.utils.Time;
-import org.parabot.environment.scripts.Script;
-import org.parabot.environment.scripts.framework.Strategy;
-import org.parabot.environment.scripts.Category;
-import org.parabot.environment.scripts.ScriptManifest;
-
-import java.util.ArrayList;
-
-@ScriptManifest(author = "RedSparr0w", category = Category.OTHER, description = "ParaScript", name = "Script", servers = { "2006rebotted" }, version = 1)
-public class Main extends Script{
-
- private final ArrayList strategies = new ArrayList();
-
- @Override
- public boolean onExecute() {
-
- UI ui = new UI();
- ui.setVisible(true);
- while (!Variables.running) {
- Time.sleep(300);
- }
-
- strategies.add(new ScriptState());
- if(Variables.skill_to_train.equalsIgnoreCase("Woodcutting")) {
- strategies.add(new MakeArrowShafts());
- strategies.add(new WoodcutTree());
- }
- if(Variables.skill_to_train.equalsIgnoreCase("Mining")) {
- strategies.add(new Mine());
- strategies.add(new Bank());
- strategies.add(new Walk());
- }
- strategies.add(new HandleLogin());
- provide(strategies);
- return true;
- }
-
- @Override
- public void onFinish() {
-
- }
-}
\ No newline at end of file
diff --git a/src/ParaScript/data/Variables.java b/src/ParaScript/data/Variables.java
deleted file mode 100644
index 53476e7..0000000
--- a/src/ParaScript/data/Variables.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package ParaScript.data;
-
-import ParaScript.data.variables.Trees;
-import ParaScript.data.variables.Zone;
-import org.rev317.min.api.wrappers.Tile;
-import org.rev317.min.api.wrappers.TilePath;
-
-import java.util.List;
-
-public class Variables {
- public static boolean running = false;
- private static String currentStatus = "none";
-
- // Login Panel
- private static String username = "";
- private static String password = "";
- // Settings Panel
- public static String skill_to_train = "Woodcutting";
-
- // Used to walk places
- public static TilePath pathToWalk;
-
- public static String getStatus() {
- return currentStatus;
- }
-
- public static void setStatus(String i) {
- currentStatus = i;
- }
-
- public final static Zone LUMBRIDGE_NORMAL_TREE_ZONE = new Zone(new Tile(3140, 3260), new Tile(3206, 3206));
-
- // Mining Varrock
-
- public final static Zone VARROCK_EAST_BANK_ZONE = new Zone(new Tile(3250, 3424), new Tile(3257, 3416));
- public final static Zone VARROCK_EAST_MINE_ZONE = new Zone(new Tile(3278, 3372), new Tile(3295, 3358));
-
- public final static Tile[] VARROCK_EAST_MINE_PATH_TO_BANK = new Tile[]{
- new Tile(3289, 3373),
- new Tile(3289, 3373),
- new Tile(3290, 3384),
- new Tile(3290, 3395),
- new Tile(3289, 3406),
- new Tile(3281, 3416),
- new Tile(3275, 3425),
- new Tile(3264, 3426),
- new Tile(3253, 3425),
- new Tile(3253, 3420),
- };
-
- public final static Tile[] VARROCK_EAST_BANK_PATH_TO_MINE = new Tile[] {
- new Tile(3253, 3423),
- new Tile(3253, 3423),
- new Tile(3262, 3427),
- new Tile(3273, 3427),
- new Tile(3280, 3418),
- new Tile(3288, 3408),
- new Tile(3290, 3397),
- new Tile(3290, 3386),
- new Tile(3288, 3375),
- new Tile(3287, 3371),
- };
-
-
-
- public static String getAccountUsername() { return username; }
- public static void setAccountUsername(String i) { username = i; }
-
- public static String getAccountPassword() { return password; }
- public static void setAccountPassword(String i) { password = i; }
-}
diff --git a/src/main/java/ParaScript/Main.java b/src/main/java/ParaScript/Main.java
new file mode 100644
index 0000000..5b08ebf
--- /dev/null
+++ b/src/main/java/ParaScript/Main.java
@@ -0,0 +1,108 @@
+package ParaScript;
+
+import ParaScript.data.Variables;
+import ParaScript.strategies.*;
+import ParaScript.ui.UI;
+import org.parabot.environment.api.interfaces.Paintable;
+import org.parabot.environment.api.utils.Time;
+import org.parabot.environment.scripts.Script;
+import org.parabot.environment.scripts.framework.Strategy;
+import org.parabot.environment.scripts.Category;
+import org.parabot.environment.scripts.ScriptManifest;
+import org.rev317.min.api.events.MessageEvent;
+import org.rev317.min.api.events.listeners.MessageListener;
+import org.rev317.min.api.methods.Skill;
+
+import java.awt.*;
+import java.util.ArrayList;
+
+@ScriptManifest(author = "RedSparr0w", category = Category.OTHER, description = "ParaScript", name = "ParaScript", servers = { "2006rebotted" }, version = 1)
+public class Main extends Script implements MessageListener, Paintable {
+
+ private final ArrayList strategies = new ArrayList();
+ private UI ui = new UI();
+
+ @Override
+ public boolean onExecute() {
+ ui.setVisible(true);
+ while (!Variables.running) {
+ Time.sleep(300);
+ }
+
+ Variables.setBaseExp();
+
+ strategies.add(new ScriptState());
+ if(Variables.skill_to_train == Skill.WOODCUTTING) {
+ strategies.add(new MakeArrowShafts());
+ strategies.add(new WoodcutTree());
+ }
+ if(Variables.skill_to_train == Skill.MINING) {
+ strategies.add(new Mine());
+ strategies.add(new Bank());
+ strategies.add(new Walk());
+ }
+ if(Variables.skill_to_train == null) {
+ strategies.add(new Bank());
+ strategies.add(new Walk());
+ strategies.add(new PickupItems());
+ }
+ strategies.add(new HandleLogin());
+ provide(strategies);
+ return true;
+ }
+
+ @Override
+ public void onFinish() {
+ ui.dispose();
+ System.out.println("Script Stopped");
+ }
+
+ @Override
+ public void paint(Graphics graphics) {
+ Graphics2D g = (Graphics2D) graphics;
+
+ Color c2=new Color(0f,.749f,1.0f,.3f );
+ g.setColor(c2);
+ g.setBackground(c2);
+ g.fillRect(355, 232, 160, 20);
+
+ Color c=new Color(.686f,.933f,.933f,.3f );
+ g.setColor(c);
+ g.setBackground(c);
+ g.fillRect(355, 252, 160, 85);
+
+ g.setColor(Color.WHITE);
+ g.setFont(new Font("Arial", 1, 14));
+ g.drawString("ParaScript", 360, 247);
+ g.setFont(new Font("Arial", 1, 11));
+ g.drawString("Status: " + Variables.getStatus(), 360, 270);
+ g.drawString("Items(P/H): " + Methods.formatNumber(Variables.itemsGained) + "(" + Methods.formatNumber(Variables.SCRIPT_TIMER.getPerHour(Variables.itemsGained)) + ")", 360, 290);
+ g.drawString("EXP(P/H): " + Methods.formatNumber((int) Variables.expGained) + "(" + Methods.formatNumber(Variables.SCRIPT_TIMER.getPerHour((int) Variables.expGained)) + ")", 360, 310);
+ g.drawString("Runtime: " + Variables.SCRIPT_TIMER.toString(), 360, 330);
+
+ }
+
+ public void messageReceived(MessageEvent message) {
+ switch (message.getType()) {
+ case 0:
+ if (message.getMessage().startsWith("You manage to ")) {
+ Variables.addItemGained(1);
+ Variables.updateExpGained();
+ }
+ if (message.getMessage().contains("Congratulations, you advanced a woodcutting level.")) {
+ // add in level up to paint
+ }
+ break;
+ case 4:
+ if(Variables.skill_to_train == null) {
+ if (message.getMessage().startsWith(Variables.slaveMaster.toLowerCase() + " wishes to trade with you")) {
+ // accept trade
+ // take items, give items if smithing or similar
+ // goto bank, deposit/withdraw items
+ // go back to user
+ }
+ }
+ break;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/ParaScript/Methods.java b/src/main/java/ParaScript/Methods.java
new file mode 100644
index 0000000..6947cda
--- /dev/null
+++ b/src/main/java/ParaScript/Methods.java
@@ -0,0 +1,17 @@
+package ParaScript;
+
+import java.text.DecimalFormat;
+
+public class Methods {
+ public static String formatNumber(int number) {
+ DecimalFormat nf = new DecimalFormat("0.0");
+ double i = number;
+ if (i >= 1000000) {
+ return nf.format((i / 1000000)) + "M";
+ }
+ if (i >= 1000) {
+ return nf.format((i / 1000)) + "K";
+ }
+ return "" + number;
+ }
+}
diff --git a/src/main/java/ParaScript/data/Variables.java b/src/main/java/ParaScript/data/Variables.java
new file mode 100644
index 0000000..fffa30d
--- /dev/null
+++ b/src/main/java/ParaScript/data/Variables.java
@@ -0,0 +1,139 @@
+package ParaScript.data;
+
+import ParaScript.data.variables.Ores;
+import ParaScript.data.variables.Trees;
+import ParaScript.data.variables.Zone;
+import org.parabot.environment.api.utils.Timer;
+import org.rev317.min.api.methods.Skill;
+import org.rev317.min.api.wrappers.Tile;
+import org.rev317.min.api.wrappers.TilePath;
+
+import java.util.List;
+
+public class Variables {
+ public static final Timer SCRIPT_TIMER = new Timer();
+
+ public static boolean running = false;
+ private static String currentStatus = "none";
+ public static int itemsGained = 0;
+ public static double baseExperience = 0;
+ public static double expGained = 0;
+
+ // Login Panel
+ private static String username = "";
+ private static String password = "";
+
+ // Settings Panel
+ public static Skill skill_to_train = Skill.WOODCUTTING;
+
+ // Woodcutting
+ public static Trees woodcutting_tree_selected = Trees.NORMAL;
+ public static String woodcutting_method = "Fletch";
+
+ // Mining
+ public static Ores mining_ore_selected = Ores.COPPER_TIN;
+ public static String mining_method = "Bank";
+
+ // Used for slave accounts
+ public static String slaveMaster = "";
+
+ // Used to walk places
+ public static TilePath pathToWalk;
+
+ public static String getStatus() {
+ return currentStatus;
+ }
+
+ public static void setStatus(String i) {
+ currentStatus = i;
+ }
+
+ public final static Zone LUMBRIDGE_NORMAL_TREE_ZONE = new Zone(new Tile(3140, 3260), new Tile(3206, 3206));
+
+ // Mining Varrock
+
+ public final static Zone VARROCK_EAST_BANK_ZONE = new Zone(new Tile(3250, 3424), new Tile(3257, 3416));
+ public final static Zone VARROCK_EAST_MINE_ZONE = new Zone(new Tile(3276, 3375), new Tile(3298, 3354));
+
+ public final static Tile[] VARROCK_EAST_MINE_PATH_TO_BANK = new Tile[]{
+ new Tile(3289, 3373),
+ new Tile(3289, 3373),
+ new Tile(3290, 3384),
+ new Tile(3290, 3395),
+ new Tile(3289, 3406),
+ new Tile(3281, 3416),
+ new Tile(3275, 3425),
+ new Tile(3264, 3426),
+ new Tile(3253, 3425),
+ new Tile(3253, 3420),
+ };
+
+ public final static Tile[] VARROCK_EAST_BANK_PATH_TO_MINE = new Tile[] {
+ new Tile(3253, 3423),
+ new Tile(3253, 3423),
+ new Tile(3262, 3427),
+ new Tile(3273, 3427),
+ new Tile(3280, 3418),
+ new Tile(3288, 3408),
+ new Tile(3290, 3397),
+ new Tile(3290, 3386),
+ new Tile(3288, 3375),
+ new Tile(3287, 3370),
+ };
+
+
+
+ public static String getAccountUsername() { return username; }
+ public static void setAccountUsername(String i) { username = i; }
+
+ public static String getAccountPassword() { return password; }
+ public static void setAccountPassword(String i) { password = i; }
+
+ public static void addItemGained(int amount){
+ itemsGained += amount;
+ }
+
+ public static void setBaseExp(){
+ if (skill_to_train == null) return;
+ baseExperience = skill_to_train.getExperience();
+ }
+
+ public static void updateExpGained(){
+ if (skill_to_train == null) return;
+ expGained = skill_to_train.getExperience() - baseExperience;
+ }
+
+ public static boolean shouldBankItems(){
+ if (skill_to_train == null) return true;
+ switch (skill_to_train.getName()){
+ case "Woodcutting":
+ return woodcutting_method.equalsIgnoreCase("Bank");
+ case "Mining":
+ return mining_method.equalsIgnoreCase("Bank");
+ default:
+ return true;
+ }
+ }
+
+ public static boolean shouldDropItems(){
+ if (skill_to_train == null) return false;
+ switch (skill_to_train.getName()){
+ case "Woodcutting":
+ return woodcutting_method.equalsIgnoreCase("Drop");
+ case "Mining":
+ return mining_method.equalsIgnoreCase("Drop");
+ default:
+ return false;
+ }
+ }
+
+ public static boolean shouldFletchItems(){
+ if (skill_to_train == null) return false;
+ switch (skill_to_train.getName()){
+ case "Woodcutting":
+ return woodcutting_method.equalsIgnoreCase("Fletch");
+ default:
+ return false;
+ }
+ }
+}
diff --git a/src/ParaScript/data/variables/Ores.java b/src/main/java/ParaScript/data/variables/Ores.java
similarity index 58%
rename from src/ParaScript/data/variables/Ores.java
rename to src/main/java/ParaScript/data/variables/Ores.java
index c4ab7d9..712072b 100644
--- a/src/ParaScript/data/variables/Ores.java
+++ b/src/main/java/ParaScript/data/variables/Ores.java
@@ -5,18 +5,20 @@ import java.util.Arrays;
import java.util.List;
public enum Ores {
- COPPER("Copper", new int[]{2090}),
- TIN("Tin", new int[]{2094}),
- COPPER_TIN("Copper & Tin", new int[]{2090, 2094}),
- IRON ("Iron", new int[]{2092}),
- COAL("Coal", new int[]{});
+ COPPER_TIN("Copper & Tin", new int[]{2090, 2094}, 17.5),
+ COPPER("Copper", new int[]{2090}, 17.5),
+ TIN("Tin", new int[]{2094}, 17.5),
+ IRON ("Iron", new int[]{2092}, 35),
+ COAL("Coal", new int[]{}, 50);
private String name;
private int[] ids;
+ private double xp;
- Ores(String name, int[] ids) {
+ Ores(String name, int[] ids, double xp) {
this.name = name;
this.ids = ids;
+ this.xp = xp;
}
public static String[] toStringArray() {
@@ -31,7 +33,9 @@ public enum Ores {
return(simpleArray);
}
- public int[] getIDs() {
- return this.ids;
- }
+ public String getName() { return this.name; }
+
+ public int[] getIDs() { return this.ids; }
+
+ public double getXP() { return this.xp; }
}
diff --git a/src/ParaScript/data/variables/Trees.java b/src/main/java/ParaScript/data/variables/Trees.java
similarity index 59%
rename from src/ParaScript/data/variables/Trees.java
rename to src/main/java/ParaScript/data/variables/Trees.java
index 7ba88a4..6351d4e 100644
--- a/src/ParaScript/data/variables/Trees.java
+++ b/src/main/java/ParaScript/data/variables/Trees.java
@@ -5,17 +5,19 @@ import java.util.Arrays;
import java.util.List;
public enum Trees {
- NORMAL("Normal", new int[]{1276, 1278, 1279}),
- OAK("Oak", new int[]{1281}),
- WILLOW ("Willow", new int[]{5551, 1308, 5553, 5552}),
- MAPLE("Maple", new int[]{1307});
+ NORMAL("Normal", new int[]{1276, 1278, 1279}, 25),
+ OAK("Oak", new int[]{1281}, 37.5),
+ WILLOW ("Willow", new int[]{5551, 1308, 5553, 5552}, 47.5),
+ MAPLE("Maple", new int[]{1307}, 100);
private String name;
private int[] ids;
+ private double xp;
- Trees(String name, int[] ids) {
+ Trees(String name, int[] ids, double xp) {
this.name = name;
this.ids = ids;
+ this.xp = xp;
}
public static String[] toStringArray() {
@@ -30,7 +32,9 @@ public enum Trees {
return(simpleArray);
}
- public int[] getIDs() {
- return this.ids;
- }
+ public String getName() { return this.name; }
+
+ public int[] getIDs() { return this.ids; }
+
+ public double getXP() { return this.xp; }
}
diff --git a/src/ParaScript/data/variables/Zone.java b/src/main/java/ParaScript/data/variables/Zone.java
similarity index 100%
rename from src/ParaScript/data/variables/Zone.java
rename to src/main/java/ParaScript/data/variables/Zone.java
diff --git a/src/ParaScript/strategies/Bank.java b/src/main/java/ParaScript/strategies/Bank.java
similarity index 66%
rename from src/ParaScript/strategies/Bank.java
rename to src/main/java/ParaScript/strategies/Bank.java
index 8220b21..3654494 100644
--- a/src/ParaScript/strategies/Bank.java
+++ b/src/main/java/ParaScript/strategies/Bank.java
@@ -13,6 +13,7 @@ public class Bank implements Strategy {
public boolean activate() {
return Variables.running
&& Game.isLoggedIn()
+ && Variables.shouldBankItems()
&& (Variables.getStatus() == "none" || Variables.getStatus() == "banking items")
&& Inventory.isFull();
}
@@ -22,11 +23,13 @@ public class Bank implements Strategy {
Variables.pathToWalk = new TilePath(Variables.VARROCK_EAST_MINE_PATH_TO_BANK);
Variables.setStatus("banking items");
while (Variables.pathToWalk != null && !Variables.pathToWalk.hasReached()) {
+ if (!Game.isLoggedIn()) new HandleLogin().execute();
Variables.pathToWalk.traverse();
Time.sleep(2000, 3000);
}
depositItems();
}
+
public void depositItems() {
Npc banker[] = Npcs.getNearest(494);
@@ -34,10 +37,14 @@ public class Bank implements Strategy {
banker[0].interact(Npcs.Option.BANK);
Time.sleep(3000);
if (Game.getOpenInterfaceId() == 5292) {
- //Pick Axes
- org.rev317.min.api.methods.Bank.depositAllExcept(1266, 1268, 1270, 1272, 1274, 1276);
- //Axes
- //org.rev317.min.api.methods.Bank.depositAllExcept(1350, 1352, 1354, 1356, 1358, 1360, 6740);
+ if (Variables.skill_to_train == Skill.MINING)
+ org.rev317.min.api.methods.Bank.depositAllExcept(1266, 1268, 1270, 1272, 1274, 1276);
+ if (Variables.skill_to_train == Skill.WOODCUTTING)
+ org.rev317.min.api.methods.Bank.depositAllExcept(1350, 1352, 1354, 1356, 1358, 1360, 6740);
+ if (Variables.skill_to_train == null) {
+ org.rev317.min.api.methods.Bank.depositAllExcept(1);
+ Variables.addItemGained(28);
+ }
Variables.setStatus("none");
}
}
diff --git a/src/ParaScript/strategies/HandleLogin.java b/src/main/java/ParaScript/strategies/HandleLogin.java
similarity index 100%
rename from src/ParaScript/strategies/HandleLogin.java
rename to src/main/java/ParaScript/strategies/HandleLogin.java
diff --git a/src/ParaScript/strategies/MakeArrowShafts.java b/src/main/java/ParaScript/strategies/MakeArrowShafts.java
similarity index 100%
rename from src/ParaScript/strategies/MakeArrowShafts.java
rename to src/main/java/ParaScript/strategies/MakeArrowShafts.java
diff --git a/src/ParaScript/strategies/Mine.java b/src/main/java/ParaScript/strategies/Mine.java
similarity index 75%
rename from src/ParaScript/strategies/Mine.java
rename to src/main/java/ParaScript/strategies/Mine.java
index 4f7cf92..8a84e76 100644
--- a/src/ParaScript/strategies/Mine.java
+++ b/src/main/java/ParaScript/strategies/Mine.java
@@ -5,6 +5,7 @@ import ParaScript.data.variables.Ores;
import org.parabot.environment.api.utils.Time;
import org.parabot.environment.scripts.framework.Strategy;
import org.rev317.min.api.methods.Inventory;
+import org.rev317.min.api.methods.Items;
import org.rev317.min.api.methods.Players;
import org.rev317.min.api.methods.SceneObjects;
import org.rev317.min.api.wrappers.SceneObject;
@@ -32,6 +33,9 @@ public class Mine implements Strategy {
@Override
public void execute() {
try {
+ if (Variables.shouldDropItems()) {
+ if (Inventory.getCount(441) >= 1) Inventory.getItem(441).interact(Items.Option.DROP);
+ }
ore.interact(SceneObjects.Option.MINE);
Time.sleep(1000);
Time.sleep(() -> Players.getMyPlayer().getAnimation() == -1, 3000);
@@ -41,11 +45,13 @@ public class Mine implements Strategy {
}
private SceneObject ore(){
- int[] ore_to_mine = Ores.COPPER_TIN.getIDs();
- if (Inventory.getCount(437) >= 14)
- ore_to_mine = Ores.TIN.getIDs();
- if (Inventory.getCount(439) >= 14)
- ore_to_mine = Ores.COPPER.getIDs();
+ int[] ore_to_mine = Variables.mining_ore_selected.getIDs();
+ if (ore_to_mine == Ores.COPPER_TIN.getIDs()) {
+ if (Inventory.getCount(437) >= 14)
+ ore_to_mine = Ores.TIN.getIDs();
+ if (Inventory.getCount(439) >= 14)
+ ore_to_mine = Ores.COPPER.getIDs();
+ }
for(SceneObject ore : SceneObjects.getNearest(ore_to_mine)){
if(Variables.VARROCK_EAST_MINE_ZONE.inTheZoneObject(ore)) {
return ore;
diff --git a/src/main/java/ParaScript/strategies/PickupItems.java b/src/main/java/ParaScript/strategies/PickupItems.java
new file mode 100644
index 0000000..d999212
--- /dev/null
+++ b/src/main/java/ParaScript/strategies/PickupItems.java
@@ -0,0 +1,47 @@
+package ParaScript.strategies;
+
+import ParaScript.data.Variables;
+import ParaScript.data.variables.Ores;
+import org.parabot.environment.api.utils.Time;
+import org.parabot.environment.scripts.framework.Strategy;
+import org.rev317.min.api.methods.GroundItems;
+import org.rev317.min.api.methods.Inventory;
+import org.rev317.min.api.methods.Players;
+import org.rev317.min.api.methods.SceneObjects;
+import org.rev317.min.api.wrappers.GroundItem;
+import org.rev317.min.api.wrappers.SceneObject;
+
+public class PickupItems implements Strategy {
+
+ @Override
+ public boolean activate() {
+ if (Variables.running
+ && (Variables.getStatus() == "none" || Variables.getStatus() == "picking up items")
+ && Variables.VARROCK_EAST_MINE_ZONE.inTheZone()
+ && !Players.getMyPlayer().isInCombat()
+ && Players.getMyPlayer().getAnimation() == -1
+ && !Inventory.isFull()) {
+ Variables.setStatus("picking up items");
+ return true;
+ }
+ Variables.setStatus("none");
+ return false;
+ }
+
+ @Override
+ public void execute() {
+ try {
+ GroundItem[] items = GroundItems.getNearest(436, 438, 440);
+ for (GroundItem item : items) {
+ item.take();
+ Time.sleep(1500);
+ if (Inventory.isFull()){
+ Variables.setStatus("none");
+ return;
+ }
+ }
+ } catch (Exception err){
+ System.out.println("Pickup items error: ¯\\_(ツ)_/¯");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/ParaScript/strategies/ScriptState.java b/src/main/java/ParaScript/strategies/ScriptState.java
similarity index 100%
rename from src/ParaScript/strategies/ScriptState.java
rename to src/main/java/ParaScript/strategies/ScriptState.java
diff --git a/src/ParaScript/strategies/Thieving.java b/src/main/java/ParaScript/strategies/Thieving.java
similarity index 100%
rename from src/ParaScript/strategies/Thieving.java
rename to src/main/java/ParaScript/strategies/Thieving.java
diff --git a/src/ParaScript/strategies/Walk.java b/src/main/java/ParaScript/strategies/Walk.java
similarity index 94%
rename from src/ParaScript/strategies/Walk.java
rename to src/main/java/ParaScript/strategies/Walk.java
index 16dc8b0..278f573 100644
--- a/src/ParaScript/strategies/Walk.java
+++ b/src/main/java/ParaScript/strategies/Walk.java
@@ -24,6 +24,7 @@ public class Walk implements Strategy {
Variables.pathToWalk = new TilePath(Variables.VARROCK_EAST_BANK_PATH_TO_MINE);
//Variables.setBotStatus("walking to " + Variables.getTree().getName());
while (Variables.pathToWalk != null && !Variables.pathToWalk.hasReached()) {
+ if (!Game.isLoggedIn()) new HandleLogin().execute();
Variables.pathToWalk.traverse();
Time.sleep(2000, 3000);
}
diff --git a/src/ParaScript/strategies/WoodcutTree.java b/src/main/java/ParaScript/strategies/WoodcutTree.java
similarity index 91%
rename from src/ParaScript/strategies/WoodcutTree.java
rename to src/main/java/ParaScript/strategies/WoodcutTree.java
index f9f4551..a0eaba0 100644
--- a/src/ParaScript/strategies/WoodcutTree.java
+++ b/src/main/java/ParaScript/strategies/WoodcutTree.java
@@ -37,7 +37,8 @@ public class WoodcutTree implements Strategy {
}
private SceneObject tree(){
- for(SceneObject tree : SceneObjects.getNearest(Trees.NORMAL.getIDs())){
+ int[] tree_to_cut = Variables.woodcutting_tree_selected.getIDs();
+ for(SceneObject tree : SceneObjects.getNearest(tree_to_cut)){
if(tree != null){
if(Variables.LUMBRIDGE_NORMAL_TREE_ZONE.inTheZoneObject(tree)) {
return tree;
diff --git a/src/ParaScript/ui/UI.java b/src/main/java/ParaScript/ui/UI.java
similarity index 62%
rename from src/ParaScript/ui/UI.java
rename to src/main/java/ParaScript/ui/UI.java
index 147ccff..21a4ac8 100644
--- a/src/ParaScript/ui/UI.java
+++ b/src/main/java/ParaScript/ui/UI.java
@@ -1,9 +1,11 @@
package ParaScript.ui;
+import ParaScript.data.variables.Ores;
import ParaScript.data.variables.Trees;
import ParaScript.data.Variables;
import org.rev317.min.api.methods.Game;
import org.rev317.min.api.methods.Players;
+import org.rev317.min.api.methods.Skill;
import org.rev317.min.api.wrappers.Player;
import javax.swing.*;
@@ -15,18 +17,25 @@ import java.awt.event.ActionListener;
public class UI extends JFrame {
private final ButtonGroup woodcutOptionButtonGroup = new ButtonGroup();
private JPanel contentPane;
+
// Login tab
private JTextField username = new JTextField();
private JPasswordField password = new JPasswordField();
private JCheckBox autoLogin = new JCheckBox();
+
// Settings
private JComboBox skillSelect = new JComboBox();
- private JRadioButton bank = new JRadioButton("Bank");
- private JRadioButton drop = new JRadioButton("Drop");
+
// Woodcutting
private JComboBox treeSelect = new JComboBox();
+ private JComboBox woodcuttingMethod = new JComboBox();
private JComboBox location = new JComboBox();
private JCheckBox birdsNest = new JCheckBox();
+
+ // Mining
+ private JComboBox oreSelect = new JComboBox();
+ private JComboBox miningMethod = new JComboBox();
+
// Our colors
private Color Color_MidnightBlue = new Color(44, 62, 80);
private Color Color_WetAsphalt = new Color(52, 73, 94);
@@ -35,7 +44,7 @@ public class UI extends JFrame {
private Color Color_Alizarin = new Color(231, 76, 60);
public UI() {
- setTitle("ParaScript");
+ setTitle("src/ParaScript");
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 400, 300);
@@ -51,7 +60,7 @@ public class UI extends JFrame {
contentPane.add(tabbedPane);
/*
- * Login Stuff
+ * Login Panel
*/
JPanel loginPanel = new JPanel();
loginPanel.setForeground(Color_WhiteSmoke);
@@ -88,7 +97,7 @@ public class UI extends JFrame {
loginPanel.add(autoLogin);
/*
- * Settings
+ * Settings Panel
*/
JPanel settingsPanel = new JPanel();
settingsPanel.setForeground(Color_WhiteSmoke);
@@ -102,18 +111,26 @@ public class UI extends JFrame {
lblSkillToTrain.setBounds(20, 20, 73, 20);
settingsPanel.add(lblSkillToTrain);
skillSelect.setModel(new DefaultComboBoxModel(new String[]{
- "Woodcutting",
- "Mining",
+ Skill.WOODCUTTING.getName(),
+ Skill.MINING.getName(),
+ "Bank Runner",
}));
skillSelect.setBounds(20, 40, 150, 20);
- settingsPanel.add(skillSelect);
skillSelect.addActionListener (new ActionListener () {
public void actionPerformed(ActionEvent e) {
- Variables.skill_to_train = skillSelect.getSelectedItem().toString();
+ for (Skill skill : Skill.values()) {
+ if (skill.getName().equalsIgnoreCase(skillSelect.getSelectedItem().toString())) {
+ Variables.skill_to_train = skill;
+ return;
+ }
+ Variables.skill_to_train = null;
+ }
}
});
+ settingsPanel.add(skillSelect);
+
/*
- * Woodcutting Stuff
+ * Woodcutting Panel
*/
JPanel woodcuttingPanel = new JPanel();
@@ -125,12 +142,39 @@ public class UI extends JFrame {
// Select which tree to cut
JLabel lblTree = new JLabel("Tree");
lblTree.setForeground(Color_WhiteSmoke);
- lblTree.setBounds(20, 20, 73, 20);
+ lblTree.setBounds(20, 20, 150, 20);
woodcuttingPanel.add(lblTree);
treeSelect.setModel(new DefaultComboBoxModel(Trees.toStringArray()));
treeSelect.setBounds(20, 40, 150, 20);
+ treeSelect.addActionListener (new ActionListener () {
+ public void actionPerformed(ActionEvent e) {
+ for (Trees tree : Trees.values()) {
+ if (tree.getName().equalsIgnoreCase(treeSelect.getSelectedItem().toString())) {
+ Variables.woodcutting_tree_selected = tree;
+ }
+ }
+ }
+ });
woodcuttingPanel.add(treeSelect);
+ // What should we do with our logs
+ JLabel lblWoodcuttingMethod = new JLabel("Method");
+ lblWoodcuttingMethod.setForeground(Color_WhiteSmoke);
+ lblWoodcuttingMethod.setBounds(20, 60, 150, 20);
+ woodcuttingPanel.add(lblWoodcuttingMethod);
+ woodcuttingMethod.setModel(new DefaultComboBoxModel(new String[]{
+ "Fletch",
+ "Bank",
+ "Drop",
+ }));
+ woodcuttingMethod.setBounds(20, 80, 150, 20);
+ woodcuttingMethod.addActionListener (new ActionListener () {
+ public void actionPerformed(ActionEvent e) {
+ Variables.woodcutting_method = woodcuttingMethod.getSelectedItem().toString();
+ }
+ });
+ woodcuttingPanel.add(woodcuttingMethod);
+
/*
JLabel lblLocation = new JLabel("Location");
lblLocation.setBounds(200, 20, 73, 20);
@@ -140,18 +184,6 @@ public class UI extends JFrame {
location.setBounds(200, 40, 150, 20);
woodcuttingPanel.add(location);
- JLabel lblMethod = new JLabel("Method");
- lblMethod.setBounds(20, 120, 73, 20);
- woodcuttingPanel.add(lblMethod);
-
- woodcutOptionButtonGroup.add(bank);
- bank.setSelected(true);
- bank.setBounds(20, 140, 80, 20);
- woodcuttingPanel.add(bank);
-
- woodcutOptionButtonGroup.add(drop);
- drop.setBounds(20, 160, 80, 20);
- woodcuttingPanel.add(drop);
JLabel lblBirdsNest = new JLabel("Bird nests");
lblBirdsNest.setForeground(WhiteSmoke);
@@ -178,6 +210,74 @@ public class UI extends JFrame {
});
*/
+ /*
+ * Mining Panel
+ */
+
+ JPanel miningPanel = new JPanel();
+ miningPanel.setForeground(Color_WhiteSmoke);
+ miningPanel.setBackground(Color_WetAsphalt);
+ tabbedPane.addTab("Mining", null, miningPanel, null);
+ miningPanel.setLayout(null);
+
+ // Select which ore to mine
+ JLabel lblOre = new JLabel("Ore");
+ lblOre.setForeground(Color_WhiteSmoke);
+ lblOre.setBounds(20, 20, 73, 20);
+ miningPanel.add(lblOre);
+ oreSelect.setModel(new DefaultComboBoxModel(Ores.toStringArray()));
+ oreSelect.setBounds(20, 40, 150, 20);
+ oreSelect.addActionListener (new ActionListener () {
+ public void actionPerformed(ActionEvent e) {
+ for (Ores ore : Ores.values()) {
+ if (ore.getName().equalsIgnoreCase(oreSelect.getSelectedItem().toString())) {
+ Variables.mining_ore_selected = ore;
+ }
+ }
+ }
+ });
+ miningPanel.add(oreSelect);
+
+ // What should we do with our ores
+ JLabel lblMiningMethod = new JLabel("Method");
+ lblMiningMethod.setForeground(Color_WhiteSmoke);
+ lblMiningMethod.setBounds(20, 60, 150, 20);
+ miningPanel.add(lblMiningMethod);
+ miningMethod.setModel(new DefaultComboBoxModel(new String[]{
+ "Bank",
+ "Drop",
+ }));
+ miningMethod.setBounds(20, 80, 150, 20);
+ miningMethod.addActionListener (new ActionListener () {
+ public void actionPerformed(ActionEvent e) {
+ Variables.mining_method = miningMethod.getSelectedItem().toString();
+ }
+ });
+ miningPanel.add(miningMethod);
+
+ /*
+ * Slave Panel
+ */
+ JPanel slavePanel = new JPanel();
+ slavePanel.setForeground(Color_WhiteSmoke);
+ slavePanel.setBackground(Color_WetAsphalt);
+ tabbedPane.addTab("Bank Runner", null, slavePanel, null);
+ slavePanel.setLayout(null);
+
+ // Which skill are we training
+ JLabel lblSlaveMaster = new JLabel("Slave Master");
+ lblSlaveMaster.setForeground(Color_WhiteSmoke);
+ lblSlaveMaster.setBounds(20, 20, 73, 20);
+ slavePanel.add(lblSlaveMaster);
+ JTextField slaveMaster = new JTextField();
+ slaveMaster.setBounds(20, 40, 150, 20);
+ slavePanel.add(slaveMaster);
+ slaveMaster.addActionListener (new ActionListener () {
+ public void actionPerformed(ActionEvent e) {
+ Variables.slaveMaster = slaveMaster.getText();
+ }
+ });
+
JButton start = new JButton("START");
start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
diff --git a/src/main/resources/config.xml b/src/main/resources/config.xml
new file mode 100644
index 0000000..ab5055a
--- /dev/null
+++ b/src/main/resources/config.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/target/classes/META-INF/ParaScript.kotlin_module b/target/classes/META-INF/ParaScript.kotlin_module
new file mode 100644
index 0000000..2983af7
Binary files /dev/null and b/target/classes/META-INF/ParaScript.kotlin_module differ
diff --git a/target/classes/config.xml b/target/classes/config.xml
new file mode 100644
index 0000000..abc1a5a
--- /dev/null
+++ b/target/classes/config.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+