From d0822df743fc923639686a45fdefd22f892a67c2 Mon Sep 17 00:00:00 2001 From: Shadowrs Date: Mon, 3 Sep 2018 03:31:22 +0100 Subject: [PATCH 1/3] Add missing 'enabled' state to various AbstractDebuggers + only send debug info if when enabled --- src/main/java/org/rev317/min/debug/DBank.java | 31 +++++++++----- .../org/rev317/min/debug/DGroundItems.java | 34 +++++++++++---- src/main/java/org/rev317/min/debug/DNpcs.java | 28 +++++++++++-- .../java/org/rev317/min/debug/DPlayers.java | 28 +++++++++++-- .../org/rev317/min/debug/DSceneObjects.java | 41 ++++++++++++++----- .../java/org/rev317/min/debug/DSkills.java | 11 +++-- 6 files changed, 134 insertions(+), 39 deletions(-) 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..a3970f0 100644 --- a/src/main/java/org/rev317/min/debug/DGroundItems.java +++ b/src/main/java/org/rev317/min/debug/DGroundItems.java @@ -1,31 +1,49 @@ 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; + private long lastCheck = System.currentTimeMillis(); + private int cached; + @Override public void paint(Graphics g) { - + if (System.currentTimeMillis() - lastCheck > 1000L) { + lastCheck = System.currentTimeMillis(); + cached = GroundItems.getGroundItems().length; + } + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Close Ground Items: " + cached); } @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..e6855a1 100644 --- a/src/main/java/org/rev317/min/debug/DNpcs.java +++ b/src/main/java/org/rev317/min/debug/DNpcs.java @@ -1,27 +1,47 @@ 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; + private long lastCheck = System.currentTimeMillis(); + private int cached; + @Override public void paint(Graphics g) { - + if (System.currentTimeMillis() - lastCheck > 1000L) { + lastCheck = System.currentTimeMillis(); + cached = Npcs.getNearest().length; + } + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Close NPCs: " + cached); } @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..56aa38f 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,37 @@ import java.awt.*; * @author JKetelaar */ public class DPlayers extends AbstractDebugger { + + private boolean enabled = false; + private long lastCheck = System.currentTimeMillis(); + private int cachedClosePlayerCount; + @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) { + if (System.currentTimeMillis() - lastCheck > 1000L) { + lastCheck = System.currentTimeMillis(); + cachedClosePlayerCount = Players.getNearest().length; + } + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Close Players: " + cachedClosePlayerCount); } } diff --git a/src/main/java/org/rev317/min/debug/DSceneObjects.java b/src/main/java/org/rev317/min/debug/DSceneObjects.java index eab9421..385aa94 100644 --- a/src/main/java/org/rev317/min/debug/DSceneObjects.java +++ b/src/main/java/org/rev317/min/debug/DSceneObjects.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.SceneObjects; import org.rev317.min.api.wrappers.SceneObject; @@ -8,28 +12,43 @@ import java.awt.*; public class DSceneObjects extends AbstractDebugger { + private boolean enabled; + private long lastCheck = System.currentTimeMillis(); + private int cached; + @Override public void paint(Graphics g) { + if (System.currentTimeMillis() - lastCheck > 1000L) { + lastCheck = System.currentTimeMillis(); + cached = SceneObjects.getNearest().length; + } + PaintDebugger p = Context.getInstance().getPaintDebugger(); + p.addLine("Close SceneObjects: " + cached); } @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/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 From b2ceeed73ed02bba2751946577fe0b4304ede3b2 Mon Sep 17 00:00:00 2001 From: Shadowrs Date: Wed, 5 Sep 2018 10:47:17 +0100 Subject: [PATCH 2/3] Remove unneeded value caching --- src/main/java/org/rev317/min/debug/DGroundItems.java | 8 +------- src/main/java/org/rev317/min/debug/DNpcs.java | 8 +------- src/main/java/org/rev317/min/debug/DPlayers.java | 8 +------- src/main/java/org/rev317/min/debug/DSceneObjects.java | 8 +------- 4 files changed, 4 insertions(+), 28 deletions(-) diff --git a/src/main/java/org/rev317/min/debug/DGroundItems.java b/src/main/java/org/rev317/min/debug/DGroundItems.java index a3970f0..04a3c94 100644 --- a/src/main/java/org/rev317/min/debug/DGroundItems.java +++ b/src/main/java/org/rev317/min/debug/DGroundItems.java @@ -13,17 +13,11 @@ import java.awt.*; public class DGroundItems extends AbstractDebugger { private boolean enabled; - private long lastCheck = System.currentTimeMillis(); - private int cached; @Override public void paint(Graphics g) { - if (System.currentTimeMillis() - lastCheck > 1000L) { - lastCheck = System.currentTimeMillis(); - cached = GroundItems.getGroundItems().length; - } PaintDebugger p = Context.getInstance().getPaintDebugger(); - p.addLine("Close Ground Items: " + cached); + p.addLine("Close Ground Items: " + GroundItems.getGroundItems().length); } @Override diff --git a/src/main/java/org/rev317/min/debug/DNpcs.java b/src/main/java/org/rev317/min/debug/DNpcs.java index e6855a1..26e984c 100644 --- a/src/main/java/org/rev317/min/debug/DNpcs.java +++ b/src/main/java/org/rev317/min/debug/DNpcs.java @@ -13,17 +13,11 @@ import java.awt.*; public class DNpcs extends AbstractDebugger { private boolean enabled; - private long lastCheck = System.currentTimeMillis(); - private int cached; @Override public void paint(Graphics g) { - if (System.currentTimeMillis() - lastCheck > 1000L) { - lastCheck = System.currentTimeMillis(); - cached = Npcs.getNearest().length; - } PaintDebugger p = Context.getInstance().getPaintDebugger(); - p.addLine("Close NPCs: " + cached); + p.addLine("Close NPCs: " + Npcs.getNearest().length); } @Override diff --git a/src/main/java/org/rev317/min/debug/DPlayers.java b/src/main/java/org/rev317/min/debug/DPlayers.java index 56aa38f..d523768 100644 --- a/src/main/java/org/rev317/min/debug/DPlayers.java +++ b/src/main/java/org/rev317/min/debug/DPlayers.java @@ -16,8 +16,6 @@ import java.awt.*; public class DPlayers extends AbstractDebugger { private boolean enabled = false; - private long lastCheck = System.currentTimeMillis(); - private int cachedClosePlayerCount; @Override public void toggle() { @@ -40,11 +38,7 @@ public class DPlayers extends AbstractDebugger { @Override public void paint(Graphics graphics) { - if (System.currentTimeMillis() - lastCheck > 1000L) { - lastCheck = System.currentTimeMillis(); - cachedClosePlayerCount = Players.getNearest().length; - } PaintDebugger p = Context.getInstance().getPaintDebugger(); - p.addLine("Close Players: " + cachedClosePlayerCount); + 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 385aa94..5255f4c 100644 --- a/src/main/java/org/rev317/min/debug/DSceneObjects.java +++ b/src/main/java/org/rev317/min/debug/DSceneObjects.java @@ -13,17 +13,11 @@ import java.awt.*; public class DSceneObjects extends AbstractDebugger { private boolean enabled; - private long lastCheck = System.currentTimeMillis(); - private int cached; @Override public void paint(Graphics g) { - if (System.currentTimeMillis() - lastCheck > 1000L) { - lastCheck = System.currentTimeMillis(); - cached = SceneObjects.getNearest().length; - } PaintDebugger p = Context.getInstance().getPaintDebugger(); - p.addLine("Close SceneObjects: " + cached); + p.addLine("Close SceneObjects: " + SceneObjects.getNearest().length); } @Override From 515b36ed563dd14801a1f960244d538dfe2c9891 Mon Sep 17 00:00:00 2001 From: Shadowrs Date: Fri, 7 Sep 2018 13:21:46 +0100 Subject: [PATCH 3/3] Split objects debug up into all & each of the 5 types --- .../org/rev317/min/debug/DSceneObjects.java | 8 +++ .../min/debug/DSceneObjectsGroundDec.java | 62 ++++++++++++++++++ .../min/debug/DSceneObjectsGroundItems.java | 62 ++++++++++++++++++ .../debug/DSceneObjectsInteractiveObj.java | 63 +++++++++++++++++++ .../min/debug/DSceneObjectsWallDec.java | 62 ++++++++++++++++++ .../min/debug/DSceneObjectsWallObj.java | 62 ++++++++++++++++++ src/main/java/org/rev317/min/ui/BotMenu.java | 22 ++++++- 7 files changed, 339 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/rev317/min/debug/DSceneObjectsGroundDec.java create mode 100644 src/main/java/org/rev317/min/debug/DSceneObjectsGroundItems.java create mode 100644 src/main/java/org/rev317/min/debug/DSceneObjectsInteractiveObj.java create mode 100644 src/main/java/org/rev317/min/debug/DSceneObjectsWallDec.java create mode 100644 src/main/java/org/rev317/min/debug/DSceneObjectsWallObj.java diff --git a/src/main/java/org/rev317/min/debug/DSceneObjects.java b/src/main/java/org/rev317/min/debug/DSceneObjects.java index 5255f4c..ce8d250 100644 --- a/src/main/java/org/rev317/min/debug/DSceneObjects.java +++ b/src/main/java/org/rev317/min/debug/DSceneObjects.java @@ -9,11 +9,19 @@ 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(); 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/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);