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 { } } -