diff --git a/src/org/rev317/min/Loader.java b/src/org/rev317/min/Loader.java index 4bc19b0..ace2c7e 100644 --- a/src/org/rev317/min/Loader.java +++ b/src/org/rev317/min/Loader.java @@ -99,6 +99,5 @@ public class Loader extends ServerProvider { @Override public void init() { - } } \ No newline at end of file diff --git a/src/org/rev317/min/accessors/Client.java b/src/org/rev317/min/accessors/Client.java index d9bb672..415fd81 100644 --- a/src/org/rev317/min/accessors/Client.java +++ b/src/org/rev317/min/accessors/Client.java @@ -47,6 +47,8 @@ public interface Client { public void doAction(int i); + public void dropClient(); + public int[] getCurrentStats(); public int[] getSettings(); diff --git a/src/org/rev317/min/api/methods/Game.java b/src/org/rev317/min/api/methods/Game.java index 740831e..648c1b4 100644 --- a/src/org/rev317/min/api/methods/Game.java +++ b/src/org/rev317/min/api/methods/Game.java @@ -1,5 +1,7 @@ package org.rev317.min.api.methods; +import org.parabot.environment.api.utils.Time; +import org.parabot.environment.scripts.framework.SleepCondition; import org.rev317.min.Loader; /** @@ -113,4 +115,19 @@ public class Game { return Loader.getClient().isLoggedIn(); } + /** + * Drops the client and returns if the game is logged out or not + * @return True if game is logged out, false if not + */ + public static boolean dropClient(){ + Loader.getClient().dropClient(); + Time.sleep(new SleepCondition() { + @Override + public boolean isValid() { + return isLoggedIn(); + } + }, 2500); + return !isLoggedIn(); + } + } diff --git a/src/org/rev317/min/api/methods/Interfaces.java b/src/org/rev317/min/api/methods/Interfaces.java new file mode 100644 index 0000000..2ba3317 --- /dev/null +++ b/src/org/rev317/min/api/methods/Interfaces.java @@ -0,0 +1,20 @@ +package org.rev317.min.api.methods; + +import org.parabot.environment.api.utils.Time; + +/** + * @author JKetelaar, Empathy + */ +public class Interfaces { + + private static final int optionAction = 2494; + + /** + * Clicks an option from the given back dialog + * @param index Index of the requested option whereas you start at 0 + */ + private static void clickOption(int index) { + Menu.sendAction(315, 0, 0, optionAction + index, 0); + Time.sleep(1500); + } +} diff --git a/src/org/rev317/min/debug/DBank.java b/src/org/rev317/min/debug/DBank.java index 87c1983..c08991f 100644 --- a/src/org/rev317/min/debug/DBank.java +++ b/src/org/rev317/min/debug/DBank.java @@ -2,6 +2,7 @@ package org.rev317.min.debug; import org.parabot.core.paint.AbstractDebugger; import org.rev317.min.api.methods.Bank; +import org.rev317.min.api.wrappers.Item; import java.awt.*; @@ -19,13 +20,16 @@ public class DBank extends AbstractDebugger { @Override public void toggle() { - if (!Bank.isOpen()) + 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()); + } + Item[] items; + if ((items = Bank.getBankItems()) != null) { + for (int i = items.length - 1; i >= 0; i--) { + System.out.println("ID: " + items[i].getId() + + " Stack: " + items[i].getStackSize() + + " Slot: " + items[i].getSlot()); + } } } diff --git a/src/org/rev317/min/debug/DInventory.java b/src/org/rev317/min/debug/DInventory.java index ff9867e..613a6e7 100644 --- a/src/org/rev317/min/debug/DInventory.java +++ b/src/org/rev317/min/debug/DInventory.java @@ -8,21 +8,45 @@ import java.awt.*; public class DInventory extends AbstractDebugger { + private final int startX = 560, startY = 225, xMultiplier = 42, yMultiplier = 38; + private boolean enabled; + @Override public void paint(Graphics g) { + int slot = 0; + for (int i = 0; i < 28; i++) { + int item; + if ((item = getSlotItemID(i)) > 0) { + if (i % 4 == 0 && i != 0) { + slot++; + } + int x = startX + (xMultiplier * ((i % 4))); + int y = startY + (yMultiplier * slot); + g.drawString("" + item, x, y); + } + } } @Override public boolean isEnabled() { - return false; + return enabled; } @Override public void toggle() { + enabled = !enabled; for (Item i : Inventory.getItems()) { System.out.println("ID: " + i.getId() + " Stack: " + i.getStackSize() + " Slot: " + i.getSlot()); } } + public int getSlotItemID(int slot){ + for (Item item : Inventory.getItems()){ + if (item.getSlot() == slot){ + return item.getId(); + } + } + return 0; + } } diff --git a/src/org/rev317/min/debug/DMessages.java b/src/org/rev317/min/debug/DMessages.java new file mode 100644 index 0000000..5fcecef --- /dev/null +++ b/src/org/rev317/min/debug/DMessages.java @@ -0,0 +1,52 @@ +package org.rev317.min.debug; + +import org.parabot.core.Context; +import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.paint.PaintDebugger; +import org.rev317.min.api.events.MessageEvent; +import org.rev317.min.api.events.listeners.MessageListener; +import org.rev317.min.script.ScriptEngine; + +import java.awt.*; + +/** + * @author JKetelaar + */ +public class DMessages extends AbstractDebugger implements MessageListener { + private boolean enabled; + + private String message; + private String sender; + private int type; + + @Override + public void toggle() { + enabled = !enabled; + if (enabled){ + ScriptEngine.getInstance().addMessageListener(this); + }else{ + ScriptEngine.getInstance().removeMessageListener(this); + } + } + + @Override + public boolean isEnabled() { + return enabled; + } + + @Override + public void paint(Graphics graphics) { + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Message: " + message); + p.addLine("Sender: " + sender); + p.addLine("Type: " + type); + } + + @Override + public void messageReceived(MessageEvent event) { + message = event.getMessage(); + sender = event.getSender(); + type = event.getType(); + System.out.printf("\"%s\" from \"%s\" with type %d", message, sender, type); + } +} diff --git a/src/org/rev317/min/debug/DPlayers.java b/src/org/rev317/min/debug/DPlayers.java new file mode 100644 index 0000000..55810c3 --- /dev/null +++ b/src/org/rev317/min/debug/DPlayers.java @@ -0,0 +1,29 @@ +package org.rev317.min.debug; + +import org.parabot.core.paint.AbstractDebugger; +import org.rev317.min.api.methods.Players; +import org.rev317.min.api.wrappers.Player; + +import java.awt.*; + +/** + * @author JKetelaar + */ +public class DPlayers extends AbstractDebugger { + @Override + public void toggle() { + for (Player player : Players.getNearest()){ + System.out.println("Username" + player.getName() + " Index: " + player.getIndex() + " Distance: " + player.distanceTo() + " Location: " + player.getLocation().toString()); + } + } + + @Override + public boolean isEnabled() { + return false; + } + + @Override + public void paint(Graphics graphics) { + + } +} diff --git a/src/org/rev317/min/ui/BotMenu.java b/src/org/rev317/min/ui/BotMenu.java index 46f0ec9..a36c534 100644 --- a/src/org/rev317/min/ui/BotMenu.java +++ b/src/org/rev317/min/ui/BotMenu.java @@ -18,41 +18,47 @@ public class BotMenu implements ActionListener { JMenu debug = new JMenu("Debug"); - JMenuItem inventory = newItem("Inventory"); - JMenuItem bank = newItem("Bank"); - JMenuItem map = newItem("Map"); + JMenuItem actions = newItem("Actions"); JMenuItem animation = newItem("Animation"); - JMenuItem objects = newItem("Objects"); - JMenuItem npcs = newItem("Npcs"); + JMenuItem bank = newItem("Bank"); + JMenuItem flags = newItem("Collision flags"); JMenuItem items = newItem("GroundItems"); JMenuItem interfaces = newItem("Interfaces"); - JMenuItem flags = newItem("Collision flags"); - JMenuItem actions = newItem("Actions"); + JMenuItem inventory = newItem("Inventory"); + JMenuItem map = newItem("Map"); + JMenuItem messages = newItem("Messages"); JMenuItem mouse = newItem("Mouse"); + JMenuItem npcs = newItem("Npcs"); + JMenuItem objects = newItem("Objects"); + JMenuItem players = newItem("Players"); 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()); + debugger.addDebugger("Collision flags", new DCollisionFlags()); debugger.addDebugger("GroundItems", new DGroundItems()); debugger.addDebugger("Interfaces", new DInterfaces()); - debugger.addDebugger("Collision flags", new DCollisionFlags()); + debugger.addDebugger("Inventory", new DInventory()); + debugger.addDebugger("Map", new DMap()); + debugger.addDebugger("Messages", new DMessages()); debugger.addDebugger("Mouse", new DMouse()); + debugger.addDebugger("Npcs", new DNpcs()); + debugger.addDebugger("Objects", new DSceneObjects()); + debugger.addDebugger("Players", new DPlayers()); debug.add(actions); - debug.add(map); debug.add(animation); - debug.add(objects); - debug.add(npcs); + debug.add(bank); + debug.add(flags); debug.add(items); debug.add(interfaces); - debug.add(flags); debug.add(inventory); - debug.add(bank); + debug.add(map); + debug.add(messages); debug.add(mouse); + debug.add(npcs); + debug.add(objects); + debug.add(players); bar.add(debug); }