diff --git a/src/main/java/org/rev317/min/debug/DBank.java b/src/main/java/org/rev317/min/debug/DBank.java index 234c17c..ae58a82 100644 --- a/src/main/java/org/rev317/min/debug/DBank.java +++ b/src/main/java/org/rev317/min/debug/DBank.java @@ -1,6 +1,7 @@ package org.rev317.min.debug; import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.ui.Logger; import org.rev317.min.api.methods.Bank; import org.rev317.min.api.wrappers.Item; @@ -8,28 +9,38 @@ import java.awt.*; public class DBank extends AbstractDebugger { + private boolean enabled; + @Override public void paint(Graphics g) { + if (!Bank.isOpen()) { + return; + } } @Override public boolean isEnabled() { - return false; + return enabled; } @Override public void toggle() { - if (!Bank.isOpen()) { - return; - } + enabled = !enabled; - 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()); + if (enabled) { + if (!Bank.isOpen()) { + Logger.addMessage("The bank is not open, cannot debug."); + return; + } + + 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/main/java/org/rev317/min/debug/DGroundItems.java b/src/main/java/org/rev317/min/debug/DGroundItems.java index aad7ee2..04a3c94 100644 --- a/src/main/java/org/rev317/min/debug/DGroundItems.java +++ b/src/main/java/org/rev317/min/debug/DGroundItems.java @@ -1,31 +1,43 @@ package org.rev317.min.debug; +import org.parabot.core.Context; import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.paint.PaintDebugger; +import org.parabot.core.ui.Logger; import org.rev317.min.api.methods.GroundItems; +import org.rev317.min.api.methods.Interfaces; import org.rev317.min.api.wrappers.GroundItem; import java.awt.*; public class DGroundItems extends AbstractDebugger { + private boolean enabled; + @Override public void paint(Graphics g) { - + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Close Ground Items: " + GroundItems.getGroundItems().length); } @Override public boolean isEnabled() { - return false; + return enabled; } @Override public void toggle() { - GroundItem[] items = GroundItems.getNearest(); - if (items == null || items.length == 0) { - return; - } - for (GroundItem item : items) { - System.out.println("ID: " + item.getId() + " Location: " + item.getLocation()); + enabled = !enabled; + + if (enabled) { + GroundItem[] items = GroundItems.getNearest(); + if (items == null || items.length == 0) { + Logger.addMessage("There are no Ground Items close to you."); + return; + } + for (GroundItem item : items) { + System.out.println("ID: " + item.getId() + " Location: " + item.getLocation()); + } } } } diff --git a/src/main/java/org/rev317/min/debug/DNpcs.java b/src/main/java/org/rev317/min/debug/DNpcs.java index cd6a6ea..26e984c 100644 --- a/src/main/java/org/rev317/min/debug/DNpcs.java +++ b/src/main/java/org/rev317/min/debug/DNpcs.java @@ -1,27 +1,41 @@ package org.rev317.min.debug; +import org.parabot.core.Context; import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.paint.PaintDebugger; +import org.parabot.core.ui.Logger; import org.rev317.min.api.methods.Npcs; +import org.rev317.min.api.methods.Players; import org.rev317.min.api.wrappers.Npc; import java.awt.*; public class DNpcs extends AbstractDebugger { + private boolean enabled; + @Override public void paint(Graphics g) { - + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Close NPCs: " + Npcs.getNearest().length); } @Override public boolean isEnabled() { - return false; + return enabled; } @Override public void toggle() { - for (Npc n : Npcs.getNearest()) { - System.out.println("ID: " + n.getDef().getId() + " Distance: " + n.distanceTo() + " Location: " + n.getLocation().toString()); + enabled = !enabled; + if (enabled) { + if (Npcs.getNearest().length == 0) { + Logger.addMessage("There are no NPCs close to you."); + return; + } + for (Npc n : Npcs.getNearest()) { + System.out.println("ID: " + n.getDef().getId() + " Distance: " + n.distanceTo() + " Location: " + n.getLocation().toString()); + } } } } diff --git a/src/main/java/org/rev317/min/debug/DPlayers.java b/src/main/java/org/rev317/min/debug/DPlayers.java index 859416a..d523768 100644 --- a/src/main/java/org/rev317/min/debug/DPlayers.java +++ b/src/main/java/org/rev317/min/debug/DPlayers.java @@ -1,6 +1,10 @@ package org.rev317.min.debug; +import org.parabot.core.Context; import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.paint.PaintDebugger; +import org.parabot.core.ui.Logger; +import org.rev317.min.api.methods.GroundItems; import org.rev317.min.api.methods.Players; import org.rev317.min.api.wrappers.Player; @@ -10,19 +14,31 @@ import java.awt.*; * @author JKetelaar */ public class DPlayers extends AbstractDebugger { + + private boolean enabled = false; + @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()); + enabled = !enabled; + if (enabled) { + if (Players.getNearest().length == 0) { + Logger.addMessage("There are no Players close to you."); + return; + } + 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; + return enabled; } @Override public void paint(Graphics graphics) { + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Close Players: " + Players.getNearest().length); } } diff --git a/src/main/java/org/rev317/min/debug/DSceneObjects.java b/src/main/java/org/rev317/min/debug/DSceneObjects.java index eab9421..ce8d250 100644 --- a/src/main/java/org/rev317/min/debug/DSceneObjects.java +++ b/src/main/java/org/rev317/min/debug/DSceneObjects.java @@ -1,35 +1,56 @@ package org.rev317.min.debug; +import org.parabot.core.Context; import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.paint.PaintDebugger; +import org.parabot.core.ui.Logger; +import org.rev317.min.api.methods.GroundItems; import org.rev317.min.api.methods.SceneObjects; import org.rev317.min.api.wrappers.SceneObject; import java.awt.*; +import java.util.Comparator; public class DSceneObjects extends AbstractDebugger { + private boolean enabled; + + public static final Comparator SCENE_OBJECT_COMPARATOR_DISTANCE = new Comparator() { + @Override + public int compare(SceneObject o1, SceneObject o2) { + return o1.distanceTo() > o2.distanceTo() ? 1 : o1.distanceTo() == o2.distanceTo() ? 0 : -1; + } + }; + @Override public void paint(Graphics g) { + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Close SceneObjects: " + SceneObjects.getNearest().length); } @Override public boolean isEnabled() { - return false; + return enabled; } @Override public void toggle() { - SceneObject[] objects = SceneObjects.getNearest(); - if (objects == null || objects.length == 0) { - return; - } + enabled = !enabled; - 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()); + if (enabled) { + SceneObject[] objects = SceneObjects.getNearest(); + if (objects == null || objects.length == 0) { + Logger.addMessage("There are no GameObjects around you."); + 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/main/java/org/rev317/min/debug/DSceneObjectsGroundDec.java b/src/main/java/org/rev317/min/debug/DSceneObjectsGroundDec.java new file mode 100644 index 0000000..a728bc7 --- /dev/null +++ b/src/main/java/org/rev317/min/debug/DSceneObjectsGroundDec.java @@ -0,0 +1,62 @@ +package org.rev317.min.debug; + +import org.parabot.core.Context; +import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.paint.PaintDebugger; +import org.parabot.core.ui.Logger; +import org.parabot.environment.api.utils.Filter; +import org.rev317.min.api.methods.SceneObjects; +import org.rev317.min.api.wrappers.SceneObject; + +import java.awt.*; +import java.util.Arrays; +import java.util.Collections; + +public class DSceneObjectsGroundDec extends AbstractDebugger { + + private boolean enabled; + + @Override + public void paint(Graphics g) { + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Ground decorations: " + getGroundDecorations().length); + } + + @Override + public boolean isEnabled() { + return enabled; + } + + @Override + public void toggle() { + enabled = !enabled; + + if (enabled) { + SceneObject[] objects = getGroundDecorations(); + if (objects == null || objects.length == 0) { + Logger.addMessage("There are no GameObjects around you."); + return; + } + java.util.List objs = Arrays.asList(objects); + Collections.sort(objs, DSceneObjects.SCENE_OBJECT_COMPARATOR_DISTANCE); + objects = objs.toArray(new SceneObject[0]); + + 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()); + } + } + } + + private SceneObject[] getGroundDecorations() { + return SceneObjects.getNearest(new Filter() { + @Override + public boolean accept(SceneObject sceneObject) { + return sceneObject.getType() == SceneObject.TYPE_GROUNDDECORATION; + } + }); + } +} diff --git a/src/main/java/org/rev317/min/debug/DSceneObjectsGroundItems.java b/src/main/java/org/rev317/min/debug/DSceneObjectsGroundItems.java new file mode 100644 index 0000000..47c38c7 --- /dev/null +++ b/src/main/java/org/rev317/min/debug/DSceneObjectsGroundItems.java @@ -0,0 +1,62 @@ +package org.rev317.min.debug; + +import org.parabot.core.Context; +import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.paint.PaintDebugger; +import org.parabot.core.ui.Logger; +import org.parabot.environment.api.utils.Filter; +import org.rev317.min.api.methods.SceneObjects; +import org.rev317.min.api.wrappers.SceneObject; + +import java.awt.*; +import java.util.Arrays; +import java.util.Collections; + +public class DSceneObjectsGroundItems extends AbstractDebugger { + + private boolean enabled; + + @Override + public void paint(Graphics g) { + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Ground Items: " + getGroundItems().length); + } + + @Override + public boolean isEnabled() { + return enabled; + } + + @Override + public void toggle() { + enabled = !enabled; + + if (enabled) { + SceneObject[] objects = getGroundItems(); + if (objects == null || objects.length == 0) { + Logger.addMessage("There are no GameObjects around you."); + return; + } + java.util.List objs = Arrays.asList(objects); + Collections.sort(objs, DSceneObjects.SCENE_OBJECT_COMPARATOR_DISTANCE); + objects = objs.toArray(new SceneObject[0]); + + 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()); + } + } + } + + private SceneObject[] getGroundItems() { + return SceneObjects.getSceneObjects(new Filter() { + @Override + public boolean accept(SceneObject sceneObject) { + return sceneObject.getType() == SceneObject.TYPE_GROUNDITEM; + } + }); + } +} diff --git a/src/main/java/org/rev317/min/debug/DSceneObjectsInteractiveObj.java b/src/main/java/org/rev317/min/debug/DSceneObjectsInteractiveObj.java new file mode 100644 index 0000000..7c36990 --- /dev/null +++ b/src/main/java/org/rev317/min/debug/DSceneObjectsInteractiveObj.java @@ -0,0 +1,63 @@ +package org.rev317.min.debug; + +import org.parabot.core.Context; +import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.paint.PaintDebugger; +import org.parabot.core.ui.Logger; +import org.parabot.environment.api.utils.Filter; +import org.rev317.min.api.methods.SceneObjects; +import org.rev317.min.api.wrappers.SceneObject; + +import java.awt.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; + +public class DSceneObjectsInteractiveObj extends AbstractDebugger { + + private boolean enabled; + + @Override + public void paint(Graphics g) { + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Interactive Objects: " + getInteractiveObjects().length); + } + + @Override + public boolean isEnabled() { + return enabled; + } + + @Override + public void toggle() { + enabled = !enabled; + + if (enabled) { + SceneObject[] objects = getInteractiveObjects(); + if (objects == null || objects.length == 0) { + Logger.addMessage("There are no GameObjects around you."); + return; + } + java.util.List objs = Arrays.asList(objects); + Collections.sort(objs, DSceneObjects.SCENE_OBJECT_COMPARATOR_DISTANCE); + objects = objs.toArray(new SceneObject[0]); + + 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()); + } + } + } + + private SceneObject[] getInteractiveObjects() { + return SceneObjects.getSceneObjects(new Filter() { + @Override + public boolean accept(SceneObject sceneObject) { + return sceneObject.getType() == SceneObject.TYPE_INTERACTIVE; + } + }); + } +} diff --git a/src/main/java/org/rev317/min/debug/DSceneObjectsWallDec.java b/src/main/java/org/rev317/min/debug/DSceneObjectsWallDec.java new file mode 100644 index 0000000..a759c9b --- /dev/null +++ b/src/main/java/org/rev317/min/debug/DSceneObjectsWallDec.java @@ -0,0 +1,62 @@ +package org.rev317.min.debug; + +import org.parabot.core.Context; +import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.paint.PaintDebugger; +import org.parabot.core.ui.Logger; +import org.parabot.environment.api.utils.Filter; +import org.rev317.min.api.methods.SceneObjects; +import org.rev317.min.api.wrappers.SceneObject; + +import java.awt.*; +import java.util.Arrays; +import java.util.Collections; + +public class DSceneObjectsWallDec extends AbstractDebugger { + + private boolean enabled; + + @Override + public void paint(Graphics g) { + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Wall decorations: " + getWallDecorations().length); + } + + @Override + public boolean isEnabled() { + return enabled; + } + + @Override + public void toggle() { + enabled = !enabled; + + if (enabled) { + SceneObject[] objects = getWallDecorations(); + if (objects == null || objects.length == 0) { + Logger.addMessage("There are no GameObjects around you."); + return; + } + java.util.List objs = Arrays.asList(objects); + Collections.sort(objs, DSceneObjects.SCENE_OBJECT_COMPARATOR_DISTANCE); + objects = objs.toArray(new SceneObject[0]); + + 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()); + } + } + } + + private SceneObject[] getWallDecorations() { + return SceneObjects.getNearest(new Filter() { + @Override + public boolean accept(SceneObject sceneObject) { + return sceneObject.getType() == SceneObject.TYPE_WALLDECORATION; + } + }); + } +} diff --git a/src/main/java/org/rev317/min/debug/DSceneObjectsWallObj.java b/src/main/java/org/rev317/min/debug/DSceneObjectsWallObj.java new file mode 100644 index 0000000..2c9d6c8 --- /dev/null +++ b/src/main/java/org/rev317/min/debug/DSceneObjectsWallObj.java @@ -0,0 +1,62 @@ +package org.rev317.min.debug; + +import org.parabot.core.Context; +import org.parabot.core.paint.AbstractDebugger; +import org.parabot.core.paint.PaintDebugger; +import org.parabot.core.ui.Logger; +import org.parabot.environment.api.utils.Filter; +import org.rev317.min.api.methods.SceneObjects; +import org.rev317.min.api.wrappers.SceneObject; + +import java.awt.*; +import java.util.Arrays; +import java.util.Collections; + +public class DSceneObjectsWallObj extends AbstractDebugger { + + private boolean enabled; + + @Override + public void paint(Graphics g) { + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Wall objects: " + getWallObjects().length); + } + + @Override + public boolean isEnabled() { + return enabled; + } + + @Override + public void toggle() { + enabled = !enabled; + + if (enabled) { + SceneObject[] objects = getWallObjects(); + if (objects == null || objects.length == 0) { + Logger.addMessage("There are no GameObjects around you."); + return; + } + java.util.List objs = Arrays.asList(objects); + Collections.sort(objs, DSceneObjects.SCENE_OBJECT_COMPARATOR_DISTANCE); + objects = objs.toArray(new SceneObject[0]); + + 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()); + } + } + } + + private SceneObject[] getWallObjects() { + return SceneObjects.getNearest(new Filter() { + @Override + public boolean accept(SceneObject sceneObject) { + return sceneObject.getType() == SceneObject.TYPE_WALL; + } + }); + } +} diff --git a/src/main/java/org/rev317/min/debug/DSkills.java b/src/main/java/org/rev317/min/debug/DSkills.java index 288efe3..2c7092f 100644 --- a/src/main/java/org/rev317/min/debug/DSkills.java +++ b/src/main/java/org/rev317/min/debug/DSkills.java @@ -7,16 +7,21 @@ import java.awt.*; public class DSkills extends AbstractDebugger { + private boolean enabled; + @Override public void toggle() { - for (Skill skill : Skill.values()){ - System.out.println(String.format("%s level: %d / %d", skill.getName(), skill.getLevel(), skill.getRealLevel())); + enabled = !enabled; + if (enabled) { + for (Skill skill : Skill.values()) { + System.out.println(String.format("%s level: %d / %d (exp: %s)", skill.getName(), skill.getLevel(), skill.getRealLevel(), skill.getExperience())); + } } } @Override public boolean isEnabled() { - return false; + return enabled; } @Override diff --git a/src/main/java/org/rev317/min/ui/BotMenu.java b/src/main/java/org/rev317/min/ui/BotMenu.java index eeb3926..dbca338 100644 --- a/src/main/java/org/rev317/min/ui/BotMenu.java +++ b/src/main/java/org/rev317/min/ui/BotMenu.java @@ -32,7 +32,13 @@ public class BotMenu implements ActionListener { JMenuItem messages = newItem("Messages"); JMenuItem mouse = newItem("Mouse"); JMenuItem npcs = newItem("Npcs"); - JMenuItem objects = newItem("Objects"); + JMenu objects = new JMenu("Objects"); + JMenuItem enableAllObject = newItem("Enable All Objects"); + JMenuItem groundDecorations = newItem("Ground Decorations"); + JMenuItem interactiveObjects = newItem("Interactive Objects"); + JMenuItem wallObjects = newItem("Wall Objects"); + JMenuItem wallDecorations = newItem("Wall Decorations"); + JMenuItem groundItems = newItem("Ground Items"); JMenuItem players = newItem("Players"); JMenuItem skills = newItem("Skills"); @@ -47,7 +53,12 @@ public class BotMenu implements ActionListener { debugger.addDebugger("Messages", new DMessages()); debugger.addDebugger("Mouse", new DMouse()); debugger.addDebugger("Npcs", new DNpcs()); - debugger.addDebugger("Objects", new DSceneObjects()); + debugger.addDebugger("Enable All Objects", new DSceneObjects()); + debugger.addDebugger("Ground Decorations", new DSceneObjectsGroundDec()); + debugger.addDebugger("Interactive Objects", new DSceneObjectsInteractiveObj()); + debugger.addDebugger("Wall Objects", new DSceneObjectsWallObj()); + debugger.addDebugger("Wall Decorations", new DSceneObjectsWallDec()); + debugger.addDebugger("Ground Items", new DSceneObjectsGroundItems()); debugger.addDebugger("Players", new DPlayers()); debugger.addDebugger("Skills", new DSkills()); @@ -64,6 +75,13 @@ public class BotMenu implements ActionListener { debug.add(mouse); debug.add(npcs); debug.add(objects); + objects.add(enableAllObject); + objects.addSeparator(); + objects.add(groundDecorations); + objects.add(groundItems); + objects.add(wallDecorations); + objects.add(wallObjects); + objects.add(interactiveObjects); debug.add(players); debug.add(skills);