diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..fcbe118
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index 4d6556c..303d7e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,9 @@
*.war
*.ear
/bin
+
+# IntelliJ
+/out/
+out
+*.iml
+.idea/
\ No newline at end of file
diff --git a/.project b/.project
new file mode 100644
index 0000000..9d8fde2
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+
+
+ Parabot-317-API-Minified
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/src/org/rev317/min/Loader.java b/src/org/rev317/min/Loader.java
index 4aba373..a3bcc79 100644
--- a/src/org/rev317/min/Loader.java
+++ b/src/org/rev317/min/Loader.java
@@ -1,16 +1,13 @@
package org.rev317.min;
-import java.applet.Applet;
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import javax.swing.JMenuBar;
-
import org.parabot.core.Context;
+import org.parabot.core.Directories;
import org.parabot.core.asm.ASMClassLoader;
import org.parabot.core.asm.adapters.AddInterfaceAdapter;
import org.parabot.core.asm.hooks.HookFile;
+import org.parabot.core.desc.ServerProviderInfo;
+import org.parabot.core.ui.components.VerboseLoader;
+import org.parabot.environment.api.utils.WebUtil;
import org.parabot.environment.scripts.Script;
import org.parabot.environment.servers.ServerManifest;
import org.parabot.environment.servers.ServerProvider;
@@ -19,12 +16,17 @@ import org.rev317.min.accessors.Client;
import org.rev317.min.script.ScriptEngine;
import org.rev317.min.ui.BotMenu;
+import javax.swing.*;
+import java.applet.Applet;
+import java.io.File;
+import java.net.URL;
+
/**
- *
+ *
* @author Everel
*
*/
-@ServerManifest(author = "Everel", name = "Local Client", type = Type.INJECTION, version = 0.1)
+@ServerManifest(author = "Everel & Paradox", name = "Server name here", type = Type.INJECTION, version = 0.3)
public class Loader extends ServerProvider {
private Applet applet;
@@ -33,7 +35,7 @@ public class Loader extends ServerProvider {
try {
final Context context = Context.getInstance();
final ASMClassLoader classLoader = context.getASMClassLoader();
- final Class> clientClass = classLoader.loadClass("Client");
+ final Class> clientClass = classLoader.loadClass(context.getServerProviderInfo().getClientClass());
Object instance = clientClass.newInstance();
applet = (Applet) instance;
return applet;
@@ -43,15 +45,17 @@ public class Loader extends ServerProvider {
}
}
- @Override
- public URL getJar() {
- try {
- return new File("D:/317client.jar").toURI().toURL();
- } catch(Throwable t) {
- t.printStackTrace();
- }
- return null;
- }
+ @Override
+ public URL getJar() {
+ ServerProviderInfo serverProvider = Context.getInstance().getServerProviderInfo();
+
+ File target = new File(Directories.getCachePath(), serverProvider.getClientCRC32() + ".jar");
+ if(!target.exists()) {
+ WebUtil.downloadFile(serverProvider.getClient(), target, VerboseLoader.get());
+ }
+
+ return WebUtil.toURL(target);
+ }
public static Client getClient() {
return (Client) Context.getInstance().getClient();
@@ -77,12 +81,7 @@ public class Loader extends ServerProvider {
@Override
public HookFile getHookFile() {
- try {
- return new HookFile(new URL("http://bot.parabot.org/hooks/317api_hooks_min.xml"), HookFile.TYPE_XML);
- } catch (MalformedURLException e) {
- e.printStackTrace();
- }
- return null;
+ return new HookFile(Context.getInstance().getServerProviderInfo().getHookFile(), HookFile.TYPE_XML);
}
public void unloadScript(Script script) {
diff --git a/src/org/rev317/min/api/methods/Walking.java b/src/org/rev317/min/api/methods/Walking.java
index 638dd14..a62e12e 100644
--- a/src/org/rev317/min/api/methods/Walking.java
+++ b/src/org/rev317/min/api/methods/Walking.java
@@ -11,6 +11,11 @@ import org.rev317.min.api.wrappers.TilePath;
*/
public class Walking {
+ /**
+ * Walks from tile to tile
+ * @param from
+ * @param to
+ */
public static void walkTo(Tile from, Tile to) {
Loader.getClient().walkTo(0, 0, 0, 0, from.getRegionY(), 0, 0, to.getRegionY(), from.getRegionX(), true, to.getRegionX());
}
@@ -27,6 +32,23 @@ public class Walking {
tilePath.traverse();
return false;
}
+
+ /**
+ * Gets nearest reachable tile on minimap to given tile
+ * @param tile
+ * @return nearest reachable tile on minimap
+ */
+ public static Tile getNearestTileTo(Tile tile) {
+ Tile loc = Players.getMyPlayer().getLocation();
+ for (int i = 0; i < 1000; ++i) {
+ if (tile.distanceTo() < 16 && tile.isWalkable()) {
+ return tile;
+ }
+ tile = new Tile((loc.getX() + tile.getX()) / 2,
+ (loc.getY() + tile.getY()) / 2);
+ }
+ return null;
+ }
}
diff --git a/src/org/rev317/min/debug/DBank.java b/src/org/rev317/min/debug/DBank.java
new file mode 100644
index 0000000..88072ab
--- /dev/null
+++ b/src/org/rev317/min/debug/DBank.java
@@ -0,0 +1,32 @@
+package org.rev317.min.debug;
+
+import java.awt.Graphics;
+
+import org.parabot.core.paint.AbstractDebugger;
+import org.rev317.min.api.methods.Bank;
+
+public class DBank extends AbstractDebugger {
+
+ @Override
+ public void paint(Graphics g) {
+
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return false;
+ }
+
+ @Override
+ public void toggle() {
+ if (!Bank.isOpen())
+ return;
+
+ for (int i = Bank.getBankItems().length - 1; i >= 0; i--) {
+ System.out.println("ID: " + Bank.getBankItems()[i].getId()
+ + " Stack: " + Bank.getBankItems()[i].getStackSize()
+ + " Slot: " + Bank.getBankItems()[i].getSlot());
+ }
+ }
+
+}
diff --git a/src/org/rev317/min/debug/DInventory.java b/src/org/rev317/min/debug/DInventory.java
new file mode 100644
index 0000000..f08df94
--- /dev/null
+++ b/src/org/rev317/min/debug/DInventory.java
@@ -0,0 +1,28 @@
+package org.rev317.min.debug;
+
+import java.awt.Graphics;
+
+import org.parabot.core.paint.AbstractDebugger;
+import org.rev317.min.api.methods.Inventory;
+import org.rev317.min.api.wrappers.Item;
+
+public class DInventory extends AbstractDebugger {
+
+ @Override
+ public void paint(Graphics g) {
+
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return false;
+ }
+
+ @Override
+ public void toggle() {
+ for(Item i : Inventory.getItems()) {
+ System.out.println("ID: " + i.getId() + " Stack: " + i.getStackSize() + " Slot: " + i.getSlot());
+ }
+ }
+
+}
diff --git a/src/org/rev317/min/debug/DSceneObjects.java b/src/org/rev317/min/debug/DSceneObjects.java
index 5dc39cb..b35fd5f 100644
--- a/src/org/rev317/min/debug/DSceneObjects.java
+++ b/src/org/rev317/min/debug/DSceneObjects.java
@@ -10,7 +10,6 @@ public class DSceneObjects extends AbstractDebugger {
@Override
public void paint(Graphics g) {
-
}
@Override
@@ -21,8 +20,15 @@ public class DSceneObjects extends AbstractDebugger {
@Override
public void toggle() {
SceneObject[] objects = SceneObjects.getNearest();
- for(SceneObject object : objects) {
- System.out.println("ID: " + object.getId() + " UID: " + object.getHash() + " Location: " + object.getLocation() + " Distance: " + object.distanceTo());
+ if(objects == null || objects.length == 0)
+ return;
+
+ for (int i = objects.length - 1; i >= 0; i--) {
+ System.out.println(
+ " ID: " + objects[i].getId() +
+ " UID: " + objects[i].getHash() +
+ " Location: "+ objects[i].getLocation() +
+ " Distance: "+ objects[i].distanceTo());
}
}
diff --git a/src/org/rev317/min/ui/BotMenu.java b/src/org/rev317/min/ui/BotMenu.java
index be7d929..bdf75a6 100644
--- a/src/org/rev317/min/ui/BotMenu.java
+++ b/src/org/rev317/min/ui/BotMenu.java
@@ -20,6 +20,8 @@ public class BotMenu implements ActionListener {
JMenu debug = new JMenu("Debug");
+ JMenuItem inventory = newItem("Inventory");
+ JMenuItem bank = newItem("Bank");
JMenuItem map = newItem("Map");
JMenuItem animation = newItem("Animation");
JMenuItem objects = newItem("Objects");
@@ -31,6 +33,8 @@ public class BotMenu implements ActionListener {
debugger.addDebugger("Actions", new DActions());
debugger.addDebugger("Animation", new DAnimation());
+ debugger.addDebugger("Inventory", new DInventory());
+ debugger.addDebugger("Bank", new DBank());
debugger.addDebugger("Map", new DMap());
debugger.addDebugger("Objects", new DSceneObjects());
debugger.addDebugger("Npcs", new DNpcs());
@@ -46,6 +50,8 @@ public class BotMenu implements ActionListener {
debug.add(items);
debug.add(interfaces);
debug.add(flags);
+ debug.add(inventory);
+ debug.add(bank);
bar.add(debug);
}
@@ -62,4 +68,3 @@ public class BotMenu implements ActionListener {
}
}
-