Merge pull request #274 from Lucwousin/trav
Enable checkstyle in travis
This commit is contained in:
@@ -33,10 +33,6 @@ import io.sigpipe.jbsdiff.Patch;
|
||||
import javassist.ClassPool;
|
||||
import javassist.CtClass;
|
||||
import javassist.LoaderClassPath;
|
||||
import org.objectweb.asm.AnnotationVisitor;
|
||||
import org.objectweb.asm.ClassWriter;
|
||||
import org.objectweb.asm.FieldVisitor;
|
||||
import org.objectweb.asm.MethodVisitor;
|
||||
import org.objectweb.asm.Opcodes;
|
||||
import us.runelitepl.mixinprocessor.generators.AnnotationProcessor;
|
||||
import us.runelitepl.mixinprocessor.generators.PatchGenerator;
|
||||
@@ -50,14 +46,11 @@ import us.runelitepl.mixinprocessor.util.JavassistUtils;
|
||||
import us.runelitepl.mixinprocessor.util.RefUtils;
|
||||
import org.apache.maven.plugin.AbstractMojo;
|
||||
import org.apache.maven.plugin.MojoExecutionException;
|
||||
|
||||
import org.apache.maven.plugin.MojoFailureException;
|
||||
import org.apache.maven.plugins.annotations.LifecyclePhase;
|
||||
import org.apache.maven.plugins.annotations.Mojo;
|
||||
import org.apache.maven.plugins.annotations.Parameter;
|
||||
import org.apache.maven.plugins.annotations.ResolutionScope;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
@@ -111,9 +104,9 @@ public class MixinProcessorMojo
|
||||
|
||||
public static HashMap<String, MethodGarbageValue> methodGarbageValues = new HashMap<>();
|
||||
|
||||
public static HashMap<String, byte[]> gamepack = new HashMap<>();
|
||||
private static HashMap<String, byte[]> gamepack = new HashMap<>();
|
||||
|
||||
public static final int BUFFER_SIZE = 1024 * 1024 * 4;
|
||||
private static final int BUFFER_SIZE = 1024 * 1024 * 4;
|
||||
|
||||
public void execute()
|
||||
throws MojoExecutionException
|
||||
@@ -257,7 +250,7 @@ public class MixinProcessorMojo
|
||||
|
||||
}
|
||||
|
||||
public void stderr(String s, Object... format)
|
||||
private void stderr(String s, Object... format)
|
||||
{
|
||||
getLog().info(String.format(s, format));
|
||||
}
|
||||
@@ -267,7 +260,7 @@ public class MixinProcessorMojo
|
||||
INST.stderr(s, format);
|
||||
}
|
||||
|
||||
static void deleteDir(File file) throws IOException
|
||||
private static void deleteDir(File file) throws IOException
|
||||
{
|
||||
if (!file.exists())
|
||||
{
|
||||
|
||||
@@ -31,5 +31,5 @@ public enum InjectionType
|
||||
APPEND,
|
||||
OVERWRITE,
|
||||
PREPEND,
|
||||
PROVIDED;
|
||||
PROVIDED
|
||||
}
|
||||
|
||||
@@ -26,8 +26,6 @@
|
||||
package us.runelitepl.mixinprocessor.generators;
|
||||
|
||||
import us.runelitepl.mixinprocessor.transformers.AnnotationRemoverTransformer;
|
||||
import us.runelitepl.mixinprocessor.transformers.AsmMethodGarbageTransformer;
|
||||
import us.runelitepl.mixinprocessor.transformers.AsmMethodSignatureTransformer;
|
||||
import us.runelitepl.mixinprocessor.transformers.AsmNameTransformer;
|
||||
import us.runelitepl.mixinprocessor.transformers.AsmStaticUsageTransformer;
|
||||
import us.runelitepl.mixinprocessor.transformers.DoNothingTransformer;
|
||||
|
||||
@@ -25,18 +25,12 @@
|
||||
|
||||
package us.runelitepl.mixinprocessor.generators;
|
||||
|
||||
import javassist.CannotCompileException;
|
||||
import javassist.CtClass;
|
||||
import javassist.NotFoundException;
|
||||
import us.runelitepl.mixinprocessor.MixinProcessorMojo;
|
||||
import us.runelitepl.mixinprocessor.util.JavassistUtils;
|
||||
import us.runelitepl.mixinprocessor.util.RefUtils;
|
||||
import org.objectweb.asm.ClassReader;
|
||||
import org.objectweb.asm.tree.ClassNode;
|
||||
import org.objectweb.asm.tree.FieldNode;
|
||||
import org.objectweb.asm.tree.MethodNode;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@@ -45,11 +39,11 @@ import java.util.Set;
|
||||
public class StaticGenerator
|
||||
{
|
||||
|
||||
public static HashMap<String, ArrayList<MethodNode>> staticMethods = new HashMap<>();
|
||||
public static HashMap<String, ArrayList<FieldNode>> staticFields = new HashMap<>();
|
||||
public static Set<String> modifiedClasses = new HashSet<>();
|
||||
static HashMap<String, ArrayList<MethodNode>> staticMethods = new HashMap<>();
|
||||
static HashMap<String, ArrayList<FieldNode>> staticFields = new HashMap<>();
|
||||
static Set<String> modifiedClasses = new HashSet<>();
|
||||
|
||||
public void run(byte[] bytecode) throws NotFoundException, IOException, CannotCompileException
|
||||
public void run(byte[] bytecode)
|
||||
{
|
||||
ClassReader cr = new ClassReader(bytecode);
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@ import org.objectweb.asm.tree.AnnotationNode;
|
||||
import org.objectweb.asm.tree.FieldNode;
|
||||
import org.objectweb.asm.tree.MethodNode;
|
||||
import org.objectweb.asm.tree.TypeAnnotationNode;
|
||||
import us.runelitepl.mixinprocessor.MixinProcessorMojo;
|
||||
import us.runelitepl.mixinprocessor.parsers.MethodReflector;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -56,7 +56,7 @@ public class GamepackDownloader
|
||||
continue;
|
||||
}
|
||||
String key = entry.getName().replace(".class", "");
|
||||
int len = 0;
|
||||
int len;
|
||||
while ((len = zipInputStream.read(buffer)) > 0)
|
||||
{
|
||||
fileContent.write(buffer, 0, len);
|
||||
@@ -83,7 +83,7 @@ public class GamepackDownloader
|
||||
}
|
||||
}
|
||||
|
||||
public static String getGamepackUrl()
|
||||
private static String getGamepackUrl()
|
||||
{
|
||||
return codebase + initial_jar;
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ public class AnnotationRemoverTransformer extends AsmBaseTransformer
|
||||
return cw.toByteArray();
|
||||
}
|
||||
|
||||
public static String makeAnnotationDescriptor(String s)
|
||||
static String makeAnnotationDescriptor(String s)
|
||||
{
|
||||
return "Lus/runelitepl/mixinprocessor/annotations/" + s + ";";
|
||||
}
|
||||
|
||||
@@ -35,9 +35,10 @@ public abstract class AsmBaseTransformer implements Opcodes
|
||||
protected final ArrayList<String> validMethods = new ArrayList<>();
|
||||
protected final ArrayList<String> validFields = new ArrayList<>();
|
||||
|
||||
// CHECKSTYLE:OFF
|
||||
protected void buildMethodList(){}
|
||||
|
||||
protected void buildFieldList(){}
|
||||
// CHECKSTYLE:ON
|
||||
|
||||
public abstract byte[] transform();
|
||||
|
||||
|
||||
@@ -32,8 +32,6 @@ import org.objectweb.asm.MethodVisitor;
|
||||
import us.runelitepl.mixinprocessor.MethodGarbageValue;
|
||||
import us.runelitepl.mixinprocessor.MixinProcessorMojo;
|
||||
import us.runelitepl.mixinprocessor.util.RefUtils;
|
||||
|
||||
import java.sql.Ref;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class AsmMethodGarbageTransformer extends AsmBaseTransformer
|
||||
|
||||
@@ -32,11 +32,6 @@ import org.objectweb.asm.MethodVisitor;
|
||||
import us.runelitepl.mixinprocessor.MixinProcessorMojo;
|
||||
import us.runelitepl.mixinprocessor.util.RefUtils;
|
||||
|
||||
import static org.objectweb.asm.Opcodes.ASM6;
|
||||
import static org.objectweb.asm.Opcodes.GETSTATIC;
|
||||
import static org.objectweb.asm.Opcodes.INVOKESTATIC;
|
||||
import static org.objectweb.asm.Opcodes.PUTSTATIC;
|
||||
|
||||
public class AsmStaticUsageTransformer extends AsmBaseTransformer
|
||||
{
|
||||
|
||||
|
||||
@@ -47,10 +47,10 @@ public class DoNothingTransformer extends AsmBaseTransformer
|
||||
|
||||
ClassReader cr = new ClassReader(bytecode);
|
||||
ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_FRAMES);
|
||||
|
||||
// CHECKSTYLE:OFF
|
||||
cr.accept(new ClassVisitor(ASM6, cw)
|
||||
{}, 0);
|
||||
|
||||
//CHECKSTYLE:ON
|
||||
return cw.toByteArray();
|
||||
}
|
||||
}
|
||||
@@ -169,11 +169,7 @@ public class RefUtils
|
||||
i++;
|
||||
}
|
||||
}
|
||||
if (i == 1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return i == 1;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@@ -187,11 +183,7 @@ public class RefUtils
|
||||
i++;
|
||||
}
|
||||
}
|
||||
if (i == 1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return i == 1;
|
||||
}
|
||||
|
||||
public static boolean shouldReobField(String owner, String deob, String desc)
|
||||
@@ -275,7 +267,7 @@ public class RefUtils
|
||||
{
|
||||
obbedName = className;
|
||||
}
|
||||
deobbed.append("L" + obbedName + ";");
|
||||
deobbed.append("L").append(obbedName ).append(";");
|
||||
strIndex += sigPart.length();
|
||||
}
|
||||
catch (StringIndexOutOfBoundsException ex)
|
||||
|
||||
@@ -50,14 +50,17 @@ public class WebUtils
|
||||
return pageText;
|
||||
}
|
||||
|
||||
public static byte[] downloadFile(String urlText) throws IOException {
|
||||
public static byte[] downloadFile(String urlText) throws IOException
|
||||
{
|
||||
URL url = new URL(urlText);
|
||||
ByteArrayOutputStream output = new ByteArrayOutputStream();
|
||||
|
||||
try (InputStream inputStream = url.openStream()) {
|
||||
int n = 0;
|
||||
try (InputStream inputStream = url.openStream())
|
||||
{
|
||||
int n;
|
||||
byte [] buffer = new byte[ 1024 ];
|
||||
while (-1 != (n = inputStream.read(buffer))) {
|
||||
while (-1 != (n = inputStream.read(buffer)))
|
||||
{
|
||||
output.write(buffer, 0, n);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -533,8 +533,7 @@ public class Client
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void invokeMenuAction(int actionParam, int widgetId, int opcode, int targetId, String menuOption,
|
||||
String menuTarget, int mouseX, int mouseY)
|
||||
public void invokeMenuAction(int actionParam, int widgetId, int opcode, int targetId, String menuOption, String menuTarget, int mouseX, int mouseY)
|
||||
{
|
||||
_Statics_.menuAction(actionParam, widgetId, opcode, targetId, menuOption,
|
||||
menuTarget, mouseX, mouseY);
|
||||
|
||||
@@ -59,7 +59,6 @@ import net.runelite.client.menus.MenuManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginInstantiationException;
|
||||
import net.runelite.client.plugins.PluginManager;
|
||||
import net.runelite.client.plugins.config.ConfigPanel;
|
||||
import net.runelite.client.rs.ClientUpdateCheckMode;
|
||||
import net.runelite.client.task.Scheduler;
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
@@ -86,7 +85,7 @@ public class RuneLite
|
||||
public static final File PROFILES_DIR = new File(RUNELITE_DIR, "profiles");
|
||||
public static final File PLUGIN_DIR = new File(RUNELITE_DIR, "plugins");
|
||||
public static final File SCREENSHOT_DIR = new File(RUNELITE_DIR, "screenshots");
|
||||
public static RuneLiteSplashScreen splashScreen = new RuneLiteSplashScreen();
|
||||
static final RuneLiteSplashScreen splashScreen = new RuneLiteSplashScreen();
|
||||
|
||||
|
||||
@Getter
|
||||
|
||||
@@ -80,9 +80,12 @@ public class RuneLiteProperties
|
||||
|
||||
public String getDiscordAppId()
|
||||
{
|
||||
if (RuneLitePlusPlugin.customPresenceEnabled) {
|
||||
if (RuneLitePlusPlugin.customPresenceEnabled)
|
||||
{
|
||||
return properties.getProperty(RuneLitePlusPlugin.rlPlusDiscordApp);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
return properties.getProperty(DISCORD_APP_ID);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,12 +36,12 @@ import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.client.events.SessionClose;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.SessionClose;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.util.LinkBrowser;
|
||||
import net.runelite.client.ws.WSClient;
|
||||
import net.runelite.http.api.account.AccountClient;
|
||||
|
||||
@@ -374,6 +374,7 @@ public class Hooks implements Callbacks
|
||||
|
||||
/**
|
||||
* Copy an image
|
||||
*
|
||||
* @param src
|
||||
* @return
|
||||
*/
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
*/
|
||||
package net.runelite.client.config;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
|
||||
public class ConfigItemsGroup
|
||||
{
|
||||
|
||||
@@ -24,11 +24,10 @@
|
||||
*/
|
||||
package net.runelite.client.config;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
|
||||
import java.awt.Font;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
|
||||
@@ -106,7 +106,7 @@ public class DiscordService implements AutoCloseable
|
||||
discordEventHandlers.joinGame = this::joinGame;
|
||||
discordEventHandlers.spectateGame = this::spectateGame;
|
||||
discordEventHandlers.joinRequest = this::joinRequest;
|
||||
discordRPC.Discord_Initialize(runeLiteProperties.discordAppID, discordEventHandlers, true, null);
|
||||
discordRPC.Discord_Initialize(RuneLiteProperties.discordAppID, discordEventHandlers, true, null);
|
||||
executorService.scheduleAtFixedRate(discordRPC::Discord_RunCallbacks, 0, 2, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
|
||||
@@ -35,26 +35,32 @@ for mouse motion.
|
||||
package net.runelite.client.flexo;
|
||||
|
||||
import com.github.joonasvali.naturalmouse.api.MouseMotionFactory;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
import sun.awt.ComponentFactory;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.AWTException;
|
||||
import java.awt.Color;
|
||||
import java.awt.GraphicsDevice;
|
||||
import java.awt.GraphicsEnvironment;
|
||||
import java.awt.Point;
|
||||
import java.awt.Robot;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.peer.RobotPeer;
|
||||
import java.util.Random;
|
||||
import java.util.logging.Logger;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Constants;
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
import sun.awt.ComponentFactory;
|
||||
|
||||
public class Flexo extends Robot {
|
||||
public class Flexo extends Robot
|
||||
{
|
||||
public ThreadGroup flexoThreads = new ThreadGroup("flexo");
|
||||
public static boolean isActive;
|
||||
public static double scale;
|
||||
public static Client client;
|
||||
public static ClientUI clientUI;
|
||||
public static int fixedWidth = 765;
|
||||
public static int fixedHeight = 503;
|
||||
public static int fixedWidth = Constants.GAME_FIXED_WIDTH;
|
||||
public static int fixedHeight = Constants.GAME_FIXED_HEIGHT;
|
||||
public static boolean isStretched;
|
||||
public static int minDelay = 45;
|
||||
public static MouseMotionFactory currentMouseMotionFactory;
|
||||
@@ -62,17 +68,21 @@ public class Flexo extends Robot {
|
||||
private Thread holdKeyThread;
|
||||
private RobotPeer peer;
|
||||
|
||||
public Flexo() throws AWTException {
|
||||
if (GraphicsEnvironment.isHeadless()) {
|
||||
public Flexo() throws AWTException
|
||||
{
|
||||
if (GraphicsEnvironment.isHeadless())
|
||||
{
|
||||
throw new AWTException("headless environment");
|
||||
}
|
||||
init(GraphicsEnvironment.getLocalGraphicsEnvironment()
|
||||
.getDefaultScreenDevice());
|
||||
}
|
||||
|
||||
private void init(GraphicsDevice screen) throws AWTException {
|
||||
private void init(GraphicsDevice screen) throws AWTException
|
||||
{
|
||||
Toolkit toolkit = Toolkit.getDefaultToolkit();
|
||||
if (toolkit instanceof ComponentFactory) {
|
||||
if (toolkit instanceof ComponentFactory)
|
||||
{
|
||||
peer = ((ComponentFactory) toolkit).createRobot(this, screen);
|
||||
RobotDisposer disposer = new RobotDisposer(peer);
|
||||
sun.java2d.Disposer.addRecord(anchor, disposer);
|
||||
@@ -81,24 +91,35 @@ public class Flexo extends Robot {
|
||||
|
||||
private transient Object anchor = new Object();
|
||||
|
||||
static class RobotDisposer implements sun.java2d.DisposerRecord {
|
||||
static class RobotDisposer implements sun.java2d.DisposerRecord
|
||||
{
|
||||
private final RobotPeer peer;
|
||||
private RobotDisposer(RobotPeer peer) {
|
||||
|
||||
private RobotDisposer(RobotPeer peer)
|
||||
{
|
||||
this.peer = peer;
|
||||
}
|
||||
public void dispose() {
|
||||
if (peer != null) {
|
||||
|
||||
public void dispose()
|
||||
{
|
||||
if (peer != null)
|
||||
{
|
||||
peer.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void pauseMS(int delayMS) {
|
||||
private void pauseMS(int delayMS)
|
||||
{
|
||||
long initialMS = System.currentTimeMillis();
|
||||
while (System.currentTimeMillis()<initialMS+delayMS) {
|
||||
try {
|
||||
while (System.currentTimeMillis() < initialMS + delayMS)
|
||||
{
|
||||
try
|
||||
{
|
||||
Thread.sleep(10);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@@ -106,29 +127,39 @@ public class Flexo extends Robot {
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void mouseMove(int x, int y) {
|
||||
try {
|
||||
public synchronized void mouseMove(int x, int y)
|
||||
{
|
||||
try
|
||||
{
|
||||
//TODO: Must be better way to determine titlebar width
|
||||
currentMouseMotionFactory.build(ClientUI.frame.getX() + x + determineHorizontalOffset(), ClientUI.frame.getY() + y + determineVerticalOffset()).move();
|
||||
this.delay(getMinDelay());
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
catch (InterruptedException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void mouseMove(Point p) {
|
||||
public synchronized void mouseMove(Point p)
|
||||
{
|
||||
Point p2 = p;
|
||||
mouseMove((int) p.getX(), (int) p.getY());
|
||||
try {
|
||||
try
|
||||
{
|
||||
Thread.sleep(150);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
catch (InterruptedException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void mousePress(int buttonID) {
|
||||
if (buttonID<1 || buttonID >5) {
|
||||
public synchronized void mousePress(int buttonID)
|
||||
{
|
||||
if (buttonID < 1 || buttonID > 5)
|
||||
{
|
||||
Logger.getAnonymousLogger().warning("Invalid mouse button ID. please use 1-5.");
|
||||
return;
|
||||
}
|
||||
@@ -136,8 +167,10 @@ public class Flexo extends Robot {
|
||||
this.delay(getMinDelay());
|
||||
}
|
||||
|
||||
public synchronized void mousePressAndRelease(int buttonID) {
|
||||
if (buttonID<1 || buttonID >5) {
|
||||
public synchronized void mousePressAndRelease(int buttonID)
|
||||
{
|
||||
if (buttonID < 1 || buttonID > 5)
|
||||
{
|
||||
Logger.getAnonymousLogger().warning("Invalid mouse button ID. please use 1-5.");
|
||||
return;
|
||||
}
|
||||
@@ -148,11 +181,13 @@ public class Flexo extends Robot {
|
||||
}
|
||||
|
||||
//TODO: Symbols are nut supported at this time
|
||||
public synchronized void typeMessage(String message) {
|
||||
public synchronized void typeMessage(String message)
|
||||
{
|
||||
|
||||
Random r = new Random();
|
||||
char[] charArray = message.toCharArray();
|
||||
for (char c : charArray) {
|
||||
for (char c : charArray)
|
||||
{
|
||||
keyPress(KeyEvent.getExtendedKeyCodeForChar(c));
|
||||
this.delay(93 + r.nextInt(getMinDelay()));
|
||||
}
|
||||
@@ -162,10 +197,11 @@ public class Flexo extends Robot {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public synchronized void mouseRelease(int buttonID) {
|
||||
if (buttonID<1 || buttonID >5) {
|
||||
public synchronized void mouseRelease(int buttonID)
|
||||
{
|
||||
if (buttonID < 1 || buttonID > 5)
|
||||
{
|
||||
Logger.getAnonymousLogger().warning("Invalid mouse button ID. please use 1-5.");
|
||||
return;
|
||||
}
|
||||
@@ -173,19 +209,25 @@ public class Flexo extends Robot {
|
||||
this.delay(getMinDelay());
|
||||
}
|
||||
|
||||
private int getMinDelay() {
|
||||
private int getMinDelay()
|
||||
{
|
||||
Random random = new Random();
|
||||
int random1 = random.nextInt(minDelay);
|
||||
if (random1 < minDelay / 2)
|
||||
{
|
||||
random1 = random.nextInt(minDelay / 2) + minDelay / 2 + random.nextInt(minDelay / 2);
|
||||
}
|
||||
return random1;
|
||||
}
|
||||
|
||||
private int getWheelDelay() {
|
||||
private int getWheelDelay()
|
||||
{
|
||||
Random random = new Random();
|
||||
int random1 = random.nextInt(minDelay);
|
||||
if (random1 < minDelay / 2)
|
||||
{
|
||||
random1 = random.nextInt(minDelay / 2) + minDelay / 2 + random.nextInt(minDelay / 2);
|
||||
}
|
||||
return random1;
|
||||
}
|
||||
|
||||
@@ -195,12 +237,13 @@ public class Flexo extends Robot {
|
||||
* @param wheelAmt number of "notches" to move the mouse wheel
|
||||
* Negative values indicate movement up/away from the user,
|
||||
* positive values indicate movement down/towards the user.
|
||||
*
|
||||
* @since 1.4
|
||||
*/
|
||||
@Override
|
||||
public synchronized void mouseWheel(int wheelAmt) {
|
||||
for (int i : new int[wheelAmt]) {
|
||||
public synchronized void mouseWheel(int wheelAmt)
|
||||
{
|
||||
for (int i : new int[wheelAmt])
|
||||
{
|
||||
peer.mouseWheel(wheelAmt);
|
||||
this.delay(getWheelDelay());
|
||||
}
|
||||
@@ -221,35 +264,47 @@ public class Flexo extends Robot {
|
||||
* @see java.awt.event.KeyEvent
|
||||
*/
|
||||
@Override
|
||||
public synchronized void keyPress(int keycode) {
|
||||
public synchronized void keyPress(int keycode)
|
||||
{
|
||||
peer.keyPress(keycode);
|
||||
this.delay(getMinDelay());
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void keyRelease(int keycode) {
|
||||
public synchronized void keyRelease(int keycode)
|
||||
{
|
||||
peer.keyRelease(keycode);
|
||||
this.delay(getMinDelay());
|
||||
}
|
||||
|
||||
public synchronized void holdKey(int keycode, int timeMS) {
|
||||
new Thread(() -> {
|
||||
public synchronized void holdKey(int keycode, int timeMS)
|
||||
{
|
||||
new Thread(() ->
|
||||
{
|
||||
peer.keyPress(keycode);
|
||||
long startTime = System.currentTimeMillis();
|
||||
while ((startTime + timeMS) > System.currentTimeMillis()) { }
|
||||
while ((startTime + timeMS) > System.currentTimeMillis())
|
||||
{
|
||||
}
|
||||
peer.keyRelease(keycode);
|
||||
this.delay(getMinDelay());
|
||||
}).start();
|
||||
}
|
||||
|
||||
public synchronized void holdKeyIndefinitely(int keycode) {
|
||||
holdKeyThread = new Thread(() -> {
|
||||
public synchronized void holdKeyIndefinitely(int keycode)
|
||||
{
|
||||
holdKeyThread = new Thread(() ->
|
||||
{
|
||||
pausedIndefinitely = true;
|
||||
peer.keyPress(keycode);
|
||||
while (pausedIndefinitely) {
|
||||
try {
|
||||
holdKeyThread.sleep(10);
|
||||
} catch (InterruptedException e) {
|
||||
while (pausedIndefinitely)
|
||||
{
|
||||
try
|
||||
{
|
||||
Thread.sleep(10);
|
||||
}
|
||||
catch (InterruptedException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@@ -261,21 +316,25 @@ public class Flexo extends Robot {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Color getPixelColor(int x, int y) {
|
||||
public Color getPixelColor(int x, int y)
|
||||
{
|
||||
Color color = new Color(peer.getRGBPixel(x, y));
|
||||
return color;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delay(int ms) {
|
||||
public void delay(int ms)
|
||||
{
|
||||
pauseMS(ms);
|
||||
}
|
||||
|
||||
public int determineHorizontalOffset() {
|
||||
public int determineHorizontalOffset()
|
||||
{
|
||||
return clientUI.getCanvasOffset().getX();
|
||||
}
|
||||
|
||||
public int determineVerticalOffset() {
|
||||
public int determineVerticalOffset()
|
||||
{
|
||||
return clientUI.getCanvasOffset().getY();
|
||||
}
|
||||
|
||||
|
||||
@@ -28,45 +28,56 @@
|
||||
|
||||
package net.runelite.client.flexo;
|
||||
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.util.Random;
|
||||
import java.util.logging.Logger;
|
||||
import net.runelite.api.Constants;
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
|
||||
public class FlexoMouse {
|
||||
public class FlexoMouse
|
||||
{
|
||||
|
||||
/*
|
||||
Should pass unstretched coords, handles all conversions here.
|
||||
*/
|
||||
public static Point getClickPoint(Rectangle rect)
|
||||
{
|
||||
if (rect!=null) {
|
||||
if (rect != null)
|
||||
{
|
||||
Random r = new Random();
|
||||
int x = -1;
|
||||
int y = -1;
|
||||
x = rect.x + r.nextInt(rect.width);
|
||||
y = rect.y + r.nextInt(rect.height);
|
||||
|
||||
if (Flexo.isStretched) {
|
||||
if (Flexo.isStretched)
|
||||
{
|
||||
double wScale;
|
||||
double hScale;
|
||||
|
||||
if (Flexo.client.isResized()) {
|
||||
wScale = (Flexo.client.getStretchedDimensions().width / Flexo.client.getRealDimensions().width);
|
||||
hScale = (Flexo.client.getStretchedDimensions().height / Flexo.client.getRealDimensions().height);
|
||||
if (Flexo.client.isResized())
|
||||
{
|
||||
wScale = (Flexo.client.getStretchedDimensions().width / (double) Flexo.client.getRealDimensions().width);
|
||||
hScale = (Flexo.client.getStretchedDimensions().height / (double) Flexo.client.getRealDimensions().height);
|
||||
int newX = (int) (x * wScale);
|
||||
int newY = (int) (y * hScale);
|
||||
if (newX>0 && newX< ClientUI.frame.getWidth()) {
|
||||
if (newY>0 && newY< ClientUI.frame.getHeight()) {
|
||||
if (newX > 0 && newX < ClientUI.frame.getWidth())
|
||||
{
|
||||
if (newY > 0 && newY < ClientUI.frame.getHeight())
|
||||
{
|
||||
return new Point(newX, newY);
|
||||
}
|
||||
}
|
||||
Logger.getAnonymousLogger().warning("[RuneLit]Flexo - Off screen point attempted. Split the step, or rotate the screen.");
|
||||
return null;
|
||||
} else {
|
||||
if (x>0 && x< ClientUI.frame.getWidth()) {
|
||||
if (y>0 && y< ClientUI.frame.getHeight()) {
|
||||
}
|
||||
else
|
||||
{
|
||||
if (x > 0 && x < ClientUI.frame.getWidth())
|
||||
{
|
||||
if (y > 0 && y < ClientUI.frame.getHeight())
|
||||
{
|
||||
return new Point(x, y);
|
||||
}
|
||||
}
|
||||
@@ -74,28 +85,38 @@ public class FlexoMouse {
|
||||
return null;
|
||||
}
|
||||
|
||||
} else if (!Flexo.client.isResized()) {
|
||||
int fixedWidth = 765;
|
||||
}
|
||||
else if (!Flexo.client.isResized())
|
||||
{
|
||||
final int fixedWidth = Constants.GAME_FIXED_WIDTH;
|
||||
int widthDif = ClientUI.frame.getWidth();
|
||||
|
||||
if (ClientUI.pluginToolbar.isVisible()) {
|
||||
if (ClientUI.pluginToolbar.isVisible())
|
||||
{
|
||||
widthDif -= ClientUI.pluginToolbar.getWidth();
|
||||
}
|
||||
if (ClientUI.pluginPanel != null)
|
||||
{
|
||||
widthDif -= ClientUI.pluginPanel.getWidth();
|
||||
}
|
||||
|
||||
widthDif -= fixedWidth;
|
||||
if (x+(widthDif/2)>0 && x+(widthDif/2)< ClientUI.frame.getWidth()) {
|
||||
if (y>0 && y< ClientUI.frame.getHeight()) {
|
||||
if (x + (widthDif / 2) > 0 && x + (widthDif / 2) < ClientUI.frame.getWidth())
|
||||
{
|
||||
if (y > 0 && y < ClientUI.frame.getHeight())
|
||||
{
|
||||
return new Point(x, y);
|
||||
}
|
||||
}
|
||||
Logger.getAnonymousLogger().warning("[RuneLit]Flexo - Off screen point attempted. Split the step, or rotate the screen.");
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
if (x>0 && x< ClientUI.frame.getWidth()) {
|
||||
if (y>0 && y< ClientUI.frame.getHeight()) {
|
||||
else
|
||||
{
|
||||
if (x > 0 && x < ClientUI.frame.getWidth())
|
||||
{
|
||||
if (y > 0 && y < ClientUI.frame.getHeight())
|
||||
{
|
||||
return new Point(x, y);
|
||||
}
|
||||
}
|
||||
@@ -113,12 +134,15 @@ public class FlexoMouse {
|
||||
double wScale;
|
||||
double hScale;
|
||||
|
||||
if (Flexo.client.isResized()) {
|
||||
wScale = (Flexo.client.getStretchedDimensions().width / Flexo.client.getRealDimensions().width);
|
||||
hScale = (Flexo.client.getStretchedDimensions().height / Flexo.client.getRealDimensions().height);
|
||||
} else {
|
||||
wScale = ((double) Flexo.client.getStretchedDimensions().width) / Flexo.fixedWidth;
|
||||
hScale = ((double) Flexo.client.getStretchedDimensions().height) / Flexo.fixedHeight;
|
||||
if (Flexo.client.isResized())
|
||||
{
|
||||
wScale = (Flexo.client.getStretchedDimensions().width / (double) Flexo.client.getRealDimensions().width);
|
||||
hScale = (Flexo.client.getStretchedDimensions().height / (double) Flexo.client.getRealDimensions().height);
|
||||
}
|
||||
else
|
||||
{
|
||||
wScale = (Flexo.client.getStretchedDimensions().width) / (double) Flexo.fixedWidth;
|
||||
hScale = (Flexo.client.getStretchedDimensions().height) / (double) Flexo.fixedHeight;
|
||||
}
|
||||
|
||||
int xPadding = (int) rect.getWidth() / 5;
|
||||
@@ -129,29 +153,37 @@ public class FlexoMouse {
|
||||
clickRect.height = rect.height - yPadding * 2;
|
||||
clickRect.x = rect.x + xPadding;
|
||||
clickRect.y = rect.y + yPadding;
|
||||
if (clickRect.width>0&&clickRect.height>0) {
|
||||
if (clickRect.width > 0 && clickRect.height > 0)
|
||||
{
|
||||
int x = clickRect.x + r.nextInt(clickRect.width);
|
||||
int y = clickRect.y + r.nextInt(clickRect.height);
|
||||
double tScale = 1 + (Flexo.scale / 100);
|
||||
|
||||
if (Flexo.client.isResized()) {
|
||||
if (Flexo.client.isResized())
|
||||
{
|
||||
return new Rectangle((int) (clickRect.x * wScale), (int) (clickRect.y * wScale), (int) (clickRect.width * wScale), (int) (clickRect.getHeight() * hScale));
|
||||
} else {
|
||||
return new Rectangle((int)(clickRect.x), (int)(clickRect.y), (int)(clickRect.width), (int)(clickRect.getHeight()));
|
||||
}
|
||||
else
|
||||
{
|
||||
return new Rectangle(clickRect.x, clickRect.y, clickRect.width, (int) (clickRect.getHeight()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//Fixed, not stretched
|
||||
else if (!Flexo.client.isResized()) {
|
||||
else if (!Flexo.client.isResized())
|
||||
{
|
||||
int fixedWidth = 765;
|
||||
int widthDif = ClientUI.frame.getWidth();
|
||||
|
||||
if (ClientUI.pluginToolbar.isVisible()) {
|
||||
if (ClientUI.pluginToolbar.isVisible())
|
||||
{
|
||||
widthDif -= ClientUI.pluginToolbar.getWidth();
|
||||
}
|
||||
if (ClientUI.pluginPanel != null)
|
||||
{
|
||||
widthDif -= ClientUI.pluginPanel.getWidth();
|
||||
}
|
||||
|
||||
widthDif -= fixedWidth;
|
||||
int xPadding = (int) rect.getWidth() / 5;
|
||||
@@ -162,14 +194,16 @@ public class FlexoMouse {
|
||||
clickRect.height = rect.height - yPadding;
|
||||
clickRect.x = rect.x + xPadding;
|
||||
clickRect.y = rect.y + yPadding;
|
||||
if (clickRect.height>0&&clickRect.width>0) {
|
||||
if (clickRect.height > 0 && clickRect.width > 0)
|
||||
{
|
||||
int x = clickRect.x + r.nextInt(clickRect.width);
|
||||
int y = clickRect.y + r.nextInt(clickRect.height);
|
||||
return new Rectangle((int) (clickRect.x), (int) (clickRect.y), (int) (clickRect.width), (int) (clickRect.getHeight()));
|
||||
return new Rectangle(clickRect.x, clickRect.y, clickRect.width, (int) (clickRect.getHeight()));
|
||||
}
|
||||
}
|
||||
//Resizable, not stretched
|
||||
else {
|
||||
else
|
||||
{
|
||||
int xPadding = (int) rect.getWidth() / 5;
|
||||
int yPadding = (int) rect.getHeight() / 5;
|
||||
Random r = new Random();
|
||||
@@ -178,10 +212,11 @@ public class FlexoMouse {
|
||||
clickRect.height = rect.height - yPadding * 2;
|
||||
clickRect.x = rect.x + xPadding;
|
||||
clickRect.y = rect.y + yPadding;
|
||||
if (clickRect.height>0&&clickRect.width>0) {
|
||||
if (clickRect.height > 0 && clickRect.width > 0)
|
||||
{
|
||||
int x = clickRect.x + r.nextInt(clickRect.width);
|
||||
int y = clickRect.y + r.nextInt(clickRect.height);
|
||||
return new Rectangle((int)(clickRect.x), (int)(clickRect.y), (int)(clickRect.width), (int)(clickRect.getHeight()));
|
||||
return new Rectangle(clickRect.x, clickRect.y, clickRect.width, (int) (clickRect.getHeight()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,8 +26,212 @@
|
||||
package net.runelite.client.game;
|
||||
|
||||
import lombok.Getter;
|
||||
import static net.runelite.api.NullObjectID.*;
|
||||
import static net.runelite.api.ObjectID.*;
|
||||
import static net.runelite.api.NullObjectID.NULL_25337;
|
||||
import static net.runelite.api.NullObjectID.NULL_26371;
|
||||
import static net.runelite.api.NullObjectID.NULL_26375;
|
||||
import static net.runelite.api.NullObjectID.NULL_26884;
|
||||
import static net.runelite.api.NullObjectID.NULL_26886;
|
||||
import static net.runelite.api.NullObjectID.NULL_29868;
|
||||
import static net.runelite.api.NullObjectID.NULL_29869;
|
||||
import static net.runelite.api.NullObjectID.NULL_29870;
|
||||
import static net.runelite.api.NullObjectID.NULL_31823;
|
||||
import static net.runelite.api.NullObjectID.NULL_31849;
|
||||
import static net.runelite.api.NullObjectID.NULL_33327;
|
||||
import static net.runelite.api.NullObjectID.NULL_33328;
|
||||
import static net.runelite.api.ObjectID.A_WOODEN_LOG;
|
||||
import static net.runelite.api.ObjectID.BALANCING_LEDGE_23548;
|
||||
import static net.runelite.api.ObjectID.BIG_WINDOW;
|
||||
import static net.runelite.api.ObjectID.BOULDER_27990;
|
||||
import static net.runelite.api.ObjectID.BROKEN_FENCE;
|
||||
import static net.runelite.api.ObjectID.BROKEN_FENCE_2618;
|
||||
import static net.runelite.api.ObjectID.BROKEN_RAFT;
|
||||
import static net.runelite.api.ObjectID.BROKEN_WALL_33344;
|
||||
import static net.runelite.api.ObjectID.CASTLE_WALL;
|
||||
import static net.runelite.api.ObjectID.CLIMBING_ROCKS;
|
||||
import static net.runelite.api.ObjectID.CLIMBING_ROCKS_11948;
|
||||
import static net.runelite.api.ObjectID.CLIMBING_ROCKS_11949;
|
||||
import static net.runelite.api.ObjectID.CREVICE_16465;
|
||||
import static net.runelite.api.ObjectID.CREVICE_16539;
|
||||
import static net.runelite.api.ObjectID.CREVICE_16543;
|
||||
import static net.runelite.api.ObjectID.CREVICE_19043;
|
||||
import static net.runelite.api.ObjectID.CREVICE_30198;
|
||||
import static net.runelite.api.ObjectID.CREVICE_9739;
|
||||
import static net.runelite.api.ObjectID.CREVICE_9740;
|
||||
import static net.runelite.api.ObjectID.CROSSBOW_TREE_17062;
|
||||
import static net.runelite.api.ObjectID.CRUMBLING_WALL_24222;
|
||||
import static net.runelite.api.ObjectID.DARK_TUNNEL_10047;
|
||||
import static net.runelite.api.ObjectID.DENSE_FOREST;
|
||||
import static net.runelite.api.ObjectID.DENSE_FOREST_3938;
|
||||
import static net.runelite.api.ObjectID.DENSE_FOREST_3939;
|
||||
import static net.runelite.api.ObjectID.DENSE_FOREST_3998;
|
||||
import static net.runelite.api.ObjectID.DENSE_FOREST_3999;
|
||||
import static net.runelite.api.ObjectID.FALLEN_TREE_33192;
|
||||
import static net.runelite.api.ObjectID.FENCE_16518;
|
||||
import static net.runelite.api.ObjectID.GAP;
|
||||
import static net.runelite.api.ObjectID.GAP_2831;
|
||||
import static net.runelite.api.ObjectID.GAP_29326;
|
||||
import static net.runelite.api.ObjectID.HOLE_16520;
|
||||
import static net.runelite.api.ObjectID.HOLE_30966;
|
||||
import static net.runelite.api.ObjectID.HOLE_31481;
|
||||
import static net.runelite.api.ObjectID.HOLE_31482;
|
||||
import static net.runelite.api.ObjectID.ICE_CHUNKS_31822;
|
||||
import static net.runelite.api.ObjectID.ICE_CHUNKS_31990;
|
||||
import static net.runelite.api.ObjectID.JUTTING_WALL_17002;
|
||||
import static net.runelite.api.ObjectID.LADDER_30938;
|
||||
import static net.runelite.api.ObjectID.LADDER_30939;
|
||||
import static net.runelite.api.ObjectID.LADDER_30940;
|
||||
import static net.runelite.api.ObjectID.LADDER_30941;
|
||||
import static net.runelite.api.ObjectID.LEAVES;
|
||||
import static net.runelite.api.ObjectID.LEAVES_3924;
|
||||
import static net.runelite.api.ObjectID.LEAVES_3925;
|
||||
import static net.runelite.api.ObjectID.LEDGE_33190;
|
||||
import static net.runelite.api.ObjectID.LITTLE_BOULDER;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_16540;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_16541;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_16542;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_16546;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_16547;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_16548;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_20882;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_20884;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_23274;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_3929;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_3930;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_3931;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_3932;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_3933;
|
||||
import static net.runelite.api.ObjectID.LOOSE_RAILING;
|
||||
import static net.runelite.api.ObjectID.LOOSE_RAILING_2186;
|
||||
import static net.runelite.api.ObjectID.LOOSE_RAILING_28849;
|
||||
import static net.runelite.api.ObjectID.LOW_FENCE;
|
||||
import static net.runelite.api.ObjectID.MONKEYBARS_23566;
|
||||
import static net.runelite.api.ObjectID.MONKEYBARS_23567;
|
||||
import static net.runelite.api.ObjectID.MYSTERIOUS_PIPE;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_30767;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_30962;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_30964;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_PIPE_16509;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_PIPE_16511;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_PIPE_23140;
|
||||
import static net.runelite.api.ObjectID.ORNATE_RAILING;
|
||||
import static net.runelite.api.ObjectID.ORNATE_RAILING_17000;
|
||||
import static net.runelite.api.ObjectID.PILE_OF_RUBBLE_23563;
|
||||
import static net.runelite.api.ObjectID.PILE_OF_RUBBLE_23564;
|
||||
import static net.runelite.api.ObjectID.PILLAR_31561;
|
||||
import static net.runelite.api.ObjectID.PILLAR_31809;
|
||||
import static net.runelite.api.ObjectID.PIPE_21727;
|
||||
import static net.runelite.api.ObjectID.PIPE_21728;
|
||||
import static net.runelite.api.ObjectID.ROCKS;
|
||||
import static net.runelite.api.ObjectID.ROCKSLIDE_33184;
|
||||
import static net.runelite.api.ObjectID.ROCKSLIDE_33185;
|
||||
import static net.runelite.api.ObjectID.ROCKSLIDE_33191;
|
||||
import static net.runelite.api.ObjectID.ROCKS_14106;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16464;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16514;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16515;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16521;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16522;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16523;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16524;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16534;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16535;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16545;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16549;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16550;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16998;
|
||||
import static net.runelite.api.ObjectID.ROCKS_16999;
|
||||
import static net.runelite.api.ObjectID.ROCKS_17042;
|
||||
import static net.runelite.api.ObjectID.ROCKS_19849;
|
||||
import static net.runelite.api.ObjectID.ROCKS_2231;
|
||||
import static net.runelite.api.ObjectID.ROCKS_27984;
|
||||
import static net.runelite.api.ObjectID.ROCKS_27985;
|
||||
import static net.runelite.api.ObjectID.ROCKS_27987;
|
||||
import static net.runelite.api.ObjectID.ROCKS_27988;
|
||||
import static net.runelite.api.ObjectID.ROCKS_31757;
|
||||
import static net.runelite.api.ObjectID.ROCKS_31758;
|
||||
import static net.runelite.api.ObjectID.ROCKS_31759;
|
||||
import static net.runelite.api.ObjectID.ROCKS_34396;
|
||||
import static net.runelite.api.ObjectID.ROCKS_34397;
|
||||
import static net.runelite.api.ObjectID.ROCKS_34741;
|
||||
import static net.runelite.api.ObjectID.ROCKS_3748;
|
||||
import static net.runelite.api.ObjectID.ROCKS_3790;
|
||||
import static net.runelite.api.ObjectID.ROCKS_3791;
|
||||
import static net.runelite.api.ObjectID.ROCKS_3803;
|
||||
import static net.runelite.api.ObjectID.ROCKS_3804;
|
||||
import static net.runelite.api.ObjectID.ROCKS_6673;
|
||||
import static net.runelite.api.ObjectID.ROCKY_HANDHOLDS_26400;
|
||||
import static net.runelite.api.ObjectID.ROCKY_HANDHOLDS_26401;
|
||||
import static net.runelite.api.ObjectID.ROCKY_HANDHOLDS_26402;
|
||||
import static net.runelite.api.ObjectID.ROCKY_HANDHOLDS_26404;
|
||||
import static net.runelite.api.ObjectID.ROCKY_HANDHOLDS_26405;
|
||||
import static net.runelite.api.ObjectID.ROCKY_HANDHOLDS_26406;
|
||||
import static net.runelite.api.ObjectID.ROCK_16115;
|
||||
import static net.runelite.api.ObjectID.ROPESWING_23568;
|
||||
import static net.runelite.api.ObjectID.ROPESWING_23569;
|
||||
import static net.runelite.api.ObjectID.ROPE_ANCHOR;
|
||||
import static net.runelite.api.ObjectID.ROPE_ANCHOR_30917;
|
||||
import static net.runelite.api.ObjectID.ROPE_BRIDGE_21306;
|
||||
import static net.runelite.api.ObjectID.ROPE_BRIDGE_21307;
|
||||
import static net.runelite.api.ObjectID.ROPE_BRIDGE_21308;
|
||||
import static net.runelite.api.ObjectID.ROPE_BRIDGE_21309;
|
||||
import static net.runelite.api.ObjectID.ROPE_BRIDGE_21310;
|
||||
import static net.runelite.api.ObjectID.ROPE_BRIDGE_21311;
|
||||
import static net.runelite.api.ObjectID.ROPE_BRIDGE_21312;
|
||||
import static net.runelite.api.ObjectID.ROPE_BRIDGE_21313;
|
||||
import static net.runelite.api.ObjectID.ROPE_BRIDGE_21314;
|
||||
import static net.runelite.api.ObjectID.ROPE_BRIDGE_21315;
|
||||
import static net.runelite.api.ObjectID.RUBBER_CAP_MUSHROOM;
|
||||
import static net.runelite.api.ObjectID.SPIKEY_CHAIN;
|
||||
import static net.runelite.api.ObjectID.SPIKEY_CHAIN_16538;
|
||||
import static net.runelite.api.ObjectID.STAIRS_31485;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONES;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONES_23646;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONES_23647;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_10663;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_11768;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_13504;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_14917;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_14918;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_16466;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_16513;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_16533;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_19040;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_19042;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_21738;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_21739;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_29728;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_29729;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_29730;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_5948;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_5949;
|
||||
import static net.runelite.api.ObjectID.STEPS;
|
||||
import static net.runelite.api.ObjectID.STEPS_29993;
|
||||
import static net.runelite.api.ObjectID.STICKS;
|
||||
import static net.runelite.api.ObjectID.STILE;
|
||||
import static net.runelite.api.ObjectID.STILE_12982;
|
||||
import static net.runelite.api.ObjectID.STRANGE_FLOOR;
|
||||
import static net.runelite.api.ObjectID.STRANGE_FLOOR_16544;
|
||||
import static net.runelite.api.ObjectID.STRONG_TREE_17074;
|
||||
import static net.runelite.api.ObjectID.TIGHTGAP;
|
||||
import static net.runelite.api.ObjectID.TRELLIS_20056;
|
||||
import static net.runelite.api.ObjectID.TRIPWIRE;
|
||||
import static net.runelite.api.ObjectID.TUNNEL_30174;
|
||||
import static net.runelite.api.ObjectID.TUNNEL_30175;
|
||||
import static net.runelite.api.ObjectID.TUNNEL_30959;
|
||||
import static net.runelite.api.ObjectID.UNDERWALL_TUNNEL;
|
||||
import static net.runelite.api.ObjectID.UNDERWALL_TUNNEL_16528;
|
||||
import static net.runelite.api.ObjectID.UNDERWALL_TUNNEL_16529;
|
||||
import static net.runelite.api.ObjectID.UNDERWALL_TUNNEL_16530;
|
||||
import static net.runelite.api.ObjectID.UNDERWALL_TUNNEL_19032;
|
||||
import static net.runelite.api.ObjectID.UNDERWALL_TUNNEL_19036;
|
||||
import static net.runelite.api.ObjectID.VINE_26880;
|
||||
import static net.runelite.api.ObjectID.VINE_26882;
|
||||
import static net.runelite.api.ObjectID.WALL_17047;
|
||||
import static net.runelite.api.ObjectID.WALL_17049;
|
||||
import static net.runelite.api.ObjectID.WALL_17050;
|
||||
import static net.runelite.api.ObjectID.WEATHERED_WALL;
|
||||
import static net.runelite.api.ObjectID.WEATHERED_WALL_16526;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
|
||||
@Getter
|
||||
|
||||
@@ -36,6 +36,7 @@ import javax.swing.JLabel;
|
||||
public class AsyncBufferedImage extends BufferedImage
|
||||
{
|
||||
private final List<Runnable> listeners = new CopyOnWriteArrayList<>();
|
||||
|
||||
public AsyncBufferedImage(int width, int height, int imageType)
|
||||
{
|
||||
super(width, height, imageType);
|
||||
|
||||
@@ -48,7 +48,116 @@ import static net.runelite.api.Constants.CLIENT_DEFAULT_ZOOM;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.ItemComposition;
|
||||
import net.runelite.api.ItemID;
|
||||
import static net.runelite.api.ItemID.*;
|
||||
import static net.runelite.api.ItemID.AGILITY_CAPE;
|
||||
import static net.runelite.api.ItemID.AGILITY_CAPET;
|
||||
import static net.runelite.api.ItemID.AGILITY_CAPET_13341;
|
||||
import static net.runelite.api.ItemID.AGILITY_CAPE_13340;
|
||||
import static net.runelite.api.ItemID.BOOTS_OF_LIGHTNESS;
|
||||
import static net.runelite.api.ItemID.BOOTS_OF_LIGHTNESS_89;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_11861;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13589;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13590;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13601;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13602;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13613;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13614;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13625;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13626;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13637;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13638;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13677;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13678;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_21076;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_21078;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_11853;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13581;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13582;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13593;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13594;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13605;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13606;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13617;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13618;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13629;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13630;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13669;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13670;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_21064;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_21066;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_11859;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13587;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13588;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13599;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13600;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13611;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13612;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13623;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13624;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13635;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13636;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13675;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13676;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_21073;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_21075;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_11851;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13579;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13580;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13591;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13592;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13603;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13604;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13615;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13616;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13627;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13628;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13667;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13668;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_21061;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_21063;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_11857;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13585;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13586;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13597;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13598;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13609;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13610;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13621;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13622;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13633;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13634;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13673;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13674;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_21070;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_21072;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_11855;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13583;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13584;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13595;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13596;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13607;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13608;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13619;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13620;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13631;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13632;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13671;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13672;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_21067;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_21069;
|
||||
import static net.runelite.api.ItemID.MAX_CAPE;
|
||||
import static net.runelite.api.ItemID.MAX_CAPE_13342;
|
||||
import static net.runelite.api.ItemID.PENANCE_GLOVES;
|
||||
import static net.runelite.api.ItemID.PENANCE_GLOVES_10554;
|
||||
import static net.runelite.api.ItemID.SPOTTED_CAPE;
|
||||
import static net.runelite.api.ItemID.SPOTTED_CAPE_10073;
|
||||
import static net.runelite.api.ItemID.SPOTTIER_CAPE;
|
||||
import static net.runelite.api.ItemID.SPOTTIER_CAPE_10074;
|
||||
import net.runelite.api.SpritePixels;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.PostItemComposition;
|
||||
@@ -258,6 +367,7 @@ public class ItemManager
|
||||
|
||||
/**
|
||||
* Invalidates internal item manager item composition cache (but not client item composition cache)
|
||||
*
|
||||
* @see Client#getItemCompositionCache()
|
||||
*/
|
||||
public void invalidateItemCompositionCache()
|
||||
@@ -303,6 +413,7 @@ public class ItemManager
|
||||
|
||||
/**
|
||||
* Look up an item's stats
|
||||
*
|
||||
* @param itemId item id
|
||||
* @return item stats
|
||||
*/
|
||||
|
||||
@@ -29,7 +29,411 @@ import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import static net.runelite.api.ItemID.*;
|
||||
import static net.runelite.api.ItemID.ABYSSAL_TENTACLE;
|
||||
import static net.runelite.api.ItemID.ABYSSAL_WHIP;
|
||||
import static net.runelite.api.ItemID.AHRIMS_HOOD;
|
||||
import static net.runelite.api.ItemID.AHRIMS_HOOD_100;
|
||||
import static net.runelite.api.ItemID.AHRIMS_HOOD_25;
|
||||
import static net.runelite.api.ItemID.AHRIMS_HOOD_50;
|
||||
import static net.runelite.api.ItemID.AHRIMS_HOOD_75;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBESKIRT;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBESKIRT_100;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBESKIRT_25;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBESKIRT_50;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBESKIRT_75;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBETOP;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBETOP_100;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBETOP_25;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBETOP_50;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBETOP_75;
|
||||
import static net.runelite.api.ItemID.AHRIMS_STAFF;
|
||||
import static net.runelite.api.ItemID.AHRIMS_STAFF_100;
|
||||
import static net.runelite.api.ItemID.AHRIMS_STAFF_25;
|
||||
import static net.runelite.api.ItemID.AHRIMS_STAFF_50;
|
||||
import static net.runelite.api.ItemID.AHRIMS_STAFF_75;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_FURY;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_FURY_OR;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY1;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY2;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY3;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY5;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY_T;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY_T1;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY_T2;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY_T3;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY_T5;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_TORTURE;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_TORTURE_OR;
|
||||
import static net.runelite.api.ItemID.ANCIENT_WYVERN_SHIELD;
|
||||
import static net.runelite.api.ItemID.ANCIENT_WYVERN_SHIELD_21634;
|
||||
import static net.runelite.api.ItemID.ANGUISH_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.ARCHERS_RING;
|
||||
import static net.runelite.api.ItemID.ARCHERS_RING_I;
|
||||
import static net.runelite.api.ItemID.ARMADYL_GODSWORD;
|
||||
import static net.runelite.api.ItemID.ARMADYL_GODSWORD_OR;
|
||||
import static net.runelite.api.ItemID.ARMADYL_GODSWORD_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.BANDOS_GODSWORD;
|
||||
import static net.runelite.api.ItemID.BANDOS_GODSWORD_OR;
|
||||
import static net.runelite.api.ItemID.BANDOS_GODSWORD_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.BERSERKER_RING;
|
||||
import static net.runelite.api.ItemID.BERSERKER_RING_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_1;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_10_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_1_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_2;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_2_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_3;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_3_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_4;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_4_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_5;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_5_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_6;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_6_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_7;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_7_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_8;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_8_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_9;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_9_I;
|
||||
import static net.runelite.api.ItemID.BLACK_MASK_I;
|
||||
import static net.runelite.api.ItemID.BLACK_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.BLACK_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.BONECRUSHER_NECKLACE;
|
||||
import static net.runelite.api.ItemID.BOTTOMLESS_COMPOST_BUCKET;
|
||||
import static net.runelite.api.ItemID.BOTTOMLESS_COMPOST_BUCKET_22997;
|
||||
import static net.runelite.api.ItemID.CRAWS_BOW;
|
||||
import static net.runelite.api.ItemID.CRAWS_BOW_U;
|
||||
import static net.runelite.api.ItemID.DARK_BOW;
|
||||
import static net.runelite.api.ItemID.DARK_BOW_12765;
|
||||
import static net.runelite.api.ItemID.DARK_BOW_12766;
|
||||
import static net.runelite.api.ItemID.DARK_BOW_12767;
|
||||
import static net.runelite.api.ItemID.DARK_BOW_12768;
|
||||
import static net.runelite.api.ItemID.DARK_BOW_20408;
|
||||
import static net.runelite.api.ItemID.DARK_INFINITY_BOTTOMS;
|
||||
import static net.runelite.api.ItemID.DARK_INFINITY_COLOUR_KIT;
|
||||
import static net.runelite.api.ItemID.DARK_INFINITY_HAT;
|
||||
import static net.runelite.api.ItemID.DARK_INFINITY_TOP;
|
||||
import static net.runelite.api.ItemID.DHAROKS_GREATAXE;
|
||||
import static net.runelite.api.ItemID.DHAROKS_GREATAXE_100;
|
||||
import static net.runelite.api.ItemID.DHAROKS_GREATAXE_25;
|
||||
import static net.runelite.api.ItemID.DHAROKS_GREATAXE_50;
|
||||
import static net.runelite.api.ItemID.DHAROKS_GREATAXE_75;
|
||||
import static net.runelite.api.ItemID.DHAROKS_HELM;
|
||||
import static net.runelite.api.ItemID.DHAROKS_HELM_100;
|
||||
import static net.runelite.api.ItemID.DHAROKS_HELM_25;
|
||||
import static net.runelite.api.ItemID.DHAROKS_HELM_50;
|
||||
import static net.runelite.api.ItemID.DHAROKS_HELM_75;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATEBODY_100;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATEBODY_25;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATEBODY_50;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATEBODY_75;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATELEGS;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATELEGS_100;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATELEGS_25;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATELEGS_50;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATELEGS_75;
|
||||
import static net.runelite.api.ItemID.DRAGONBONE_NECKLACE;
|
||||
import static net.runelite.api.ItemID.DRAGONFIRE_SHIELD;
|
||||
import static net.runelite.api.ItemID.DRAGONFIRE_SHIELD_11284;
|
||||
import static net.runelite.api.ItemID.DRAGONFIRE_WARD;
|
||||
import static net.runelite.api.ItemID.DRAGONFIRE_WARD_22003;
|
||||
import static net.runelite.api.ItemID.DRAGON_BOOTS;
|
||||
import static net.runelite.api.ItemID.DRAGON_BOOTS_G;
|
||||
import static net.runelite.api.ItemID.DRAGON_BOOTS_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.DRAGON_CHAINBODY_3140;
|
||||
import static net.runelite.api.ItemID.DRAGON_CHAINBODY_G;
|
||||
import static net.runelite.api.ItemID.DRAGON_CHAINBODY_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.DRAGON_DEFENDER_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.DRAGON_DEFENDER_T;
|
||||
import static net.runelite.api.ItemID.DRAGON_FULL_HELM;
|
||||
import static net.runelite.api.ItemID.DRAGON_FULL_HELM_G;
|
||||
import static net.runelite.api.ItemID.DRAGON_FULL_HELM_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.DRAGON_KITESHIELD;
|
||||
import static net.runelite.api.ItemID.DRAGON_KITESHIELD_G;
|
||||
import static net.runelite.api.ItemID.DRAGON_KITESHIELD_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.DRAGON_LEGSSKIRT_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.DRAGON_PICKAXE;
|
||||
import static net.runelite.api.ItemID.DRAGON_PICKAXE_12797;
|
||||
import static net.runelite.api.ItemID.DRAGON_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.DRAGON_PLATEBODY_G;
|
||||
import static net.runelite.api.ItemID.DRAGON_PLATEBODY_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.DRAGON_PLATELEGS;
|
||||
import static net.runelite.api.ItemID.DRAGON_PLATELEGS_G;
|
||||
import static net.runelite.api.ItemID.DRAGON_PLATESKIRT;
|
||||
import static net.runelite.api.ItemID.DRAGON_PLATESKIRT_G;
|
||||
import static net.runelite.api.ItemID.DRAGON_SCIMITAR;
|
||||
import static net.runelite.api.ItemID.DRAGON_SCIMITAR_OR;
|
||||
import static net.runelite.api.ItemID.DRAGON_SCIMITAR_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.DRAGON_SQ_SHIELD;
|
||||
import static net.runelite.api.ItemID.DRAGON_SQ_SHIELD_G;
|
||||
import static net.runelite.api.ItemID.DRAGON_SQ_SHIELD_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.ENSOULED_ABYSSAL_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_ABYSSAL_HEAD_13508;
|
||||
import static net.runelite.api.ItemID.ENSOULED_AVIANSIE_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_AVIANSIE_HEAD_13505;
|
||||
import static net.runelite.api.ItemID.ENSOULED_BEAR_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_BEAR_HEAD_13463;
|
||||
import static net.runelite.api.ItemID.ENSOULED_BLOODVELD_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_BLOODVELD_HEAD_13496;
|
||||
import static net.runelite.api.ItemID.ENSOULED_CHAOS_DRUID_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_CHAOS_DRUID_HEAD_13472;
|
||||
import static net.runelite.api.ItemID.ENSOULED_DAGANNOTH_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_DAGANNOTH_HEAD_13493;
|
||||
import static net.runelite.api.ItemID.ENSOULED_DEMON_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_DEMON_HEAD_13502;
|
||||
import static net.runelite.api.ItemID.ENSOULED_DOG_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_DOG_HEAD_13469;
|
||||
import static net.runelite.api.ItemID.ENSOULED_DRAGON_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_DRAGON_HEAD_13511;
|
||||
import static net.runelite.api.ItemID.ENSOULED_ELF_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_ELF_HEAD_13481;
|
||||
import static net.runelite.api.ItemID.ENSOULED_GIANT_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_GIANT_HEAD_13475;
|
||||
import static net.runelite.api.ItemID.ENSOULED_GOBLIN_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_GOBLIN_HEAD_13448;
|
||||
import static net.runelite.api.ItemID.ENSOULED_HORROR_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_HORROR_HEAD_13487;
|
||||
import static net.runelite.api.ItemID.ENSOULED_IMP_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_IMP_HEAD_13454;
|
||||
import static net.runelite.api.ItemID.ENSOULED_KALPHITE_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_KALPHITE_HEAD_13490;
|
||||
import static net.runelite.api.ItemID.ENSOULED_MINOTAUR_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_MINOTAUR_HEAD_13457;
|
||||
import static net.runelite.api.ItemID.ENSOULED_MONKEY_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_MONKEY_HEAD_13451;
|
||||
import static net.runelite.api.ItemID.ENSOULED_OGRE_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_OGRE_HEAD_13478;
|
||||
import static net.runelite.api.ItemID.ENSOULED_SCORPION_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_SCORPION_HEAD_13460;
|
||||
import static net.runelite.api.ItemID.ENSOULED_TROLL_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_TROLL_HEAD_13484;
|
||||
import static net.runelite.api.ItemID.ENSOULED_TZHAAR_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_TZHAAR_HEAD_13499;
|
||||
import static net.runelite.api.ItemID.ENSOULED_UNICORN_HEAD;
|
||||
import static net.runelite.api.ItemID.ENSOULED_UNICORN_HEAD_13466;
|
||||
import static net.runelite.api.ItemID.FEROCIOUS_GLOVES;
|
||||
import static net.runelite.api.ItemID.FROZEN_ABYSSAL_WHIP;
|
||||
import static net.runelite.api.ItemID.FURY_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.GAMES_NECKLACE1;
|
||||
import static net.runelite.api.ItemID.GAMES_NECKLACE2;
|
||||
import static net.runelite.api.ItemID.GAMES_NECKLACE3;
|
||||
import static net.runelite.api.ItemID.GAMES_NECKLACE4;
|
||||
import static net.runelite.api.ItemID.GAMES_NECKLACE5;
|
||||
import static net.runelite.api.ItemID.GAMES_NECKLACE6;
|
||||
import static net.runelite.api.ItemID.GAMES_NECKLACE7;
|
||||
import static net.runelite.api.ItemID.GAMES_NECKLACE8;
|
||||
import static net.runelite.api.ItemID.GRANITE_MAUL;
|
||||
import static net.runelite.api.ItemID.GRANITE_MAUL_12848;
|
||||
import static net.runelite.api.ItemID.GRANITE_RING;
|
||||
import static net.runelite.api.ItemID.GRANITE_RING_I;
|
||||
import static net.runelite.api.ItemID.GREEN_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.GREEN_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.GUTHANS_CHAINSKIRT;
|
||||
import static net.runelite.api.ItemID.GUTHANS_CHAINSKIRT_100;
|
||||
import static net.runelite.api.ItemID.GUTHANS_CHAINSKIRT_25;
|
||||
import static net.runelite.api.ItemID.GUTHANS_CHAINSKIRT_50;
|
||||
import static net.runelite.api.ItemID.GUTHANS_CHAINSKIRT_75;
|
||||
import static net.runelite.api.ItemID.GUTHANS_HELM;
|
||||
import static net.runelite.api.ItemID.GUTHANS_HELM_100;
|
||||
import static net.runelite.api.ItemID.GUTHANS_HELM_25;
|
||||
import static net.runelite.api.ItemID.GUTHANS_HELM_50;
|
||||
import static net.runelite.api.ItemID.GUTHANS_HELM_75;
|
||||
import static net.runelite.api.ItemID.GUTHANS_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.GUTHANS_PLATEBODY_100;
|
||||
import static net.runelite.api.ItemID.GUTHANS_PLATEBODY_25;
|
||||
import static net.runelite.api.ItemID.GUTHANS_PLATEBODY_50;
|
||||
import static net.runelite.api.ItemID.GUTHANS_PLATEBODY_75;
|
||||
import static net.runelite.api.ItemID.GUTHANS_WARSPEAR;
|
||||
import static net.runelite.api.ItemID.GUTHANS_WARSPEAR_100;
|
||||
import static net.runelite.api.ItemID.GUTHANS_WARSPEAR_25;
|
||||
import static net.runelite.api.ItemID.GUTHANS_WARSPEAR_50;
|
||||
import static net.runelite.api.ItemID.GUTHANS_WARSPEAR_75;
|
||||
import static net.runelite.api.ItemID.HYDRA_LEATHER;
|
||||
import static net.runelite.api.ItemID.HYDRA_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.HYDRA_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.HYDRA_TAIL;
|
||||
import static net.runelite.api.ItemID.INFINITY_BOTTOMS;
|
||||
import static net.runelite.api.ItemID.INFINITY_BOTTOMS_20575;
|
||||
import static net.runelite.api.ItemID.INFINITY_HAT;
|
||||
import static net.runelite.api.ItemID.INFINITY_TOP;
|
||||
import static net.runelite.api.ItemID.INFINITY_TOP_10605;
|
||||
import static net.runelite.api.ItemID.INFINITY_TOP_20574;
|
||||
import static net.runelite.api.ItemID.KARILS_COIF;
|
||||
import static net.runelite.api.ItemID.KARILS_COIF_100;
|
||||
import static net.runelite.api.ItemID.KARILS_COIF_25;
|
||||
import static net.runelite.api.ItemID.KARILS_COIF_50;
|
||||
import static net.runelite.api.ItemID.KARILS_COIF_75;
|
||||
import static net.runelite.api.ItemID.KARILS_CROSSBOW;
|
||||
import static net.runelite.api.ItemID.KARILS_CROSSBOW_100;
|
||||
import static net.runelite.api.ItemID.KARILS_CROSSBOW_25;
|
||||
import static net.runelite.api.ItemID.KARILS_CROSSBOW_50;
|
||||
import static net.runelite.api.ItemID.KARILS_CROSSBOW_75;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERSKIRT;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERSKIRT_100;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERSKIRT_25;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERSKIRT_50;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERSKIRT_75;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERTOP;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERTOP_100;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERTOP_25;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERTOP_50;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERTOP_75;
|
||||
import static net.runelite.api.ItemID.KRAKEN_TENTACLE;
|
||||
import static net.runelite.api.ItemID.LAVA_BATTLESTAFF;
|
||||
import static net.runelite.api.ItemID.LAVA_BATTLESTAFF_21198;
|
||||
import static net.runelite.api.ItemID.LIGHT_INFINITY_BOTTOMS;
|
||||
import static net.runelite.api.ItemID.LIGHT_INFINITY_COLOUR_KIT;
|
||||
import static net.runelite.api.ItemID.LIGHT_INFINITY_HAT;
|
||||
import static net.runelite.api.ItemID.LIGHT_INFINITY_TOP;
|
||||
import static net.runelite.api.ItemID.MAGIC_SHORTBOW;
|
||||
import static net.runelite.api.ItemID.MAGIC_SHORTBOW_I;
|
||||
import static net.runelite.api.ItemID.MAGMA_HELM;
|
||||
import static net.runelite.api.ItemID.MAGMA_HELM_UNCHARGED;
|
||||
import static net.runelite.api.ItemID.MALEDICTION_WARD;
|
||||
import static net.runelite.api.ItemID.MALEDICTION_WARD_12806;
|
||||
import static net.runelite.api.ItemID.NECKLACE_OF_ANGUISH;
|
||||
import static net.runelite.api.ItemID.NECKLACE_OF_ANGUISH_OR;
|
||||
import static net.runelite.api.ItemID.OCCULT_NECKLACE;
|
||||
import static net.runelite.api.ItemID.OCCULT_NECKLACE_OR;
|
||||
import static net.runelite.api.ItemID.OCCULT_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.ODIUM_WARD;
|
||||
import static net.runelite.api.ItemID.ODIUM_WARD_12807;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_1;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_2;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_4;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_5;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_6;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_7;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_8;
|
||||
import static net.runelite.api.ItemID.PURPLE_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.PURPLE_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.RED_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.RED_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING1;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING2;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING3;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING4;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING5;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING6;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING7;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING8;
|
||||
import static net.runelite.api.ItemID.RING_OF_SUFFERING;
|
||||
import static net.runelite.api.ItemID.RING_OF_SUFFERING_I;
|
||||
import static net.runelite.api.ItemID.RING_OF_SUFFERING_R;
|
||||
import static net.runelite.api.ItemID.RING_OF_SUFFERING_RI;
|
||||
import static net.runelite.api.ItemID.RING_OF_THE_GODS;
|
||||
import static net.runelite.api.ItemID.RING_OF_THE_GODS_I;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_1;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_2;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_3;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_4;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I1;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I2;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I3;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I4;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I5;
|
||||
import static net.runelite.api.ItemID.SANGUINESTI_STAFF;
|
||||
import static net.runelite.api.ItemID.SANGUINESTI_STAFF_UNCHARGED;
|
||||
import static net.runelite.api.ItemID.SARADOMINS_BLESSED_SWORD;
|
||||
import static net.runelite.api.ItemID.SARADOMINS_TEAR;
|
||||
import static net.runelite.api.ItemID.SARADOMIN_GODSWORD;
|
||||
import static net.runelite.api.ItemID.SARADOMIN_GODSWORD_OR;
|
||||
import static net.runelite.api.ItemID.SARADOMIN_GODSWORD_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.SCYTHE_OF_VITUR;
|
||||
import static net.runelite.api.ItemID.SCYTHE_OF_VITUR_UNCHARGED;
|
||||
import static net.runelite.api.ItemID.SEERS_RING;
|
||||
import static net.runelite.api.ItemID.SEERS_RING_I;
|
||||
import static net.runelite.api.ItemID.SERPENTINE_HELM;
|
||||
import static net.runelite.api.ItemID.SERPENTINE_HELM_UNCHARGED;
|
||||
import static net.runelite.api.ItemID.SKILLS_NECKLACE;
|
||||
import static net.runelite.api.ItemID.SKILLS_NECKLACE1;
|
||||
import static net.runelite.api.ItemID.SKILLS_NECKLACE2;
|
||||
import static net.runelite.api.ItemID.SKILLS_NECKLACE3;
|
||||
import static net.runelite.api.ItemID.SKILLS_NECKLACE5;
|
||||
import static net.runelite.api.ItemID.SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.STEAM_BATTLESTAFF;
|
||||
import static net.runelite.api.ItemID.STEAM_BATTLESTAFF_12795;
|
||||
import static net.runelite.api.ItemID.TANZANITE_HELM;
|
||||
import static net.runelite.api.ItemID.TANZANITE_HELM_UNCHARGED;
|
||||
import static net.runelite.api.ItemID.THAMMARONS_SCEPTRE;
|
||||
import static net.runelite.api.ItemID.THAMMARONS_SCEPTRE_U;
|
||||
import static net.runelite.api.ItemID.TOME_OF_FIRE;
|
||||
import static net.runelite.api.ItemID.TOME_OF_FIRE_EMPTY;
|
||||
import static net.runelite.api.ItemID.TORAGS_HAMMERS;
|
||||
import static net.runelite.api.ItemID.TORAGS_HAMMERS_100;
|
||||
import static net.runelite.api.ItemID.TORAGS_HAMMERS_25;
|
||||
import static net.runelite.api.ItemID.TORAGS_HAMMERS_50;
|
||||
import static net.runelite.api.ItemID.TORAGS_HAMMERS_75;
|
||||
import static net.runelite.api.ItemID.TORAGS_HELM;
|
||||
import static net.runelite.api.ItemID.TORAGS_HELM_100;
|
||||
import static net.runelite.api.ItemID.TORAGS_HELM_25;
|
||||
import static net.runelite.api.ItemID.TORAGS_HELM_50;
|
||||
import static net.runelite.api.ItemID.TORAGS_HELM_75;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATEBODY_100;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATEBODY_25;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATEBODY_50;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATEBODY_75;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATELEGS;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATELEGS_100;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATELEGS_25;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATELEGS_50;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATELEGS_75;
|
||||
import static net.runelite.api.ItemID.TORTURE_ORNAMENT_KIT;
|
||||
import static net.runelite.api.ItemID.TOXIC_BLOWPIPE;
|
||||
import static net.runelite.api.ItemID.TOXIC_BLOWPIPE_EMPTY;
|
||||
import static net.runelite.api.ItemID.TOXIC_STAFF_OF_THE_DEAD;
|
||||
import static net.runelite.api.ItemID.TOXIC_STAFF_UNCHARGED;
|
||||
import static net.runelite.api.ItemID.TREASONOUS_RING;
|
||||
import static net.runelite.api.ItemID.TREASONOUS_RING_I;
|
||||
import static net.runelite.api.ItemID.TRIDENT_OF_THE_SEAS;
|
||||
import static net.runelite.api.ItemID.TRIDENT_OF_THE_SEAS_E;
|
||||
import static net.runelite.api.ItemID.TRIDENT_OF_THE_SWAMP;
|
||||
import static net.runelite.api.ItemID.TRIDENT_OF_THE_SWAMP_E;
|
||||
import static net.runelite.api.ItemID.TURQUOISE_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.TURQUOISE_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.TYRANNICAL_RING;
|
||||
import static net.runelite.api.ItemID.TYRANNICAL_RING_I;
|
||||
import static net.runelite.api.ItemID.UNCHARGED_TOXIC_TRIDENT;
|
||||
import static net.runelite.api.ItemID.UNCHARGED_TOXIC_TRIDENT_E;
|
||||
import static net.runelite.api.ItemID.UNCHARGED_TRIDENT;
|
||||
import static net.runelite.api.ItemID.UNCHARGED_TRIDENT_E;
|
||||
import static net.runelite.api.ItemID.VERACS_BRASSARD;
|
||||
import static net.runelite.api.ItemID.VERACS_BRASSARD_100;
|
||||
import static net.runelite.api.ItemID.VERACS_BRASSARD_25;
|
||||
import static net.runelite.api.ItemID.VERACS_BRASSARD_50;
|
||||
import static net.runelite.api.ItemID.VERACS_BRASSARD_75;
|
||||
import static net.runelite.api.ItemID.VERACS_FLAIL;
|
||||
import static net.runelite.api.ItemID.VERACS_FLAIL_100;
|
||||
import static net.runelite.api.ItemID.VERACS_FLAIL_25;
|
||||
import static net.runelite.api.ItemID.VERACS_FLAIL_50;
|
||||
import static net.runelite.api.ItemID.VERACS_FLAIL_75;
|
||||
import static net.runelite.api.ItemID.VERACS_HELM;
|
||||
import static net.runelite.api.ItemID.VERACS_HELM_100;
|
||||
import static net.runelite.api.ItemID.VERACS_HELM_25;
|
||||
import static net.runelite.api.ItemID.VERACS_HELM_50;
|
||||
import static net.runelite.api.ItemID.VERACS_HELM_75;
|
||||
import static net.runelite.api.ItemID.VERACS_PLATESKIRT;
|
||||
import static net.runelite.api.ItemID.VERACS_PLATESKIRT_100;
|
||||
import static net.runelite.api.ItemID.VERACS_PLATESKIRT_25;
|
||||
import static net.runelite.api.ItemID.VERACS_PLATESKIRT_50;
|
||||
import static net.runelite.api.ItemID.VERACS_PLATESKIRT_75;
|
||||
import static net.runelite.api.ItemID.VIGGORAS_CHAINMACE;
|
||||
import static net.runelite.api.ItemID.VIGGORAS_CHAINMACE_U;
|
||||
import static net.runelite.api.ItemID.VOLCANIC_ABYSSAL_WHIP;
|
||||
import static net.runelite.api.ItemID.WARRIOR_RING;
|
||||
import static net.runelite.api.ItemID.WARRIOR_RING_I;
|
||||
import static net.runelite.api.ItemID.ZAMORAK_GODSWORD;
|
||||
import static net.runelite.api.ItemID.ZAMORAK_GODSWORD_OR;
|
||||
import static net.runelite.api.ItemID.ZAMORAK_GODSWORD_ORNAMENT_KIT;
|
||||
|
||||
/**
|
||||
* Converts untradeable items to it's tradeable counterparts
|
||||
|
||||
@@ -53,6 +53,7 @@ public class NPCManager
|
||||
|
||||
/**
|
||||
* Returns health for target NPC based on it's combat level and name
|
||||
*
|
||||
* @param name npc name
|
||||
* @param combatLevel npc combat level
|
||||
* @return health or null if HP is unknown
|
||||
|
||||
@@ -33,12 +33,12 @@ import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.FontID;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.api.widgets.JavaScriptCallback;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetPositionMode;
|
||||
import net.runelite.api.widgets.WidgetSizeMode;
|
||||
import net.runelite.api.widgets.WidgetTextAlignment;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.client.input.KeyListener;
|
||||
|
||||
@Slf4j
|
||||
|
||||
@@ -24,9 +24,8 @@
|
||||
*/
|
||||
package net.runelite.client.menus;
|
||||
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
|
||||
import java.awt.Color;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.ui.JagexColors;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
|
||||
|
||||
@@ -27,7 +27,6 @@ package net.runelite.client.plugins;
|
||||
import com.google.inject.Binder;
|
||||
import com.google.inject.Injector;
|
||||
import com.google.inject.Module;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public abstract class Plugin implements Module
|
||||
|
||||
@@ -57,8 +57,6 @@ import javax.inject.Singleton;
|
||||
import javax.swing.SwingUtilities;
|
||||
import lombok.Setter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.client.events.SessionClose;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
@@ -67,6 +65,8 @@ import net.runelite.client.config.RuneLiteConfig;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.PluginChanged;
|
||||
import net.runelite.client.events.SessionClose;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.task.Schedule;
|
||||
import net.runelite.client.task.ScheduledMethod;
|
||||
import net.runelite.client.task.Scheduler;
|
||||
@@ -516,6 +516,7 @@ public class PluginManager
|
||||
|
||||
/**
|
||||
* Topologically sort a graph. Uses Kahn's algorithm.
|
||||
*
|
||||
* @param graph
|
||||
* @param <T>
|
||||
* @return
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.runelite.client.plugins;
|
||||
|
||||
public enum PluginType {
|
||||
public enum PluginType
|
||||
{
|
||||
|
||||
PVM,
|
||||
PVP,
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/package net.runelite.client.plugins.achievementdiary;
|
||||
*/
|
||||
package net.runelite.client.plugins.achievementdiary;
|
||||
|
||||
public interface Requirement
|
||||
{
|
||||
|
||||
@@ -27,10 +27,10 @@ package net.runelite.client.plugins.achievementdiary.diaries;
|
||||
import net.runelite.api.Favour;
|
||||
import net.runelite.api.Quest;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.FavourRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.GenericDiaryRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.QuestRequirement;
|
||||
import net.runelite.client.plugins.achievementdiary.SkillRequirement;
|
||||
|
||||
public class KourendDiaryRequirement extends GenericDiaryRequirement
|
||||
{
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
package net.runelite.client.plugins.agility;
|
||||
|
||||
import com.google.inject.Provides;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@@ -37,6 +38,8 @@ import net.runelite.api.Client;
|
||||
import net.runelite.api.Item;
|
||||
import net.runelite.api.ItemID;
|
||||
import static net.runelite.api.ItemID.AGILITY_ARENA_TICKET;
|
||||
import net.runelite.api.MenuAction;
|
||||
import net.runelite.api.MenuEntry;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Skill;
|
||||
import static net.runelite.api.Skill.AGILITY;
|
||||
@@ -72,10 +75,7 @@ import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
import net.runelite.api.MenuEntry;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import net.runelite.api.MenuAction;
|
||||
import java.awt.Color;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Agility",
|
||||
@@ -447,7 +447,8 @@ public class AgilityPlugin extends Plugin
|
||||
for (Obstacle nearbyObstacle : getObstacles().values())
|
||||
{
|
||||
AgilityShortcut shortcut = nearbyObstacle.getShortcut();
|
||||
if (shortcut != null && Arrays.stream(shortcut.getObstacleIds()).anyMatch(i -> i == entryId)) {
|
||||
if (shortcut != null && Arrays.stream(shortcut.getObstacleIds()).anyMatch(i -> i == entryId))
|
||||
{
|
||||
MenuEntry entry = menuEntries[menuEntries.length - 1];
|
||||
int level = shortcut.getLevel();
|
||||
Color color = level <= getAgilityLevel() ? Color.GREEN : Color.RED;
|
||||
|
||||
@@ -44,7 +44,210 @@ import static net.runelite.api.NullObjectID.NULL_18133;
|
||||
import static net.runelite.api.NullObjectID.NULL_18135;
|
||||
import static net.runelite.api.NullObjectID.NULL_18136;
|
||||
import static net.runelite.api.NullObjectID.NULL_3550;
|
||||
import static net.runelite.api.ObjectID.*;
|
||||
import static net.runelite.api.ObjectID.BALANCING_LEDGE;
|
||||
import static net.runelite.api.ObjectID.BALANCING_LEDGE_23547;
|
||||
import static net.runelite.api.ObjectID.BALANCING_LEDGE_3561;
|
||||
import static net.runelite.api.ObjectID.BALANCING_ROPE;
|
||||
import static net.runelite.api.ObjectID.BALANCING_ROPE_23557;
|
||||
import static net.runelite.api.ObjectID.BANNER_11382;
|
||||
import static net.runelite.api.ObjectID.BASKET_11380;
|
||||
import static net.runelite.api.ObjectID.BOAT_17961;
|
||||
import static net.runelite.api.ObjectID.BOILER_22635;
|
||||
import static net.runelite.api.ObjectID.CABLE;
|
||||
import static net.runelite.api.ObjectID.CABLE_22569;
|
||||
import static net.runelite.api.ObjectID.CABLE_22572;
|
||||
import static net.runelite.api.ObjectID.CLIMBING_ROCKS_10851;
|
||||
import static net.runelite.api.ObjectID.CLOTHES_LINE;
|
||||
import static net.runelite.api.ObjectID.CONSOLE;
|
||||
import static net.runelite.api.ObjectID.CRATE_10086;
|
||||
import static net.runelite.api.ObjectID.CRUMBLING_WALL_1948;
|
||||
import static net.runelite.api.ObjectID.DOORWAY_10855;
|
||||
import static net.runelite.api.ObjectID.DOOR_18091;
|
||||
import static net.runelite.api.ObjectID.DRYING_LINE;
|
||||
import static net.runelite.api.ObjectID.EDGE;
|
||||
import static net.runelite.api.ObjectID.EDGE_11371;
|
||||
import static net.runelite.api.ObjectID.EDGE_11377;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18071;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18072;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18073;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18089;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18090;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18093;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18094;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18097;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18098;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18109;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18110;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18111;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18112;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18113;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18114;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18117;
|
||||
import static net.runelite.api.ObjectID.FLOORBOARDS_18118;
|
||||
import static net.runelite.api.ObjectID.GAP_10085;
|
||||
import static net.runelite.api.ObjectID.GAP_10352;
|
||||
import static net.runelite.api.ObjectID.GAP_10642;
|
||||
import static net.runelite.api.ObjectID.GAP_10778;
|
||||
import static net.runelite.api.ObjectID.GAP_10779;
|
||||
import static net.runelite.api.ObjectID.GAP_10780;
|
||||
import static net.runelite.api.ObjectID.GAP_10820;
|
||||
import static net.runelite.api.ObjectID.GAP_10821;
|
||||
import static net.runelite.api.ObjectID.GAP_10822;
|
||||
import static net.runelite.api.ObjectID.GAP_10823;
|
||||
import static net.runelite.api.ObjectID.GAP_10828;
|
||||
import static net.runelite.api.ObjectID.GAP_10832;
|
||||
import static net.runelite.api.ObjectID.GAP_10859;
|
||||
import static net.runelite.api.ObjectID.GAP_10861;
|
||||
import static net.runelite.api.ObjectID.GAP_10882;
|
||||
import static net.runelite.api.ObjectID.GAP_10884;
|
||||
import static net.runelite.api.ObjectID.GAP_11161;
|
||||
import static net.runelite.api.ObjectID.GAP_11360;
|
||||
import static net.runelite.api.ObjectID.GAP_11365;
|
||||
import static net.runelite.api.ObjectID.GAP_11374;
|
||||
import static net.runelite.api.ObjectID.GAP_11375;
|
||||
import static net.runelite.api.ObjectID.GAP_11376;
|
||||
import static net.runelite.api.ObjectID.GAP_11383;
|
||||
import static net.runelite.api.ObjectID.GAP_11392;
|
||||
import static net.runelite.api.ObjectID.GAP_11395;
|
||||
import static net.runelite.api.ObjectID.GAP_11396;
|
||||
import static net.runelite.api.ObjectID.GAP_11406;
|
||||
import static net.runelite.api.ObjectID.GAP_11429;
|
||||
import static net.runelite.api.ObjectID.GAP_11430;
|
||||
import static net.runelite.api.ObjectID.GAP_11630;
|
||||
import static net.runelite.api.ObjectID.HAND_HOLDS_10836;
|
||||
import static net.runelite.api.ObjectID.HAND_HOLDS_3583;
|
||||
import static net.runelite.api.ObjectID.HURDLE;
|
||||
import static net.runelite.api.ObjectID.HURDLE_11639;
|
||||
import static net.runelite.api.ObjectID.HURDLE_11640;
|
||||
import static net.runelite.api.ObjectID.ICE;
|
||||
import static net.runelite.api.ObjectID.ICE_21149;
|
||||
import static net.runelite.api.ObjectID.ICE_21150;
|
||||
import static net.runelite.api.ObjectID.ICE_21151;
|
||||
import static net.runelite.api.ObjectID.ICE_21152;
|
||||
import static net.runelite.api.ObjectID.ICE_21153;
|
||||
import static net.runelite.api.ObjectID.ICE_21154;
|
||||
import static net.runelite.api.ObjectID.ICE_21155;
|
||||
import static net.runelite.api.ObjectID.ICE_21156;
|
||||
import static net.runelite.api.ObjectID.ICICLES;
|
||||
import static net.runelite.api.ObjectID.JUTTING_WALL_22552;
|
||||
import static net.runelite.api.ObjectID.LADDER_16682;
|
||||
import static net.runelite.api.ObjectID.LADDER_22564;
|
||||
import static net.runelite.api.ObjectID.LEDGE_10781;
|
||||
import static net.runelite.api.ObjectID.LEDGE_10860;
|
||||
import static net.runelite.api.ObjectID.LEDGE_10886;
|
||||
import static net.runelite.api.ObjectID.LEDGE_10888;
|
||||
import static net.runelite.api.ObjectID.LEDGE_11366;
|
||||
import static net.runelite.api.ObjectID.LEDGE_11367;
|
||||
import static net.runelite.api.ObjectID.LEDGE_11369;
|
||||
import static net.runelite.api.ObjectID.LEDGE_11370;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_23144;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_23145;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_23542;
|
||||
import static net.runelite.api.ObjectID.LOG_BALANCE_3557;
|
||||
import static net.runelite.api.ObjectID.LOW_WALL;
|
||||
import static net.runelite.api.ObjectID.LOW_WALL_10865;
|
||||
import static net.runelite.api.ObjectID.MARKET_STALL_11381;
|
||||
import static net.runelite.api.ObjectID.MONKEYBARS;
|
||||
import static net.runelite.api.ObjectID.MONKEYBARS_15417;
|
||||
import static net.runelite.api.ObjectID.MONKEY_BARS_3564;
|
||||
import static net.runelite.api.ObjectID.NARROW_WALL;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_NET_20211;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_NET_23134;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_NET_23135;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_PIPE_23137;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_PIPE_23138;
|
||||
import static net.runelite.api.ObjectID.OBSTACLE_PIPE_23139;
|
||||
import static net.runelite.api.ObjectID.PILE_OF_FISH;
|
||||
import static net.runelite.api.ObjectID.PILLAR_3578;
|
||||
import static net.runelite.api.ObjectID.PIPE_11657;
|
||||
import static net.runelite.api.ObjectID.PLANK_10868;
|
||||
import static net.runelite.api.ObjectID.PLANK_11631;
|
||||
import static net.runelite.api.ObjectID.PLANK_3570;
|
||||
import static net.runelite.api.ObjectID.PLANK_3571;
|
||||
import static net.runelite.api.ObjectID.PLANK_3572;
|
||||
import static net.runelite.api.ObjectID.POLEVAULT;
|
||||
import static net.runelite.api.ObjectID.PYLON_22664;
|
||||
import static net.runelite.api.ObjectID.ROCKS_23640;
|
||||
import static net.runelite.api.ObjectID.ROCK_17958;
|
||||
import static net.runelite.api.ObjectID.ROCK_17959;
|
||||
import static net.runelite.api.ObjectID.ROCK_17960;
|
||||
import static net.runelite.api.ObjectID.ROOF_TOP_BEAMS;
|
||||
import static net.runelite.api.ObjectID.ROPESWING_23131;
|
||||
import static net.runelite.api.ObjectID.ROPESWING_23132;
|
||||
import static net.runelite.api.ObjectID.ROPE_15487;
|
||||
import static net.runelite.api.ObjectID.ROPE_SWING;
|
||||
import static net.runelite.api.ObjectID.ROUGH_WALL;
|
||||
import static net.runelite.api.ObjectID.ROUGH_WALL_10093;
|
||||
import static net.runelite.api.ObjectID.ROUGH_WALL_10586;
|
||||
import static net.runelite.api.ObjectID.ROUGH_WALL_10833;
|
||||
import static net.runelite.api.ObjectID.ROUGH_WALL_11385;
|
||||
import static net.runelite.api.ObjectID.ROUGH_WALL_11391;
|
||||
import static net.runelite.api.ObjectID.SHELF_18086;
|
||||
import static net.runelite.api.ObjectID.SHELF_18087;
|
||||
import static net.runelite.api.ObjectID.SHELF_18095;
|
||||
import static net.runelite.api.ObjectID.SHELF_18096;
|
||||
import static net.runelite.api.ObjectID.SHELF_18105;
|
||||
import static net.runelite.api.ObjectID.SHELF_18106;
|
||||
import static net.runelite.api.ObjectID.SHELF_18107;
|
||||
import static net.runelite.api.ObjectID.SHELF_18108;
|
||||
import static net.runelite.api.ObjectID.SKULL_SLOPE;
|
||||
import static net.runelite.api.ObjectID.SKULL_SLOPE_15483;
|
||||
import static net.runelite.api.ObjectID.STAIRS_10857;
|
||||
import static net.runelite.api.ObjectID.STAIRS_22608;
|
||||
import static net.runelite.api.ObjectID.STAIRS_22609;
|
||||
import static net.runelite.api.ObjectID.STAIRS_22650;
|
||||
import static net.runelite.api.ObjectID.STAIRS_22651;
|
||||
import static net.runelite.api.ObjectID.STAIRS_DOWN;
|
||||
import static net.runelite.api.ObjectID.STEEP_ROOF;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_11643;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_15412;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_21120;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_21126;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_21128;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_21129;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_21130;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_21131;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_21132;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_21133;
|
||||
import static net.runelite.api.ObjectID.STEPPING_STONE_23556;
|
||||
import static net.runelite.api.ObjectID.STILE_7527;
|
||||
import static net.runelite.api.ObjectID.TALL_TREE_10819;
|
||||
import static net.runelite.api.ObjectID.TIGHTROPE;
|
||||
import static net.runelite.api.ObjectID.TIGHTROPE_10075;
|
||||
import static net.runelite.api.ObjectID.TIGHTROPE_10284;
|
||||
import static net.runelite.api.ObjectID.TIGHTROPE_10583;
|
||||
import static net.runelite.api.ObjectID.TIGHTROPE_10834;
|
||||
import static net.runelite.api.ObjectID.TIGHTROPE_11361;
|
||||
import static net.runelite.api.ObjectID.TIGHTROPE_11364;
|
||||
import static net.runelite.api.ObjectID.TIGHTROPE_11378;
|
||||
import static net.runelite.api.ObjectID.TIGHTROPE_11393;
|
||||
import static net.runelite.api.ObjectID.TIGHTROPE_11397;
|
||||
import static net.runelite.api.ObjectID.TREE_11384;
|
||||
import static net.runelite.api.ObjectID.TREE_11389;
|
||||
import static net.runelite.api.ObjectID.TREE_BRANCH_23559;
|
||||
import static net.runelite.api.ObjectID.TREE_BRANCH_23560;
|
||||
import static net.runelite.api.ObjectID.TROPICAL_TREE_10357;
|
||||
import static net.runelite.api.ObjectID.TROPICAL_TREE_15414;
|
||||
import static net.runelite.api.ObjectID.TROPICAL_TREE_16062;
|
||||
import static net.runelite.api.ObjectID.TUNNEL_18085;
|
||||
import static net.runelite.api.ObjectID.TUNNEL_22557;
|
||||
import static net.runelite.api.ObjectID.WALL_10084;
|
||||
import static net.runelite.api.ObjectID.WALL_10777;
|
||||
import static net.runelite.api.ObjectID.WALL_11373;
|
||||
import static net.runelite.api.ObjectID.WALL_17980;
|
||||
import static net.runelite.api.ObjectID.WALL_18078;
|
||||
import static net.runelite.api.ObjectID.WALL_18088;
|
||||
import static net.runelite.api.ObjectID.WALL_RUBBLE;
|
||||
import static net.runelite.api.ObjectID.WALL_RUBBLE_18038;
|
||||
import static net.runelite.api.ObjectID.WASHING_LINE_18099;
|
||||
import static net.runelite.api.ObjectID.WASHING_LINE_18100;
|
||||
import static net.runelite.api.ObjectID.WOODEN_BEAMS;
|
||||
import static net.runelite.api.ObjectID.ZIP_LINE;
|
||||
import static net.runelite.api.ObjectID.ZIP_LINE_11644;
|
||||
import static net.runelite.api.ObjectID.ZIP_LINE_11645;
|
||||
import static net.runelite.api.ObjectID.ZIP_LINE_11646;
|
||||
import net.runelite.client.game.AgilityShortcut;
|
||||
|
||||
class Obstacles
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, https://runelitepl.us
|
||||
* Copyright (c) 2018, DennisDeV <https://github.com/DevDennis>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -24,11 +24,10 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.antidrag;
|
||||
|
||||
import net.runelite.api.Constants;
|
||||
import java.awt.Color;
|
||||
import java.awt.event.KeyEvent;
|
||||
import net.runelite.client.config.Alpha;
|
||||
import net.runelite.api.Constants;
|
||||
import net.runelite.client.config.Alpha;
|
||||
import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
|
||||
@@ -23,30 +23,7 @@
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.antidrag;
|
||||
/*
|
||||
* Copyright (c) 2018, https://runelitepl.us
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
import com.google.inject.Provides;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
|
||||
@@ -32,7 +32,6 @@ import java.util.Map;
|
||||
import net.runelite.api.ProjectileID;
|
||||
|
||||
|
||||
|
||||
public enum AoeProjectileInfo
|
||||
{
|
||||
LIZARDMAN_SHAMAN_AOE(ProjectileID.LIZARDMAN_SHAMAN_AOE, 5),
|
||||
|
||||
@@ -145,18 +145,22 @@ public class AoeWarningOverlay extends Overlay
|
||||
return null;
|
||||
}
|
||||
|
||||
private void drawTile(Graphics2D graphics, WorldPoint point, Color color, int strokeWidth, int outlineAlpha, int fillAlpha) {
|
||||
private void drawTile(Graphics2D graphics, WorldPoint point, Color color, int strokeWidth, int outlineAlpha, int fillAlpha)
|
||||
{
|
||||
WorldPoint playerLocation = client.getLocalPlayer().getWorldLocation();
|
||||
if (point.distanceTo(playerLocation) >= 32) {
|
||||
if (point.distanceTo(playerLocation) >= 32)
|
||||
{
|
||||
return;
|
||||
}
|
||||
LocalPoint lp = LocalPoint.fromWorld(client, point);
|
||||
if (lp == null) {
|
||||
if (lp == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Polygon poly = Perspective.getCanvasTilePoly(client, lp);
|
||||
if (poly == null) {
|
||||
if (poly == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
//OverlayUtil.renderPolygon(graphics, poly, color);
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.barbarianassault;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.inject.Provides;
|
||||
import java.awt.Color;
|
||||
import java.awt.Font;
|
||||
|
||||
@@ -180,6 +180,7 @@ class BarrowsOverlay extends Overlay
|
||||
|
||||
/**
|
||||
* Get minimap dot color from client
|
||||
*
|
||||
* @param typeIndex index of minimap dot type (1 npcs, 2 players)
|
||||
* @return color
|
||||
*/
|
||||
|
||||
@@ -31,8 +31,6 @@ import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import javax.inject.Inject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.NPCComposition;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
|
||||
@@ -63,7 +63,6 @@ import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
@@ -371,10 +370,7 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
@Subscribe
|
||||
public void onNpcDespawned(NpcDespawned event)
|
||||
{
|
||||
if (healers.remove(event.getNpc()) != null && healers.isEmpty())
|
||||
{
|
||||
healers.clear();
|
||||
}
|
||||
healers.remove(event.getNpc());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@@ -466,7 +462,8 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
List<String> poison = Arrays.asList("poisoned tofu", "poisoned meat", "poisoned worms");
|
||||
List<String> vials = Arrays.asList("healing vial", "healing vial(1)", "healing vial(2)", "healing vial(3)", "healing vial(4)");//"healing vial(4)"
|
||||
if (poison.contains(item))
|
||||
{//if item is a poison item
|
||||
{
|
||||
//if item is a poison item
|
||||
int calledPoison = 0;
|
||||
switch (healer.getText())//choose which poison to hide the use/destroy option for
|
||||
{
|
||||
@@ -509,11 +506,13 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
else if (option.equals("attack") && client.getWidget(WidgetInfo.BA_ATK_ROLE_TEXT) == null && !target.equals("queen spawn"))//if not attacker
|
||||
{//remove attack option from everything but queen spawns
|
||||
{
|
||||
//remove attack option from everything but queen spawns
|
||||
remove(option, target, true);
|
||||
}
|
||||
else if ((option.equals("fix") || (option.equals("block") && target.equals("penance cave"))) && client.getWidget(WidgetInfo.BA_DEF_ROLE_TEXT) == null)//if not defender
|
||||
{//the check for option requires checking target as well because defensive attack style option is also called "block".
|
||||
{
|
||||
//the check for option requires checking target as well because defensive attack style option is also called "block".
|
||||
remove(option, target, true);
|
||||
}
|
||||
else if ((option.equals("load")) && client.getWidget(WidgetInfo.BA_COLL_ROLE_TEXT) == null)//if not collector, remove hopper options
|
||||
@@ -632,7 +631,7 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
if (correctEgg != null)
|
||||
{
|
||||
entries.add(correctEgg);
|
||||
client.setMenuEntries(entries.toArray(new MenuEntry[entries.size()]));
|
||||
client.setMenuEntries(entries.toArray(new MenuEntry[0]));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.batools;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum Calls
|
||||
{
|
||||
|
||||
@@ -24,11 +24,10 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.batools;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.ui.overlay.infobox.Counter;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
class CycleCounter extends Counter
|
||||
{
|
||||
CycleCounter(BufferedImage img, Plugin plugin, int tick)
|
||||
|
||||
@@ -27,9 +27,7 @@ package net.runelite.client.plugins.batools;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import net.runelite.api.NPC;
|
||||
import net.runelite.api.Actor;
|
||||
|
||||
|
||||
class Healer
|
||||
@@ -97,7 +95,8 @@ class Healer
|
||||
return HealerCode.WAVENINE;
|
||||
case 10:
|
||||
return HealerCode.WAVETEN;
|
||||
default: return null;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -53,59 +53,73 @@ import net.runelite.client.plugins.PluginType;
|
||||
)
|
||||
@Singleton
|
||||
@Slf4j
|
||||
public class BlackjackPlugin extends Plugin {
|
||||
public class BlackjackPlugin extends Plugin
|
||||
{
|
||||
|
||||
@Inject
|
||||
Client client;
|
||||
|
||||
private static long timeSinceKnockout;
|
||||
private static long timeSinceAggro;
|
||||
private long timeSinceKnockout;
|
||||
private long timeSinceAggro;
|
||||
|
||||
@Getter
|
||||
private static long currentGameTick;
|
||||
private long currentGameTick;
|
||||
|
||||
@Override
|
||||
public void configure(Binder binder) {
|
||||
public void configure(Binder binder)
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception {
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
currentGameTick = 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception {
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
currentGameTick = 0;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick gameTick) {
|
||||
public void onGameTick(GameTick gameTick)
|
||||
{
|
||||
currentGameTick++;
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage) {
|
||||
if (chatMessage.getType() == ChatMessageType.SPAM) {
|
||||
if (chatMessage.getMessage().equals("You smack the bandit over the head and render them unconscious.")) {
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
if (chatMessage.getType() == ChatMessageType.SPAM)
|
||||
{
|
||||
if (chatMessage.getMessage().equals("You smack the bandit over the head and render them unconscious."))
|
||||
{
|
||||
timeSinceKnockout = getCurrentGameTick();
|
||||
}
|
||||
if (chatMessage.getMessage().equals("Your blow only glances off the bandit's head.")) {
|
||||
if (chatMessage.getMessage().equals("Your blow only glances off the bandit's head."))
|
||||
{
|
||||
timeSinceAggro = getCurrentGameTick();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded menuEntryAdded) {
|
||||
public void onMenuEntryAdded(MenuEntryAdded menuEntryAdded)
|
||||
{
|
||||
String target = menuEntryAdded.getTarget().toLowerCase();
|
||||
if ((target.contains("bandit") | target.contains("menaphite thug"))) {
|
||||
if ((target.contains("bandit") || target.contains("menaphite thug")))
|
||||
{
|
||||
Quest quest = Quest.THE_FEUD;
|
||||
if (quest.getState(client) == QuestState.FINISHED) {
|
||||
if (currentGameTick < (timeSinceKnockout + 4)) {
|
||||
if (quest.getState(client) == QuestState.FINISHED)
|
||||
{
|
||||
if (currentGameTick < (timeSinceKnockout + 4))
|
||||
{
|
||||
stripSpecificEntries("pickpocket");
|
||||
}
|
||||
if (currentGameTick < (timeSinceAggro + 4)) {
|
||||
if (currentGameTick < (timeSinceAggro + 4))
|
||||
{
|
||||
stripSpecificEntries("pickpocket");
|
||||
}
|
||||
stripSpecificEntries("knock-out");
|
||||
@@ -113,20 +127,25 @@ public class BlackjackPlugin extends Plugin {
|
||||
}
|
||||
}
|
||||
|
||||
private void stripSpecificEntries(String exceptFor) {
|
||||
private void stripSpecificEntries(String exceptFor)
|
||||
{
|
||||
MenuEntry[] currentEntires = client.getMenuEntries();
|
||||
MenuEntry[] newEntries = new MenuEntry[2];
|
||||
|
||||
for (MenuEntry currentEntry : currentEntires) {
|
||||
if (currentEntry.getOption().toLowerCase().equals(exceptFor.toLowerCase())) {
|
||||
for (MenuEntry currentEntry : currentEntires)
|
||||
{
|
||||
if (currentEntry.getOption().toLowerCase().equals(exceptFor.toLowerCase()))
|
||||
{
|
||||
newEntries[1] = currentEntry;
|
||||
}
|
||||
if (currentEntry.getOption().toLowerCase().equals("lure")) {
|
||||
if (currentEntry.getOption().toLowerCase().equals("lure"))
|
||||
{
|
||||
newEntries[0] = currentEntry;
|
||||
}
|
||||
}
|
||||
|
||||
if (newEntries[0] != null && newEntries[1] != null) {
|
||||
if (newEntries[0] != null && newEntries[1] != null)
|
||||
{
|
||||
client.setMenuEntries(newEntries);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
|
||||
import net.runelite.client.ui.overlay.OverlayMenuEntry;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
|
||||
@@ -24,12 +24,11 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.blastmine;
|
||||
|
||||
import java.awt.Color;
|
||||
import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
@ConfigGroup("blastmine")
|
||||
public interface BlastMinePluginConfig extends Config
|
||||
{
|
||||
|
||||
@@ -356,7 +356,7 @@ public class BoostsPlugin extends Plugin
|
||||
* section it will "activate" adding an additional 15 second section
|
||||
* to the boost timing. If again the preserve prayer is active for that
|
||||
* entire section a second 15 second section will be added.
|
||||
*
|
||||
* <p>
|
||||
* Preserve is only required to be on for the 4th and 5th sections of the boost timer
|
||||
* to gain full effect (seconds 45-75).
|
||||
*
|
||||
@@ -406,6 +406,7 @@ public class BoostsPlugin extends Plugin
|
||||
|
||||
/**
|
||||
* Converts tick-based time to accurate second time
|
||||
*
|
||||
* @param time tick-based time
|
||||
* @return second-based time
|
||||
*/
|
||||
|
||||
@@ -77,7 +77,7 @@ enum Boss
|
||||
bosses = builder.build();
|
||||
}
|
||||
|
||||
private Boss(int id, long period, ChronoUnit unit, int itemSpriteId)
|
||||
Boss(int id, long period, ChronoUnit unit, int itemSpriteId)
|
||||
{
|
||||
this.id = id;
|
||||
this.spawnTime = Duration.of(period, unit);
|
||||
|
||||
@@ -104,6 +104,7 @@ class CannonOverlay extends Overlay
|
||||
|
||||
/**
|
||||
* Draw the double hit spots on a 6 by 6 grid around the cannon
|
||||
*
|
||||
* @param startTile The position of the cannon
|
||||
*/
|
||||
private void drawDoubleHitSpots(Graphics2D graphics, LocalPoint startTile, Color color)
|
||||
|
||||
@@ -60,6 +60,7 @@ public enum CerberusGhost
|
||||
|
||||
/**
|
||||
* Try to identify if NPC is ghost
|
||||
*
|
||||
* @param npc npc
|
||||
* @return optional ghost
|
||||
*/
|
||||
|
||||
@@ -26,12 +26,12 @@ package net.runelite.client.plugins.chatboxperformance;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.api.events.WidgetPositioned;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetPositionMode;
|
||||
import net.runelite.api.widgets.WidgetSizeMode;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
|
||||
@@ -187,6 +187,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
|
||||
/**
|
||||
* Small hack to prevent plugins checking for specific messages to match
|
||||
*
|
||||
* @param message message
|
||||
* @return message with nbsp
|
||||
*/
|
||||
|
||||
@@ -33,13 +33,11 @@ import java.awt.Color;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Deque;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.ChatLineBuffer;
|
||||
@@ -49,9 +47,7 @@ import net.runelite.api.ClanMemberRank;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.MessageNode;
|
||||
import net.runelite.api.Opcodes;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Script;
|
||||
import net.runelite.api.ScriptID;
|
||||
import net.runelite.api.SpriteID;
|
||||
import net.runelite.api.VarClientStr;
|
||||
@@ -65,10 +61,7 @@ import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.PlayerDespawned;
|
||||
import net.runelite.api.events.PlayerSpawned;
|
||||
import net.runelite.api.events.ScriptCallbackEvent;
|
||||
import net.runelite.api.events.VarClientStrChanged;
|
||||
import net.runelite.api.events.WidgetMenuOptionClicked;
|
||||
import net.runelite.api.widgets.JavaScriptCallback;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
@@ -78,8 +71,6 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.game.ClanManager;
|
||||
import net.runelite.client.game.SpriteManager;
|
||||
import net.runelite.client.menus.MenuManager;
|
||||
import net.runelite.client.menus.WidgetMenuOption;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import static net.runelite.client.ui.JagexColors.CHAT_CLAN_NAME_OPAQUE_BACKGROUND;
|
||||
@@ -120,9 +111,6 @@ public class ClanChatPlugin extends Plugin
|
||||
@Inject
|
||||
private ClientThread clientThread;
|
||||
|
||||
@Inject
|
||||
private MenuManager menuManager;
|
||||
|
||||
private List<String> chats = new ArrayList<>();
|
||||
|
||||
public static CopyOnWriteArrayList<Player> getClanMembers()
|
||||
@@ -139,8 +127,6 @@ public class ClanChatPlugin extends Plugin
|
||||
private Map<String, ClanMemberActivity> activityBuffer = new HashMap<>();
|
||||
private int clanJoinedTick;
|
||||
|
||||
private ConcurrentHashMap<Widget, WidgetMenuOption> ccWidgetMap = new ConcurrentHashMap<Widget, WidgetMenuOption>();
|
||||
|
||||
@Provides
|
||||
ClanChatConfig getConfig(ConfigManager configManager)
|
||||
{
|
||||
@@ -561,13 +547,14 @@ public class ClanChatPlugin extends Plugin
|
||||
private void loadClanChats()
|
||||
{
|
||||
Widget clanChatList = client.getWidget(WidgetInfo.CLAN_CHAT_LIST);
|
||||
clanChatList.setScrollHeight( 14 * chats.size());
|
||||
clanChatList.revalidateScroll();
|
||||
if (clanChatList == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
clanChatList.setScrollHeight(14 * chats.size());
|
||||
clanChatList.revalidateScroll();
|
||||
|
||||
int y = 2;
|
||||
clanChatList.setChildren(null);
|
||||
for (String chat : Lists.reverse(chats))
|
||||
|
||||
@@ -7,7 +7,6 @@ import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.client.game.ClanManager;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
@@ -49,7 +48,8 @@ public class ClanManModeOverlay extends Overlay
|
||||
|
||||
if (textLocation != null)
|
||||
{
|
||||
if (config.getClanAttackableColor().equals(color) && config.ShowBold()) {
|
||||
if (config.getClanAttackableColor().equals(color) && config.ShowBold())
|
||||
{
|
||||
graphics.setFont(FontManager.getRunescapeBoldFont());
|
||||
}
|
||||
OverlayUtil.renderTextLocation(graphics, textLocation, name, color);
|
||||
|
||||
@@ -70,14 +70,16 @@ public class ClanManModePlugin extends Plugin
|
||||
Map<String, Integer> clan = new HashMap<>();
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception {
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(ClanManModeOverlay);
|
||||
overlayManager.add(ClanManModeTileOverlay);
|
||||
overlayManager.add(ClanManModeMinimapOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception {
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
overlayManager.remove(ClanManModeOverlay);
|
||||
overlayManager.remove(ClanManModeTileOverlay);
|
||||
overlayManager.remove(ClanManModeMinimapOverlay);
|
||||
@@ -90,17 +92,21 @@ public class ClanManModePlugin extends Plugin
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged gameStateChanged) {
|
||||
if (gameStateChanged.getGameState() == GameState.LOGIN_SCREEN || gameStateChanged.getGameState() == GameState.HOPPING) {
|
||||
public void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||
{
|
||||
if (gameStateChanged.getGameState() == GameState.LOGIN_SCREEN || gameStateChanged.getGameState() == GameState.HOPPING)
|
||||
{
|
||||
ticks = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event) {
|
||||
public void onGameTick(GameTick event)
|
||||
{
|
||||
ticks++;
|
||||
final Player localPlayer = client.getLocalPlayer();
|
||||
if (!clan.containsKey(localPlayer.getName())) {
|
||||
if (!clan.containsKey(localPlayer.getName()))
|
||||
{
|
||||
clan.put(localPlayer.getName(), localPlayer.getCombatLevel());
|
||||
}
|
||||
WorldPoint a = localPlayer.getWorldLocation();
|
||||
@@ -108,30 +114,38 @@ public class ClanManModePlugin extends Plugin
|
||||
int upperLevel = ((a.getY() - 3520) / 8) + 1;
|
||||
wildernessLevel = a.getY() > 6400 ? underLevel : upperLevel;
|
||||
inwildy = client.getVar(Varbits.IN_WILDERNESS);
|
||||
if (clan.size() > 0) {
|
||||
if (clan.size() > 0)
|
||||
{
|
||||
clanmin = Collections.min(clan.values());
|
||||
clanmax = Collections.max(clan.values());
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event) {
|
||||
if (!config.hideAtkOpt()) {
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
if (!config.hideAtkOpt())
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (client.getGameState() != GameState.LOGGED_IN) {
|
||||
if (client.getGameState() != GameState.LOGGED_IN)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final String option = Text.removeTags(event.getOption()).toLowerCase();
|
||||
|
||||
if (option.equals("attack")) {
|
||||
if (option.equals("attack"))
|
||||
{
|
||||
final Pattern ppattern = Pattern.compile("<col=ffffff>(.+?)<col=");
|
||||
final Matcher pmatch = ppattern.matcher(event.getTarget());
|
||||
|
||||
if (pmatch.find() && pmatch.matches()) {
|
||||
if (pmatch.group(1) != null) {
|
||||
if (clan.containsKey(pmatch.group(1).replace(" ", " "))) {
|
||||
if (pmatch.find() && pmatch.matches())
|
||||
{
|
||||
if (pmatch.group(1) != null)
|
||||
{
|
||||
if (clan.containsKey(pmatch.group(1).replace(" ", " ")))
|
||||
{
|
||||
MenuEntry[] entries = client.getMenuEntries();
|
||||
entries = ArrayUtils.removeElement(entries, entries[entries.length - 1]);
|
||||
client.setMenuEntries(entries);
|
||||
|
||||
@@ -39,52 +39,70 @@ public class ClanManModeService
|
||||
int selfmax = localPlayer.getCombatLevel() + plugin.wildernessLevel;
|
||||
for (Player player : client.getPlayers())
|
||||
{
|
||||
if (player == null || player.getName() == null) {
|
||||
if (player == null || player.getName() == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (player == localPlayer) {
|
||||
if (player == localPlayer)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
boolean isClanMember = player.isClanMember();
|
||||
Actor interacting = player.getInteracting();
|
||||
Player interactor = null;
|
||||
if (interacting != null && !(interacting instanceof NPC)) {
|
||||
if (interacting != null && !(interacting instanceof NPC))
|
||||
{
|
||||
interactor = ((Player) interacting);
|
||||
}
|
||||
|
||||
if (config.showAttackers()) {
|
||||
if (interactor != null) {
|
||||
if (interactor.getName().equals(localName)) {
|
||||
if (config.showAttackers())
|
||||
{
|
||||
if (interactor != null)
|
||||
{
|
||||
if (interactor.getName().equals(localName))
|
||||
{
|
||||
consumer.accept(player, config.getAttackerColor());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (plugin.inwildy == 1) {
|
||||
if (isClanMember) {
|
||||
if (!plugin.clan.containsKey(player.getName())) {
|
||||
if (plugin.inwildy == 1)
|
||||
{
|
||||
if (isClanMember)
|
||||
{
|
||||
if (!plugin.clan.containsKey(player.getName()))
|
||||
{
|
||||
plugin.clan.put(player.getName(), player.getCombatLevel());
|
||||
}
|
||||
if (config.highlightAttacked()) {
|
||||
if (interactor != null) {
|
||||
if (!interactors.containsKey(interactor.getName())) {
|
||||
if (config.highlightAttacked())
|
||||
{
|
||||
if (interactor != null)
|
||||
{
|
||||
if (!interactors.containsKey(interactor.getName()))
|
||||
{
|
||||
WorldPoint a = interactor.getWorldLocation();
|
||||
int underLevel = ((a.getY() - 9920) / 8) + 1;
|
||||
int upperLevel = ((a.getY() - 3520) / 8) + 1;
|
||||
int wildernessLevel = a.getY() > 6400 ? underLevel : upperLevel;
|
||||
int wildydiff = plugin.wildernessLevel - wildernessLevel;
|
||||
if (wildydiff < 0) {
|
||||
if (wildydiff < 0)
|
||||
{
|
||||
wildydiff = 0;
|
||||
}
|
||||
if (config.CalcSelfCB()) {
|
||||
if (interacting.getCombatLevel() <= selfmax && interacting.getCombatLevel() - wildydiff >= selfmin && !interactor.isClanMember()) {
|
||||
if (config.CalcSelfCB())
|
||||
{
|
||||
if (interacting.getCombatLevel() <= selfmax && interacting.getCombatLevel() - wildydiff >= selfmin && !interactor.isClanMember())
|
||||
{
|
||||
interactors.put(interactor.getName(), player.getName());
|
||||
consumer.accept(interactor, config.getClanAttackableColor());
|
||||
}
|
||||
} else {
|
||||
if (interacting.getCombatLevel() <= maxatk && interacting.getCombatLevel() - wildydiff >= minatk && !interactor.isClanMember()) {
|
||||
}
|
||||
else
|
||||
{
|
||||
if (interacting.getCombatLevel() <= maxatk && interacting.getCombatLevel() - wildydiff >= minatk && !interactor.isClanMember())
|
||||
{
|
||||
interactors.put(interactor.getName(), player.getName());
|
||||
consumer.accept(interactor, config.getClanAttackableColor());
|
||||
}
|
||||
@@ -92,43 +110,61 @@ public class ClanManModeService
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (config.PersistentClan()) {
|
||||
if (plugin.clan.containsKey(player.getName())) {
|
||||
}
|
||||
else
|
||||
{
|
||||
if (config.PersistentClan())
|
||||
{
|
||||
if (plugin.clan.containsKey(player.getName()))
|
||||
{
|
||||
consumer.accept(player, config.getClanMemberColor());
|
||||
}
|
||||
}
|
||||
if (config.highlightAttacked()) {
|
||||
if (interactors.containsKey(player.getName())) {
|
||||
if (config.highlightAttacked())
|
||||
{
|
||||
if (interactors.containsKey(player.getName()))
|
||||
{
|
||||
String attackername = interactors.get(player.getName());
|
||||
boolean found = false;
|
||||
for (Player attacker : client.getPlayers()) {
|
||||
if (attacker == null || attacker.getName() == null) {
|
||||
for (Player attacker : client.getPlayers())
|
||||
{
|
||||
if (attacker == null || attacker.getName() == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (attacker.getName().equals(attackername)) {
|
||||
if (attacker.getName().equals(attackername))
|
||||
{
|
||||
found = true;
|
||||
Actor ainteract = attacker.getInteracting();
|
||||
if (ainteract != null) {
|
||||
if (ainteract.getName().equals(player.getName())) {
|
||||
if (ainteract != null)
|
||||
{
|
||||
if (ainteract.getName().equals(player.getName()))
|
||||
{
|
||||
consumer.accept(player, config.getClanAttackableColor());
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
interactors.remove(player.getName());
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
interactors.remove(player.getName());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
if (!found)
|
||||
{
|
||||
interactors.remove(player.getName());
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (config.highlightAttackable()) {
|
||||
if ((config.hideAttackable() && plugin.ticks >= config.hideTime()) || plugin.clan.containsKey(player.getName())) {
|
||||
if (config.highlightAttackable())
|
||||
{
|
||||
if ((config.hideAttackable() && plugin.ticks >= config.hideTime()) || plugin.clan.containsKey(player.getName()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
WorldPoint a = player.getWorldLocation();
|
||||
@@ -136,15 +172,21 @@ public class ClanManModeService
|
||||
int upperLevel = ((a.getY() - 3520) / 8) + 1;
|
||||
int wildernessLevel = a.getY() > 6400 ? underLevel : upperLevel;
|
||||
int wildydiff = plugin.wildernessLevel - wildernessLevel;
|
||||
if (wildydiff < 0) {
|
||||
if (wildydiff < 0)
|
||||
{
|
||||
wildydiff = 0;
|
||||
}
|
||||
if (config.CalcSelfCB()) {
|
||||
if (player.getCombatLevel() <= selfmax && player.getCombatLevel() - wildydiff >= selfmin) {
|
||||
if (config.CalcSelfCB())
|
||||
{
|
||||
if (player.getCombatLevel() <= selfmax && player.getCombatLevel() - wildydiff >= selfmin)
|
||||
{
|
||||
consumer.accept(player, config.getAttackableColor());
|
||||
}
|
||||
} else {
|
||||
if (player.getCombatLevel() <= maxatk && player.getCombatLevel() - wildydiff >= minatk) {
|
||||
}
|
||||
else
|
||||
{
|
||||
if (player.getCombatLevel() <= maxatk && player.getCombatLevel() - wildydiff >= minatk)
|
||||
{
|
||||
consumer.accept(player, config.getAttackableColor());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,56 @@ import lombok.Getter;
|
||||
import net.runelite.api.NPC;
|
||||
import static net.runelite.api.NullObjectID.NULL_1293;
|
||||
import net.runelite.api.ObjectComposition;
|
||||
import static net.runelite.api.ObjectID.*;
|
||||
import static net.runelite.api.ObjectID.BOOKCASE_12539;
|
||||
import static net.runelite.api.ObjectID.BOOKCASE_380;
|
||||
import static net.runelite.api.ObjectID.BOOKCASE_394;
|
||||
import static net.runelite.api.ObjectID.BOOKCASE_9523;
|
||||
import static net.runelite.api.ObjectID.BOXES;
|
||||
import static net.runelite.api.ObjectID.BOXES_360;
|
||||
import static net.runelite.api.ObjectID.BOXES_361;
|
||||
import static net.runelite.api.ObjectID.BOXES_3686;
|
||||
import static net.runelite.api.ObjectID.BOXES_5111;
|
||||
import static net.runelite.api.ObjectID.BOXES_6176;
|
||||
import static net.runelite.api.ObjectID.BUCKET_9568;
|
||||
import static net.runelite.api.ObjectID.BUSH_2357;
|
||||
import static net.runelite.api.ObjectID.CLOSED_CHEST_25592;
|
||||
import static net.runelite.api.ObjectID.CLOSED_CHEST_375;
|
||||
import static net.runelite.api.ObjectID.CLOSED_CHEST_5108;
|
||||
import static net.runelite.api.ObjectID.COFFIN;
|
||||
import static net.runelite.api.ObjectID.CRATES_11600;
|
||||
import static net.runelite.api.ObjectID.CRATES_24088;
|
||||
import static net.runelite.api.ObjectID.CRATE_11485;
|
||||
import static net.runelite.api.ObjectID.CRATE_12963;
|
||||
import static net.runelite.api.ObjectID.CRATE_18204;
|
||||
import static net.runelite.api.ObjectID.CRATE_18506;
|
||||
import static net.runelite.api.ObjectID.CRATE_18889;
|
||||
import static net.runelite.api.ObjectID.CRATE_24344;
|
||||
import static net.runelite.api.ObjectID.CRATE_25775;
|
||||
import static net.runelite.api.ObjectID.CRATE_26635;
|
||||
import static net.runelite.api.ObjectID.CRATE_27532;
|
||||
import static net.runelite.api.ObjectID.CRATE_27533;
|
||||
import static net.runelite.api.ObjectID.CRATE_354;
|
||||
import static net.runelite.api.ObjectID.CRATE_355;
|
||||
import static net.runelite.api.ObjectID.CRATE_356;
|
||||
import static net.runelite.api.ObjectID.CRATE_357;
|
||||
import static net.runelite.api.ObjectID.CRATE_358;
|
||||
import static net.runelite.api.ObjectID.CRATE_366;
|
||||
import static net.runelite.api.ObjectID.CRATE_5106;
|
||||
import static net.runelite.api.ObjectID.CRATE_5107;
|
||||
import static net.runelite.api.ObjectID.CRATE_5113;
|
||||
import static net.runelite.api.ObjectID.CRATE_9534;
|
||||
import static net.runelite.api.ObjectID.DRAWERS;
|
||||
import static net.runelite.api.ObjectID.DRAWERS_25766;
|
||||
import static net.runelite.api.ObjectID.DRAWERS_350;
|
||||
import static net.runelite.api.ObjectID.DRAWERS_352;
|
||||
import static net.runelite.api.ObjectID.DRAWERS_5618;
|
||||
import static net.runelite.api.ObjectID.DRAWERS_7194;
|
||||
import static net.runelite.api.ObjectID.HAYSTACK;
|
||||
import static net.runelite.api.ObjectID.JUNA;
|
||||
import static net.runelite.api.ObjectID.MINE_CART_6045;
|
||||
import static net.runelite.api.ObjectID.STONES_26633;
|
||||
import static net.runelite.api.ObjectID.WARDROBE_5622;
|
||||
import static net.runelite.api.ObjectID.WHEELBARROW_9625;
|
||||
import net.runelite.api.TileObject;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
|
||||
@@ -31,11 +31,395 @@ import java.util.Set;
|
||||
import javax.annotation.Nonnull;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.EquipmentInventorySlot;
|
||||
import static net.runelite.api.EquipmentInventorySlot.*;
|
||||
import static net.runelite.api.EquipmentInventorySlot.AMMO;
|
||||
import static net.runelite.api.EquipmentInventorySlot.AMULET;
|
||||
import static net.runelite.api.EquipmentInventorySlot.BODY;
|
||||
import static net.runelite.api.EquipmentInventorySlot.BOOTS;
|
||||
import static net.runelite.api.EquipmentInventorySlot.CAPE;
|
||||
import static net.runelite.api.EquipmentInventorySlot.GLOVES;
|
||||
import static net.runelite.api.EquipmentInventorySlot.HEAD;
|
||||
import static net.runelite.api.EquipmentInventorySlot.LEGS;
|
||||
import static net.runelite.api.EquipmentInventorySlot.RING;
|
||||
import static net.runelite.api.EquipmentInventorySlot.SHIELD;
|
||||
import static net.runelite.api.EquipmentInventorySlot.WEAPON;
|
||||
import net.runelite.api.Item;
|
||||
import net.runelite.api.ItemID;
|
||||
import static net.runelite.api.ItemID.*;
|
||||
import static net.runelite.api.ItemID.ABYSSAL_WHIP;
|
||||
import static net.runelite.api.ItemID.ADAMANT_2H_SWORD;
|
||||
import static net.runelite.api.ItemID.ADAMANT_BOOTS;
|
||||
import static net.runelite.api.ItemID.ADAMANT_DAGGER;
|
||||
import static net.runelite.api.ItemID.ADAMANT_FULL_HELM;
|
||||
import static net.runelite.api.ItemID.ADAMANT_HALBERD;
|
||||
import static net.runelite.api.ItemID.ADAMANT_MED_HELM;
|
||||
import static net.runelite.api.ItemID.ADAMANT_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.ADAMANT_PLATELEGS;
|
||||
import static net.runelite.api.ItemID.ADAMANT_PLATESKIRT;
|
||||
import static net.runelite.api.ItemID.ADAMANT_SQ_SHIELD;
|
||||
import static net.runelite.api.ItemID.ADAMANT_SWORD;
|
||||
import static net.runelite.api.ItemID.ADAMANT_WARHAMMER;
|
||||
import static net.runelite.api.ItemID.AHRIMS_HOOD_0;
|
||||
import static net.runelite.api.ItemID.AHRIMS_HOOD_100;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBESKIRT_0;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBESKIRT_100;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBETOP_0;
|
||||
import static net.runelite.api.ItemID.AHRIMS_ROBETOP_100;
|
||||
import static net.runelite.api.ItemID.AHRIMS_STAFF_0;
|
||||
import static net.runelite.api.ItemID.AHRIMS_STAFF_100;
|
||||
import static net.runelite.api.ItemID.AIR_TIARA;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY1;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY2;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY3;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY4;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY5;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_GLORY6;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_POWER;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_STRENGTH;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_THE_DAMNED;
|
||||
import static net.runelite.api.ItemID.AMULET_OF_THE_DAMNED_FULL;
|
||||
import static net.runelite.api.ItemID.ANCIENT_CROZIER;
|
||||
import static net.runelite.api.ItemID.ANCIENT_MITRE;
|
||||
import static net.runelite.api.ItemID.ANCIENT_STOLE;
|
||||
import static net.runelite.api.ItemID.ARCLIGHT;
|
||||
import static net.runelite.api.ItemID.ARMADYL_CROZIER;
|
||||
import static net.runelite.api.ItemID.ARMADYL_MITRE;
|
||||
import static net.runelite.api.ItemID.ARMADYL_STOLE;
|
||||
import static net.runelite.api.ItemID.BANDOS_BOOTS;
|
||||
import static net.runelite.api.ItemID.BANDOS_CLOAK;
|
||||
import static net.runelite.api.ItemID.BANDOS_CROZIER;
|
||||
import static net.runelite.api.ItemID.BANDOS_GODSWORD;
|
||||
import static net.runelite.api.ItemID.BANDOS_MITRE;
|
||||
import static net.runelite.api.ItemID.BANDOS_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.BANDOS_STOLE;
|
||||
import static net.runelite.api.ItemID.BARROWS_GLOVES;
|
||||
import static net.runelite.api.ItemID.BLACK_AXE;
|
||||
import static net.runelite.api.ItemID.BLACK_BOATER;
|
||||
import static net.runelite.api.ItemID.BLACK_CAPE;
|
||||
import static net.runelite.api.ItemID.BLACK_DHIDE_BODY;
|
||||
import static net.runelite.api.ItemID.BLACK_DHIDE_CHAPS;
|
||||
import static net.runelite.api.ItemID.BLACK_DHIDE_VAMB;
|
||||
import static net.runelite.api.ItemID.BLACK_DRAGON_MASK;
|
||||
import static net.runelite.api.ItemID.BLACK_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.BLACK_SALAMANDER;
|
||||
import static net.runelite.api.ItemID.BLACK_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.BLACK_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.BLUE_BOATER;
|
||||
import static net.runelite.api.ItemID.BLUE_BOOTS;
|
||||
import static net.runelite.api.ItemID.BLUE_DHIDE_BODY;
|
||||
import static net.runelite.api.ItemID.BLUE_DHIDE_CHAPS;
|
||||
import static net.runelite.api.ItemID.BLUE_DHIDE_VAMB;
|
||||
import static net.runelite.api.ItemID.BLUE_ROBE_TOP;
|
||||
import static net.runelite.api.ItemID.BLUE_WIZARD_HAT;
|
||||
import static net.runelite.api.ItemID.BLUE_WIZARD_ROBE;
|
||||
import static net.runelite.api.ItemID.BOBS_PURPLE_SHIRT;
|
||||
import static net.runelite.api.ItemID.BOBS_RED_SHIRT;
|
||||
import static net.runelite.api.ItemID.BODY_TIARA;
|
||||
import static net.runelite.api.ItemID.BONE_DAGGER;
|
||||
import static net.runelite.api.ItemID.BONE_SPEAR;
|
||||
import static net.runelite.api.ItemID.BOOK_OF_BALANCE;
|
||||
import static net.runelite.api.ItemID.BOOK_OF_DARKNESS;
|
||||
import static net.runelite.api.ItemID.BOOK_OF_LAW;
|
||||
import static net.runelite.api.ItemID.BOOK_OF_WAR;
|
||||
import static net.runelite.api.ItemID.BRINE_SABRE;
|
||||
import static net.runelite.api.ItemID.BRONZE_2H_SWORD;
|
||||
import static net.runelite.api.ItemID.BRONZE_AXE;
|
||||
import static net.runelite.api.ItemID.BRONZE_CHAINBODY;
|
||||
import static net.runelite.api.ItemID.BRONZE_DAGGER;
|
||||
import static net.runelite.api.ItemID.BRONZE_FULL_HELM;
|
||||
import static net.runelite.api.ItemID.BRONZE_PLATELEGS;
|
||||
import static net.runelite.api.ItemID.BRONZE_SPEAR;
|
||||
import static net.runelite.api.ItemID.BRONZE_SQ_SHIELD;
|
||||
import static net.runelite.api.ItemID.BROWN_APRON;
|
||||
import static net.runelite.api.ItemID.BROWN_HEADBAND;
|
||||
import static net.runelite.api.ItemID.BRUISE_BLUE_SNELM_3343;
|
||||
import static net.runelite.api.ItemID.CAPE_OF_LEGENDS;
|
||||
import static net.runelite.api.ItemID.CASTLE_WARS_BRACELET1;
|
||||
import static net.runelite.api.ItemID.CASTLE_WARS_BRACELET3;
|
||||
import static net.runelite.api.ItemID.CHEFS_HAT;
|
||||
import static net.runelite.api.ItemID.CLIMBING_BOOTS;
|
||||
import static net.runelite.api.ItemID.COIF;
|
||||
import static net.runelite.api.ItemID.COMBAT_BRACELET;
|
||||
import static net.runelite.api.ItemID.COMBAT_BRACELET4;
|
||||
import static net.runelite.api.ItemID.CREAM_ROBE_TOP;
|
||||
import static net.runelite.api.ItemID.CRYSTAL_BOW_110_I;
|
||||
import static net.runelite.api.ItemID.CRYSTAL_BOW_210_I;
|
||||
import static net.runelite.api.ItemID.CRYSTAL_BOW_310_I;
|
||||
import static net.runelite.api.ItemID.CRYSTAL_BOW_410_I;
|
||||
import static net.runelite.api.ItemID.CRYSTAL_BOW_510_I;
|
||||
import static net.runelite.api.ItemID.CRYSTAL_BOW_610_I;
|
||||
import static net.runelite.api.ItemID.CRYSTAL_BOW_710_I;
|
||||
import static net.runelite.api.ItemID.CRYSTAL_BOW_810_I;
|
||||
import static net.runelite.api.ItemID.CRYSTAL_BOW_910_I;
|
||||
import static net.runelite.api.ItemID.CRYSTAL_BOW_FULL_I;
|
||||
import static net.runelite.api.ItemID.DEATH_TIARA;
|
||||
import static net.runelite.api.ItemID.DESERT_SHIRT;
|
||||
import static net.runelite.api.ItemID.DHAROKS_GREATAXE_0;
|
||||
import static net.runelite.api.ItemID.DHAROKS_GREATAXE_100;
|
||||
import static net.runelite.api.ItemID.DHAROKS_HELM_0;
|
||||
import static net.runelite.api.ItemID.DHAROKS_HELM_100;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATEBODY_0;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATEBODY_100;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATELEGS_0;
|
||||
import static net.runelite.api.ItemID.DHAROKS_PLATELEGS_100;
|
||||
import static net.runelite.api.ItemID.DIAMOND_BRACELET;
|
||||
import static net.runelite.api.ItemID.DIAMOND_RING;
|
||||
import static net.runelite.api.ItemID.DRAGONSTONE_AMULET;
|
||||
import static net.runelite.api.ItemID.DRAGONSTONE_RING;
|
||||
import static net.runelite.api.ItemID.DRAGON_2H_SWORD;
|
||||
import static net.runelite.api.ItemID.DRAGON_AXE;
|
||||
import static net.runelite.api.ItemID.DRAGON_BATTLEAXE;
|
||||
import static net.runelite.api.ItemID.DRAGON_BOOTS;
|
||||
import static net.runelite.api.ItemID.DRAGON_CHAINBODY_3140;
|
||||
import static net.runelite.api.ItemID.DRAGON_DEFENDER;
|
||||
import static net.runelite.api.ItemID.DRAGON_MED_HELM;
|
||||
import static net.runelite.api.ItemID.DRAGON_NECKLACE;
|
||||
import static net.runelite.api.ItemID.DRAGON_PICKAXE;
|
||||
import static net.runelite.api.ItemID.DRAGON_PICKAXE_12797;
|
||||
import static net.runelite.api.ItemID.DRAGON_PLATESKIRT;
|
||||
import static net.runelite.api.ItemID.DRAGON_SPEAR;
|
||||
import static net.runelite.api.ItemID.DRAGON_SQ_SHIELD;
|
||||
import static net.runelite.api.ItemID.ELEMENTAL_SHIELD;
|
||||
import static net.runelite.api.ItemID.EMERALD_AMULET;
|
||||
import static net.runelite.api.ItemID.EMERALD_RING;
|
||||
import static net.runelite.api.ItemID.FIRE_BATTLESTAFF;
|
||||
import static net.runelite.api.ItemID.FIRE_CAPE;
|
||||
import static net.runelite.api.ItemID.FIRE_MAX_CAPE;
|
||||
import static net.runelite.api.ItemID.FLARED_TROUSERS;
|
||||
import static net.runelite.api.ItemID.FROZEN_ABYSSAL_WHIP;
|
||||
import static net.runelite.api.ItemID.GOLD_NECKLACE;
|
||||
import static net.runelite.api.ItemID.GOLD_RING;
|
||||
import static net.runelite.api.ItemID.GRANITE_SHIELD;
|
||||
import static net.runelite.api.ItemID.GREEN_BOATER;
|
||||
import static net.runelite.api.ItemID.GREEN_BOOTS;
|
||||
import static net.runelite.api.ItemID.GREEN_DHIDE_BODY;
|
||||
import static net.runelite.api.ItemID.GREEN_DHIDE_CHAPS;
|
||||
import static net.runelite.api.ItemID.GREEN_HAT;
|
||||
import static net.runelite.api.ItemID.GREEN_HEADBAND;
|
||||
import static net.runelite.api.ItemID.GREEN_ROBE_BOTTOMS;
|
||||
import static net.runelite.api.ItemID.GREEN_ROBE_TOP;
|
||||
import static net.runelite.api.ItemID.GREEN_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.GREEN_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.GUTHANS_CHAINSKIRT_0;
|
||||
import static net.runelite.api.ItemID.GUTHANS_CHAINSKIRT_100;
|
||||
import static net.runelite.api.ItemID.GUTHANS_HELM_0;
|
||||
import static net.runelite.api.ItemID.GUTHANS_HELM_100;
|
||||
import static net.runelite.api.ItemID.GUTHANS_PLATEBODY_0;
|
||||
import static net.runelite.api.ItemID.GUTHANS_PLATEBODY_100;
|
||||
import static net.runelite.api.ItemID.GUTHANS_WARSPEAR_0;
|
||||
import static net.runelite.api.ItemID.GUTHANS_WARSPEAR_100;
|
||||
import static net.runelite.api.ItemID.GUTHIX_MITRE;
|
||||
import static net.runelite.api.ItemID.GUTHIX_STOLE;
|
||||
import static net.runelite.api.ItemID.HAM_BOOTS;
|
||||
import static net.runelite.api.ItemID.HAM_ROBE;
|
||||
import static net.runelite.api.ItemID.HARDLEATHER_BODY;
|
||||
import static net.runelite.api.ItemID.HELM_OF_NEITIZNOT;
|
||||
import static net.runelite.api.ItemID.HOLY_BOOK;
|
||||
import static net.runelite.api.ItemID.HYDRA_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.HYDRA_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.IBANS_STAFF;
|
||||
import static net.runelite.api.ItemID.IBANS_STAFF_U;
|
||||
import static net.runelite.api.ItemID.INFERNAL_PICKAXE;
|
||||
import static net.runelite.api.ItemID.INFERNAL_PICKAXE_UNCHARGED;
|
||||
import static net.runelite.api.ItemID.IRON_2H_SWORD;
|
||||
import static net.runelite.api.ItemID.IRON_CHAINBODY;
|
||||
import static net.runelite.api.ItemID.IRON_FULL_HELM;
|
||||
import static net.runelite.api.ItemID.IRON_KITESHIELD;
|
||||
import static net.runelite.api.ItemID.IRON_MED_HELM;
|
||||
import static net.runelite.api.ItemID.IRON_PICKAXE;
|
||||
import static net.runelite.api.ItemID.IRON_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.IRON_PLATELEGS;
|
||||
import static net.runelite.api.ItemID.IRON_PLATESKIRT;
|
||||
import static net.runelite.api.ItemID.IRON_SCIMITAR;
|
||||
import static net.runelite.api.ItemID.IRON_WARHAMMER;
|
||||
import static net.runelite.api.ItemID.KARILS_COIF_0;
|
||||
import static net.runelite.api.ItemID.KARILS_COIF_100;
|
||||
import static net.runelite.api.ItemID.KARILS_CROSSBOW_0;
|
||||
import static net.runelite.api.ItemID.KARILS_CROSSBOW_100;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERSKIRT_0;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERSKIRT_100;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERTOP_0;
|
||||
import static net.runelite.api.ItemID.KARILS_LEATHERTOP_100;
|
||||
import static net.runelite.api.ItemID.LAVA_BATTLESTAFF;
|
||||
import static net.runelite.api.ItemID.LEATHER_BOOTS;
|
||||
import static net.runelite.api.ItemID.LEATHER_CHAPS;
|
||||
import static net.runelite.api.ItemID.LEATHER_COWL;
|
||||
import static net.runelite.api.ItemID.LEATHER_GLOVES;
|
||||
import static net.runelite.api.ItemID.LOCKPICK;
|
||||
import static net.runelite.api.ItemID.LONGBOW;
|
||||
import static net.runelite.api.ItemID.MAGIC_LONGBOW;
|
||||
import static net.runelite.api.ItemID.MAPLE_LONGBOW;
|
||||
import static net.runelite.api.ItemID.MAPLE_SHORTBOW;
|
||||
import static net.runelite.api.ItemID.MENAPHITE_PURPLE_HAT;
|
||||
import static net.runelite.api.ItemID.MENAPHITE_PURPLE_KILT;
|
||||
import static net.runelite.api.ItemID.MENAPHITE_PURPLE_ROBE;
|
||||
import static net.runelite.api.ItemID.MENAPHITE_PURPLE_TOP;
|
||||
import static net.runelite.api.ItemID.MENAPHITE_RED_HAT;
|
||||
import static net.runelite.api.ItemID.MENAPHITE_RED_KILT;
|
||||
import static net.runelite.api.ItemID.MENAPHITE_RED_ROBE;
|
||||
import static net.runelite.api.ItemID.MENAPHITE_RED_TOP;
|
||||
import static net.runelite.api.ItemID.MIND_SHIELD;
|
||||
import static net.runelite.api.ItemID.MITHRIL_BOOTS;
|
||||
import static net.runelite.api.ItemID.MITHRIL_CHAINBODY;
|
||||
import static net.runelite.api.ItemID.MITHRIL_FULL_HELM;
|
||||
import static net.runelite.api.ItemID.MITHRIL_MED_HELM;
|
||||
import static net.runelite.api.ItemID.MITHRIL_PICKAXE;
|
||||
import static net.runelite.api.ItemID.MITHRIL_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.MITHRIL_PLATELEGS;
|
||||
import static net.runelite.api.ItemID.MITHRIL_PLATESKIRT;
|
||||
import static net.runelite.api.ItemID.MITHRIL_SCIMITAR;
|
||||
import static net.runelite.api.ItemID.MYSTIC_FIRE_STAFF;
|
||||
import static net.runelite.api.ItemID.MYSTIC_GLOVES;
|
||||
import static net.runelite.api.ItemID.MYSTIC_HAT;
|
||||
import static net.runelite.api.ItemID.MYSTIC_ROBE_BOTTOM;
|
||||
import static net.runelite.api.ItemID.MYSTIC_ROBE_BOTTOM_DARK;
|
||||
import static net.runelite.api.ItemID.MYSTIC_ROBE_TOP;
|
||||
import static net.runelite.api.ItemID.MYSTIC_ROBE_TOP_DARK;
|
||||
import static net.runelite.api.ItemID.NEW_CRYSTAL_BOW_I;
|
||||
import static net.runelite.api.ItemID.OAK_LONGBOW;
|
||||
import static net.runelite.api.ItemID.OAK_SHORTBOW;
|
||||
import static net.runelite.api.ItemID.OBSIDIAN_CAPE;
|
||||
import static net.runelite.api.ItemID.ORANGE_BOATER;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_1;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_2;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_3;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_4;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_5;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_6;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_7;
|
||||
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_8;
|
||||
import static net.runelite.api.ItemID.PINK_BOATER;
|
||||
import static net.runelite.api.ItemID.PINK_ROBE_TOP;
|
||||
import static net.runelite.api.ItemID.PINK_SKIRT;
|
||||
import static net.runelite.api.ItemID.PIRATE_BANDANA;
|
||||
import static net.runelite.api.ItemID.PIRATE_BANDANA_7124;
|
||||
import static net.runelite.api.ItemID.PIRATE_BANDANA_7130;
|
||||
import static net.runelite.api.ItemID.PIRATE_BANDANA_7136;
|
||||
import static net.runelite.api.ItemID.PROSELYTE_HAUBERK;
|
||||
import static net.runelite.api.ItemID.PURPLE_BOATER;
|
||||
import static net.runelite.api.ItemID.PURPLE_GLOVES;
|
||||
import static net.runelite.api.ItemID.PURPLE_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.PURPLE_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.RED_BOATER;
|
||||
import static net.runelite.api.ItemID.RED_CAPE;
|
||||
import static net.runelite.api.ItemID.RED_DHIDE_CHAPS;
|
||||
import static net.runelite.api.ItemID.RED_HEADBAND;
|
||||
import static net.runelite.api.ItemID.RED_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.RED_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING1;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING2;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING3;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING4;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING5;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING6;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING7;
|
||||
import static net.runelite.api.ItemID.RING_OF_DUELING8;
|
||||
import static net.runelite.api.ItemID.RING_OF_FORGING;
|
||||
import static net.runelite.api.ItemID.RING_OF_LIFE;
|
||||
import static net.runelite.api.ItemID.RING_OF_VISIBILITY;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_1;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_2;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_3;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_4;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_5;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I1;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I2;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I3;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I4;
|
||||
import static net.runelite.api.ItemID.RING_OF_WEALTH_I5;
|
||||
import static net.runelite.api.ItemID.ROLLING_PIN;
|
||||
import static net.runelite.api.ItemID.RUBY_AMULET;
|
||||
import static net.runelite.api.ItemID.RUBY_RING;
|
||||
import static net.runelite.api.ItemID.RUNE_AXE;
|
||||
import static net.runelite.api.ItemID.RUNE_BOOTS;
|
||||
import static net.runelite.api.ItemID.RUNE_CROSSBOW;
|
||||
import static net.runelite.api.ItemID.RUNE_FULL_HELM;
|
||||
import static net.runelite.api.ItemID.RUNE_HALBERD;
|
||||
import static net.runelite.api.ItemID.RUNE_HELM_H1;
|
||||
import static net.runelite.api.ItemID.RUNE_HELM_H5;
|
||||
import static net.runelite.api.ItemID.RUNE_KITESHIELD;
|
||||
import static net.runelite.api.ItemID.RUNE_LONGSWORD;
|
||||
import static net.runelite.api.ItemID.RUNE_PICKAXE;
|
||||
import static net.runelite.api.ItemID.RUNE_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.RUNE_PLATELEGS;
|
||||
import static net.runelite.api.ItemID.RUNE_PLATESKIRT;
|
||||
import static net.runelite.api.ItemID.RUNE_SHIELD_H1;
|
||||
import static net.runelite.api.ItemID.RUNE_SHIELD_H2;
|
||||
import static net.runelite.api.ItemID.RUNE_SHIELD_H3;
|
||||
import static net.runelite.api.ItemID.RUNE_SHIELD_H4;
|
||||
import static net.runelite.api.ItemID.RUNE_SHIELD_H5;
|
||||
import static net.runelite.api.ItemID.RUNE_SPEAR;
|
||||
import static net.runelite.api.ItemID.RUNE_WARHAMMER;
|
||||
import static net.runelite.api.ItemID.SAPPHIRE_AMULET;
|
||||
import static net.runelite.api.ItemID.SAPPHIRE_NECKLACE;
|
||||
import static net.runelite.api.ItemID.SAPPHIRE_RING;
|
||||
import static net.runelite.api.ItemID.SARADOMIN_CROZIER;
|
||||
import static net.runelite.api.ItemID.SARADOMIN_MITRE;
|
||||
import static net.runelite.api.ItemID.SARADOMIN_STOLE;
|
||||
import static net.runelite.api.ItemID.SEERCULL;
|
||||
import static net.runelite.api.ItemID.SHADOW_SWORD;
|
||||
import static net.runelite.api.ItemID.SILVER_SICKLE;
|
||||
import static net.runelite.api.ItemID.SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.SLED_4084;
|
||||
import static net.runelite.api.ItemID.SNAKESKIN_BOOTS;
|
||||
import static net.runelite.api.ItemID.SNAKESKIN_CHAPS;
|
||||
import static net.runelite.api.ItemID.SPINED_CHAPS;
|
||||
import static net.runelite.api.ItemID.SPLITBARK_BODY;
|
||||
import static net.runelite.api.ItemID.SPLITBARK_LEGS;
|
||||
import static net.runelite.api.ItemID.SPOTTED_CAPE;
|
||||
import static net.runelite.api.ItemID.SPOTTED_CAPE_10073;
|
||||
import static net.runelite.api.ItemID.STAFF;
|
||||
import static net.runelite.api.ItemID.STAFF_OF_AIR;
|
||||
import static net.runelite.api.ItemID.STAFF_OF_WATER;
|
||||
import static net.runelite.api.ItemID.STEEL_AXE;
|
||||
import static net.runelite.api.ItemID.STEEL_FULL_HELM;
|
||||
import static net.runelite.api.ItemID.STEEL_KITESHIELD;
|
||||
import static net.runelite.api.ItemID.STEEL_LONGSWORD;
|
||||
import static net.runelite.api.ItemID.STEEL_MACE;
|
||||
import static net.runelite.api.ItemID.STEEL_MED_HELM;
|
||||
import static net.runelite.api.ItemID.STEEL_PICKAXE;
|
||||
import static net.runelite.api.ItemID.STEEL_PLATEBODY;
|
||||
import static net.runelite.api.ItemID.STEEL_PLATESKIRT;
|
||||
import static net.runelite.api.ItemID.STEEL_SQ_SHIELD;
|
||||
import static net.runelite.api.ItemID.STUDDED_BODY;
|
||||
import static net.runelite.api.ItemID.STUDDED_CHAPS;
|
||||
import static net.runelite.api.ItemID.TEAM1_CAPE;
|
||||
import static net.runelite.api.ItemID.TEAM50_CAPE;
|
||||
import static net.runelite.api.ItemID.TIARA;
|
||||
import static net.runelite.api.ItemID.TOKTZKETXIL;
|
||||
import static net.runelite.api.ItemID.TOKTZXILUL;
|
||||
import static net.runelite.api.ItemID.TORAGS_HAMMERS_0;
|
||||
import static net.runelite.api.ItemID.TORAGS_HAMMERS_100;
|
||||
import static net.runelite.api.ItemID.TORAGS_HELM_0;
|
||||
import static net.runelite.api.ItemID.TORAGS_HELM_100;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATEBODY_0;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATEBODY_100;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATELEGS_0;
|
||||
import static net.runelite.api.ItemID.TORAGS_PLATELEGS_100;
|
||||
import static net.runelite.api.ItemID.TURQUOISE_ROBE_BOTTOMS;
|
||||
import static net.runelite.api.ItemID.TURQUOISE_SLAYER_HELMET;
|
||||
import static net.runelite.api.ItemID.TURQUOISE_SLAYER_HELMET_I;
|
||||
import static net.runelite.api.ItemID.UNHOLY_BOOK;
|
||||
import static net.runelite.api.ItemID.VERACS_BRASSARD_0;
|
||||
import static net.runelite.api.ItemID.VERACS_BRASSARD_100;
|
||||
import static net.runelite.api.ItemID.VERACS_FLAIL_0;
|
||||
import static net.runelite.api.ItemID.VERACS_FLAIL_100;
|
||||
import static net.runelite.api.ItemID.VERACS_HELM_0;
|
||||
import static net.runelite.api.ItemID.VERACS_HELM_100;
|
||||
import static net.runelite.api.ItemID.VERACS_PLATESKIRT_0;
|
||||
import static net.runelite.api.ItemID.VERACS_PLATESKIRT_100;
|
||||
import static net.runelite.api.ItemID.VOLCANIC_ABYSSAL_WHIP;
|
||||
import static net.runelite.api.ItemID.WHITE_APRON;
|
||||
import static net.runelite.api.ItemID.WHITE_BOATER;
|
||||
import static net.runelite.api.ItemID.WHITE_HEADBAND;
|
||||
import static net.runelite.api.ItemID.ZAMORAK_CROZIER;
|
||||
import static net.runelite.api.ItemID.ZAMORAK_FULL_HELM;
|
||||
import static net.runelite.api.ItemID.ZAMORAK_GODSWORD;
|
||||
import static net.runelite.api.ItemID.ZAMORAK_MITRE;
|
||||
import static net.runelite.api.ItemID.ZAMORAK_STOLE;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollOverlay.TITLED_CONTENT_COLOR;
|
||||
@@ -43,12 +427,143 @@ import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.AllRequirementsCollection;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.AnyRequirementCollection;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.Emote;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.*;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.ANGRY;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.BECKON;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.BLOW_KISS;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.BOW;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.BULL_ROARER;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.CHEER;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.CLAP;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.CRY;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.DANCE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.FLAP;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.GOBLIN_SALUTE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.HEADBANG;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.JIG;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.JUMP_FOR_JOY;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.LAUGH;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.NO;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.PANIC;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.PUSH_UP;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.RASPBERRY;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.SALUTE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.SHRUG;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.SLAP_HEAD;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.SPIN;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.STOMP;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.THINK;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.WAVE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.YAWN;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.YES;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.ItemRequirement;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.RangeItemRequirement;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.*;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.AGILITY_PYRAMID;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.AL_KHARID_SCORPION_MINE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.AUBURYS_SHOP_IN_VARROCK;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.BARBARIAN_OUTPOST_OBSTACLE_COURSE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.BARROWS_CHEST;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.BEHIND_MISS_SCHISM_IN_DRAYNOR_VILLAGE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.BOB_AXES_ENTRANCE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.BY_THE_BEAR_CAGE_IN_VARROCK_PALACE_GARDENS;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.CASTLE_WARS_BANK;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.CATHERBY_BEEHIVE_FIELD;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.CENTRE_OF_CANIFIS;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.CENTRE_OF_THE_CATACOMBS_OF_KOUREND;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.CHAOS_TEMPLE_IN_THE_SOUTHEASTERN_WILDERNESS;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.CHAPEL_IN_WEST_ARDOUGNE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.CROSSROADS_NORTH_OF_DRAYNOR_VILLAGE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.DEATH_ALTAR;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.DIGSITE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.DRAYNOR_MANOR_BY_THE_FOUNTAIN;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.DRAYNOR_VILLAGE_MARKET;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.EAST_OF_THE_BARBARIAN_VILLAGE_BRIDGE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.ENTRANA_CHAPEL;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.ENTRANCE_OF_THE_ARCEUUS_LIBRARY;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.ENTRANCE_OF_THE_CAVERN_UNDER_THE_WHIRLPOOL;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.ENTRANCE_OF_THE_CAVE_OF_DAMIS;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.FINE_CLOTHES_ENTRANCE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.FISHING_GUILD_BANK;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.FOUNTAIN_OF_HEROES;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.GNOME_GLIDER_ON_WHITE_WOLF_MOUNTAIN;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.GNOME_STRONGHOLD_BALANCING_ROPE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.GYPSY_TENT_ENTRANCE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.HALFWAY_DOWN_TROLLWEISS_MOUNTAIN;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.HICKTONS_ARCHERY_EMPORIUM;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.HOSIDIUS_MESS;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.INSIDE_THE_DIGSITE_EXAM_CENTRE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.IN_THE_MIDDLE_OF_JIGGIG;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.KING_BLACK_DRAGONS_LAIR;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.LIMESTONE_MINE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.LUMBRIDGE_SWAMP_CAVES;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.MAUSOLEUM_OFF_THE_MORYTANIA_COAST;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.MOUNTAIN_CAMP_GOAT_ENCLOSURE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.MUBARIZS_ROOM_AT_THE_DUEL_ARENA;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.MUDSKIPPER_POINT;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NEAR_A_LADDER_IN_THE_WILDERNESS_LAVA_MAZE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NEAR_A_RUNITE_ROCK_IN_THE_FREMENNIK_ISLES;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NEAR_A_SHED_IN_LUMBRIDGE_SWAMP;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NEAR_HERQUINS_SHOP_IN_FALADOR;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NEAR_THE_ENTRANA_FERRY_IN_PORT_SARIM;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NEAR_THE_GEM_STALL_IN_ARDOUGNE_MARKET;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NEAR_THE_PARROTS_IN_ARDOUGNE_ZOO;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NEAR_THE_PIER_IN_ZULANDRA;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NEAR_THE_SAWMILL_OPERATORS_BOOTH;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NORTHEAST_CORNER_OF_THE_KHARAZI_JUNGLE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NORTHERN_WALL_OF_CASTLE_DRAKAN;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NORTHWESTERN_CORNER_OF_THE_ENCHANTED_VALLEY;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NORTH_OF_EVIL_DAVES_HOUSE_IN_EDGEVILLE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NORTH_OF_MOUNT_KARUULM;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.NOTERAZZOS_SHOP_IN_THE_WILDERNESS;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OBSERVATORY;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OGRE_CAGE_IN_KING_LATHAS_TRAINING_CAMP;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.ON_THE_BRIDGE_TO_THE_MISTHALIN_WIZARDS_TOWER;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.ON_TOP_OF_TROLLHEIM_MOUNTAIN;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_CATHERBY_BANK;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_DRAYNOR_VILLAGE_JAIL;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_HARRYS_FISHING_SHOP_IN_CATHERBY;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_KEEP_LE_FAYE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_KRIL_TSUTSAROTHS_ROOM;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_MUDKNUCKLES_HUT;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_THE_BAR_BY_THE_FIGHT_ARENA;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_THE_DIGSITE_EXAM_CENTRE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_THE_FALADOR_PARTY_ROOM;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_THE_FISHING_GUILD;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_THE_GREAT_PYRAMID_OF_SOPHANEM;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_THE_LEGENDS_GUILD_DOOR;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_THE_LEGENDS_GUILD_GATES;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_THE_SEERS_VILLAGE_COURTHOUSE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_THE_SLAYER_TOWER_GARGOYLE_ROOM;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_THE_WILDERNESS_AXE_HUT;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_VARROCK_PALACE_COURTYARD;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.OUTSIDE_YANILLE_BANK;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.RIMMINGTON_MINE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.ROAD_JUNCTION_NORTH_OF_RIMMINGTON;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.ROAD_JUNCTION_SOUTH_OF_SINCLAIR_MANSION;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.SHANTAY_PASS;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.SHAYZIEN_WAR_TENT;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.SHILO_VILLAGE_BANK;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.SOUL_ALTAR;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.SOUTHEAST_CORNER_OF_LAVA_DRAGON_ISLE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.SOUTHEAST_CORNER_OF_THE_FISHING_PLATFORM;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.SOUTHEAST_CORNER_OF_THE_MONASTERY;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.SOUTH_OF_THE_GRAND_EXCHANGE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.SOUTH_OF_THE_SHRINE_IN_TAI_BWO_WANNAI_VILLAGE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.TAVERLEY_STONE_CIRCLE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.TENT_IN_LORD_IORWERTHS_ENCAMPMENT;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.TOP_FLOOR_OF_THE_LIGHTHOUSE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.TOP_FLOOR_OF_THE_YANILLE_WATCHTOWER;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.TZHAAR_GEM_STORE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.TZHAAR_WEAPONS_STORE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.UPSTAIRS_IN_THE_ARDOUGNE_WINDMILL;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.VARROCK_PALACE_LIBRARY;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.VOLCANO_IN_THE_NORTHEASTERN_WILDERNESS;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.WARRIORS_GUILD_BANK;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.WARRIORS_GUILD_BANK_29047;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.WELL_OF_VOYAGE;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.WEST_OF_THE_SHAYZIEN_COMBAT_RING;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.WEST_SIDE_OF_THE_KARAMJA_BANANA_PLANTATION;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit.WHEAT_FIELD_NEAR_THE_LUMBRIDGE_WINDMILL;
|
||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.STASHUnit._7TH_CHAMBER_OF_JALSAVRAH;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.SingleItemRequirement;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.SlotLimitationRequirement;
|
||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||
|
||||
@@ -29,7 +29,38 @@ import java.awt.Color;
|
||||
import java.awt.Graphics2D;
|
||||
import java.util.Set;
|
||||
import lombok.Getter;
|
||||
import static net.runelite.api.ItemID.*;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_EASY_12179;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_EASY_2713;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_EASY_2716;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_EASY_2719;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_EASY_3516;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_EASY_3518;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_EASY_7236;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_ELITE_12130;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_ELITE_19782;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_ELITE_19783;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_ELITE_19784;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_ELITE_19785;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_ELITE_19786;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_HARD;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_HARD_2729;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_HARD_3520;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_HARD_3522;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_HARD_3524;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_HARD_3525;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_HARD_7239;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_HARD_7241;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_2827;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_3596;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_3598;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_3599;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_3601;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_3602;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_7286;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_7288;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_7290;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_7292;
|
||||
import static net.runelite.api.ItemID.CLUE_SCROLL_MEDIUM_7294;
|
||||
import net.runelite.api.ObjectComposition;
|
||||
import static net.runelite.api.ObjectID.CRATE_18506;
|
||||
import static net.runelite.api.ObjectID.CRATE_2620;
|
||||
|
||||
@@ -25,7 +25,33 @@
|
||||
package net.runelite.client.plugins.cluescrolls.clues.emote;
|
||||
|
||||
import lombok.Getter;
|
||||
import static net.runelite.api.SpriteID.*;
|
||||
import static net.runelite.api.SpriteID.EMOTE_ANGRY;
|
||||
import static net.runelite.api.SpriteID.EMOTE_BECKON;
|
||||
import static net.runelite.api.SpriteID.EMOTE_BLOW_KISS;
|
||||
import static net.runelite.api.SpriteID.EMOTE_BOW;
|
||||
import static net.runelite.api.SpriteID.EMOTE_CHEER;
|
||||
import static net.runelite.api.SpriteID.EMOTE_CLAP;
|
||||
import static net.runelite.api.SpriteID.EMOTE_CRY;
|
||||
import static net.runelite.api.SpriteID.EMOTE_DANCE;
|
||||
import static net.runelite.api.SpriteID.EMOTE_FLAP;
|
||||
import static net.runelite.api.SpriteID.EMOTE_GOBLIN_SALUTE;
|
||||
import static net.runelite.api.SpriteID.EMOTE_HEADBANG;
|
||||
import static net.runelite.api.SpriteID.EMOTE_JIG;
|
||||
import static net.runelite.api.SpriteID.EMOTE_JUMP_FOR_JOY;
|
||||
import static net.runelite.api.SpriteID.EMOTE_LAUGH;
|
||||
import static net.runelite.api.SpriteID.EMOTE_NO;
|
||||
import static net.runelite.api.SpriteID.EMOTE_PANIC;
|
||||
import static net.runelite.api.SpriteID.EMOTE_PUSH_UP;
|
||||
import static net.runelite.api.SpriteID.EMOTE_RASPBERRY;
|
||||
import static net.runelite.api.SpriteID.EMOTE_SALUTE;
|
||||
import static net.runelite.api.SpriteID.EMOTE_SHRUG;
|
||||
import static net.runelite.api.SpriteID.EMOTE_SLAP_HEAD;
|
||||
import static net.runelite.api.SpriteID.EMOTE_SPIN;
|
||||
import static net.runelite.api.SpriteID.EMOTE_STOMP;
|
||||
import static net.runelite.api.SpriteID.EMOTE_THINK;
|
||||
import static net.runelite.api.SpriteID.EMOTE_WAVE;
|
||||
import static net.runelite.api.SpriteID.EMOTE_YAWN;
|
||||
import static net.runelite.api.SpriteID.EMOTE_YES;
|
||||
|
||||
@Getter
|
||||
public enum Emote
|
||||
|
||||
@@ -25,6 +25,11 @@
|
||||
package net.runelite.client.plugins.combatlevel;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Rectangle;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Experience;
|
||||
import net.runelite.api.Skill;
|
||||
@@ -34,11 +39,6 @@ import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.tooltip.Tooltip;
|
||||
import net.runelite.client.ui.overlay.tooltip.TooltipManager;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import javax.inject.Inject;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Rectangle;
|
||||
|
||||
class CombatLevelOverlay extends Overlay
|
||||
{
|
||||
@@ -99,7 +99,7 @@ class CombatLevelOverlay extends Overlay
|
||||
int prayerLevel = client.getRealSkillLevel(Skill.PRAYER);
|
||||
|
||||
// calculate initial required numbers
|
||||
double base = DEF_HP_MULT * (defenceLevel + hitpointsLevel + Math.floor(prayerLevel / 2));
|
||||
double base = DEF_HP_MULT * (defenceLevel + hitpointsLevel + Math.floor(prayerLevel / 2D));
|
||||
double melee = ATT_STR_MULT * (attackLevel + strengthLevel);
|
||||
double range = RANGE_MAGIC_MULT * Math.floor(rangedLevel * RANGE_MAGIC_LEVEL_MULT);
|
||||
double mage = RANGE_MAGIC_MULT * Math.floor(magicLevel * RANGE_MAGIC_LEVEL_MULT);
|
||||
@@ -143,6 +143,7 @@ class CombatLevelOverlay extends Overlay
|
||||
/**
|
||||
* Calculate skill levels required for increasing combat level, meant
|
||||
* for all combat skills besides prayer, ranged, and magic.
|
||||
*
|
||||
* @param start initial value
|
||||
* @param end ending value (combat level + 1)
|
||||
* @param multiple how much adding one skill level will change combat
|
||||
@@ -160,6 +161,7 @@ class CombatLevelOverlay extends Overlay
|
||||
* Note: Prayer is a special case, only leveling up upon even level numbers. This is accounted
|
||||
* for in this function.
|
||||
* </p>
|
||||
*
|
||||
* @param start current combat level
|
||||
* @param end ending value (combat level + 1)
|
||||
* @param prayerLevel the player's current prayer level
|
||||
@@ -191,6 +193,7 @@ class CombatLevelOverlay extends Overlay
|
||||
/**
|
||||
* Calculate skill levels required for increasing combat level, meant
|
||||
* ONLY for Ranged and Magic skills.
|
||||
*
|
||||
* @param start either the current ranged or magic level
|
||||
* @param end ending value (combat level + 1)
|
||||
* @param dhp defence, hitpoints, and prayer; this is the initial calculated "base" value
|
||||
|
||||
@@ -83,7 +83,6 @@ import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginInstantiationException;
|
||||
import net.runelite.client.plugins.PluginManager;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
import net.runelite.client.plugins.pluginsorter.PluginSorterPlugin;
|
||||
import net.runelite.client.ui.ColorScheme;
|
||||
import net.runelite.client.ui.DynamicGridLayout;
|
||||
import net.runelite.client.ui.PluginPanel;
|
||||
@@ -404,7 +403,9 @@ public class ConfigPanel extends PluginPanel
|
||||
topPanel.add(topPanelBackButton, BorderLayout.WEST);
|
||||
|
||||
if (!listItem.getName().equals("RuneLitePlus"))
|
||||
{
|
||||
topPanel.add(listItem.createToggleButton(), BorderLayout.EAST);
|
||||
}
|
||||
|
||||
String name = listItem.getName();
|
||||
JLabel title = new JLabel(name);
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
package net.runelite.client.plugins.config;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.image.BufferedImage;
|
||||
@@ -33,7 +32,6 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
@@ -41,13 +39,11 @@ import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigDescriptor;
|
||||
import net.runelite.client.config.ConfigItemDescriptor;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.PluginPanel;
|
||||
import net.runelite.client.ui.components.IconButton;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import net.runelite.client.util.ImageUtil;
|
||||
import org.apache.commons.text.similarity.JaroWinklerDistance;
|
||||
|
||||
@@ -199,7 +195,8 @@ public class PluginListItem extends JPanel
|
||||
configButton.setVisible(true);
|
||||
configButton.setToolTipText("Edit plugin configuration");
|
||||
}
|
||||
if (!name.equals("RuneLitePlus")) {
|
||||
if (!name.equals("RuneLitePlus"))
|
||||
{
|
||||
toggleButton.setPreferredSize(new Dimension(25, 0));
|
||||
attachToggleButtonListener(toggleButton);
|
||||
buttonPanel.add(toggleButton);
|
||||
@@ -261,6 +258,7 @@ public class PluginListItem extends JPanel
|
||||
|
||||
/**
|
||||
* Checks if all the search terms in the given list matches at least one keyword.
|
||||
*
|
||||
* @return true if all search terms matches at least one keyword, or false if otherwise.
|
||||
*/
|
||||
boolean matchesSearchTerms(String[] searchTerms)
|
||||
|
||||
@@ -31,9 +31,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.util.WorldUtil;
|
||||
|
||||
@@ -70,9 +70,12 @@ public class DemonicGorillaOverlay extends Overlay
|
||||
{
|
||||
switch (attackStyle)
|
||||
{
|
||||
case MELEE: return iconManager.getSkillImage(Skill.ATTACK);
|
||||
case RANGED: return iconManager.getSkillImage(Skill.RANGED);
|
||||
case MAGIC: return iconManager.getSkillImage(Skill.MAGIC);
|
||||
case MELEE:
|
||||
return iconManager.getSkillImage(Skill.ATTACK);
|
||||
case RANGED:
|
||||
return iconManager.getSkillImage(Skill.RANGED);
|
||||
case MAGIC:
|
||||
return iconManager.getSkillImage(Skill.MAGIC);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -358,29 +358,52 @@ enum DiscordGameEventType
|
||||
{
|
||||
switch (skill)
|
||||
{
|
||||
case ATTACK: return TRAINING_ATTACK;
|
||||
case DEFENCE: return TRAINING_DEFENCE;
|
||||
case STRENGTH: return TRAINING_STRENGTH;
|
||||
case RANGED: return TRAINING_RANGED;
|
||||
case PRAYER: return TRAINING_PRAYER;
|
||||
case MAGIC: return TRAINING_MAGIC;
|
||||
case COOKING: return TRAINING_COOKING;
|
||||
case WOODCUTTING: return TRAINING_WOODCUTTING;
|
||||
case FLETCHING: return TRAINING_FLETCHING;
|
||||
case FISHING: return TRAINING_FISHING;
|
||||
case FIREMAKING: return TRAINING_FIREMAKING;
|
||||
case CRAFTING: return TRAINING_CRAFTING;
|
||||
case SMITHING: return TRAINING_SMITHING;
|
||||
case MINING: return TRAINING_MINING;
|
||||
case HERBLORE: return TRAINING_HERBLORE;
|
||||
case AGILITY: return TRAINING_AGILITY;
|
||||
case THIEVING: return TRAINING_THIEVING;
|
||||
case SLAYER: return TRAINING_SLAYER;
|
||||
case FARMING: return TRAINING_FARMING;
|
||||
case RUNECRAFT: return TRAINING_RUNECRAFT;
|
||||
case HUNTER: return TRAINING_HUNTER;
|
||||
case CONSTRUCTION: return TRAINING_CONSTRUCTION;
|
||||
default: return null;
|
||||
case ATTACK:
|
||||
return TRAINING_ATTACK;
|
||||
case DEFENCE:
|
||||
return TRAINING_DEFENCE;
|
||||
case STRENGTH:
|
||||
return TRAINING_STRENGTH;
|
||||
case RANGED:
|
||||
return TRAINING_RANGED;
|
||||
case PRAYER:
|
||||
return TRAINING_PRAYER;
|
||||
case MAGIC:
|
||||
return TRAINING_MAGIC;
|
||||
case COOKING:
|
||||
return TRAINING_COOKING;
|
||||
case WOODCUTTING:
|
||||
return TRAINING_WOODCUTTING;
|
||||
case FLETCHING:
|
||||
return TRAINING_FLETCHING;
|
||||
case FISHING:
|
||||
return TRAINING_FISHING;
|
||||
case FIREMAKING:
|
||||
return TRAINING_FIREMAKING;
|
||||
case CRAFTING:
|
||||
return TRAINING_CRAFTING;
|
||||
case SMITHING:
|
||||
return TRAINING_SMITHING;
|
||||
case MINING:
|
||||
return TRAINING_MINING;
|
||||
case HERBLORE:
|
||||
return TRAINING_HERBLORE;
|
||||
case AGILITY:
|
||||
return TRAINING_AGILITY;
|
||||
case THIEVING:
|
||||
return TRAINING_THIEVING;
|
||||
case SLAYER:
|
||||
return TRAINING_SLAYER;
|
||||
case FARMING:
|
||||
return TRAINING_FARMING;
|
||||
case RUNECRAFT:
|
||||
return TRAINING_RUNECRAFT;
|
||||
case HUNTER:
|
||||
return TRAINING_HUNTER;
|
||||
case CONSTRUCTION:
|
||||
return TRAINING_CONSTRUCTION;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -417,10 +417,14 @@ public class DiscordPlugin extends Plugin
|
||||
|
||||
switch (event.getDiscordAreaType())
|
||||
{
|
||||
case BOSSES: return config.showBossActivity();
|
||||
case CITIES: return config.showCityActivity();
|
||||
case DUNGEONS: return config.showDungeonActivity();
|
||||
case MINIGAMES: return config.showMinigameActivity();
|
||||
case BOSSES:
|
||||
return config.showBossActivity();
|
||||
case CITIES:
|
||||
return config.showCityActivity();
|
||||
case DUNGEONS:
|
||||
return config.showDungeonActivity();
|
||||
case MINIGAMES:
|
||||
return config.showMinigameActivity();
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
@@ -24,19 +24,22 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.easyscape;
|
||||
|
||||
public enum DuelingRingMode {
|
||||
public enum DuelingRingMode
|
||||
{
|
||||
DUEL_ARENA("Duel Arena"),
|
||||
CASTLE_WARS("Castle Wars"),
|
||||
CLAN_WARS("Clan Wars");
|
||||
|
||||
private final String name;
|
||||
|
||||
DuelingRingMode(String name) {
|
||||
DuelingRingMode(String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
public String toString()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,10 +25,13 @@
|
||||
package net.runelite.client.plugins.easyscape;
|
||||
|
||||
import com.google.inject.Provides;
|
||||
import javax.inject.Inject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.MenuAction;
|
||||
import static net.runelite.api.MenuAction.MENU_ACTION_DEPRIORITIZE_OFFSET;
|
||||
import static net.runelite.api.MenuAction.WALK;
|
||||
import net.runelite.api.MenuEntry;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
@@ -43,9 +46,6 @@ import net.runelite.client.plugins.PluginType;
|
||||
import static net.runelite.client.util.MenuUtil.swap;
|
||||
import net.runelite.client.util.Text;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import javax.inject.Inject;
|
||||
import static net.runelite.api.MenuAction.MENU_ACTION_DEPRIORITIZE_OFFSET;
|
||||
import static net.runelite.api.MenuAction.WALK;
|
||||
|
||||
|
||||
@PluginDescriptor(
|
||||
@@ -57,7 +57,8 @@ import static net.runelite.api.MenuAction.WALK;
|
||||
)
|
||||
|
||||
@Slf4j
|
||||
public class EasyscapePlugin extends Plugin {
|
||||
public class EasyscapePlugin extends Plugin
|
||||
{
|
||||
|
||||
private static final int PURO_PURO_REGION_ID = 10307;
|
||||
private static final int HOUSE_REGION_ID = 7513;
|
||||
@@ -71,31 +72,37 @@ public class EasyscapePlugin extends Plugin {
|
||||
private EasyscapePluginConfig config;
|
||||
|
||||
@Provides
|
||||
EasyscapePluginConfig provideConfig(ConfigManager configManager) {
|
||||
EasyscapePluginConfig provideConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(EasyscapePluginConfig.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startUp() {
|
||||
public void startUp()
|
||||
{
|
||||
log.debug("Easyscape Started.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shutDown() {
|
||||
public void shutDown()
|
||||
{
|
||||
log.debug("Easyscape Stopped.");
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event) {
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
|
||||
if (client.getGameState() != GameState.LOGGED_IN) {
|
||||
if (client.getGameState() != GameState.LOGGED_IN)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Widget loginScreenOne = client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN);
|
||||
Widget loginScreenTwo = client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN_MESSAGE_OF_THE_DAY);
|
||||
|
||||
if (loginScreenOne != null || loginScreenTwo != null) {
|
||||
if (loginScreenOne != null || loginScreenTwo != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -104,9 +111,12 @@ public class EasyscapePlugin extends Plugin {
|
||||
|
||||
entries = client.getMenuEntries();
|
||||
|
||||
if (config.getRemoveExamine()) {
|
||||
for (int i = entries.length - 1; i >= 0; i--) {
|
||||
if (entries[i].getOption().equals("Examine")) {
|
||||
if (config.getRemoveExamine())
|
||||
{
|
||||
for (int i = entries.length - 1; i >= 0; i--)
|
||||
{
|
||||
if (entries[i].getOption().equals("Examine"))
|
||||
{
|
||||
entries = ArrayUtils.remove(entries, i);
|
||||
i--;
|
||||
}
|
||||
@@ -114,39 +124,50 @@ public class EasyscapePlugin extends Plugin {
|
||||
client.setMenuEntries(entries);
|
||||
}
|
||||
|
||||
if (config.getRemoveObjects() && !config.getRemovedObjects().equals("")) {
|
||||
for (String removed : config.getRemovedObjects().split(",")) {
|
||||
if (config.getRemoveObjects() && !config.getRemovedObjects().equals(""))
|
||||
{
|
||||
for (String removed : config.getRemovedObjects().split(","))
|
||||
{
|
||||
removed = removed.trim();
|
||||
if (target.contains("->")) {
|
||||
if (target.contains("->"))
|
||||
{
|
||||
String trimmed = target.split("->")[1].trim();
|
||||
if (trimmed.length() >= removed.length() && trimmed.substring(0, removed.length()).equalsIgnoreCase(removed)) {
|
||||
if (trimmed.length() >= removed.length() && trimmed.substring(0, removed.length()).equalsIgnoreCase(removed))
|
||||
{
|
||||
delete(event.getIdentifier());
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (target.length() >= removed.length() && target.substring(0, removed.length()).equalsIgnoreCase(removed)) {
|
||||
if (target.length() >= removed.length() && target.substring(0, removed.length()).equalsIgnoreCase(removed))
|
||||
{
|
||||
delete(event.getIdentifier());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (config.getSwapPuro() && isPuroPuro()) {
|
||||
if (event.getType() == WALK.getId()) {
|
||||
if (config.getSwapPuro() && isPuroPuro())
|
||||
{
|
||||
if (event.getType() == WALK.getId())
|
||||
{
|
||||
MenuEntry menuEntry = entries[entries.length - 1];
|
||||
menuEntry.setType(MenuAction.WALK.getId() + MENU_ACTION_DEPRIORITIZE_OFFSET);
|
||||
client.setMenuEntries(entries);
|
||||
}
|
||||
else if (option.equalsIgnoreCase("examine")) {
|
||||
else if (option.equalsIgnoreCase("examine"))
|
||||
{
|
||||
swap(client, "push-through", option, target);
|
||||
}
|
||||
else if (option.equalsIgnoreCase("use")) {
|
||||
else if (option.equalsIgnoreCase("use"))
|
||||
{
|
||||
swap(client, "escape", option, target);
|
||||
}
|
||||
}
|
||||
|
||||
if (config.getEasyConstruction() && !config.getConstructionItems().equals("")) {
|
||||
if (event.getType() == WALK.getId()) {
|
||||
if (config.getEasyConstruction() && !config.getConstructionItems().equals(""))
|
||||
{
|
||||
if (event.getType() == WALK.getId())
|
||||
{
|
||||
MenuEntry menuEntry = entries[entries.length - 1];
|
||||
menuEntry.setType(MenuAction.WALK.getId() + MENU_ACTION_DEPRIORITIZE_OFFSET);
|
||||
client.setMenuEntries(entries);
|
||||
@@ -154,10 +175,14 @@ public class EasyscapePlugin extends Plugin {
|
||||
|
||||
swap(client, "Build", option, target);
|
||||
|
||||
for (int i = entries.length - 1; i >= 0; i--) {
|
||||
for (String item : config.getConstructionItems().split(",")) {
|
||||
if (item.trim().equalsIgnoreCase(Text.removeTags(entries[i].getTarget()))) {
|
||||
if (!entries[i].getOption().equalsIgnoreCase("remove")) {
|
||||
for (int i = entries.length - 1; i >= 0; i--)
|
||||
{
|
||||
for (String item : config.getConstructionItems().split(","))
|
||||
{
|
||||
if (item.trim().equalsIgnoreCase(Text.removeTags(entries[i].getTarget())))
|
||||
{
|
||||
if (!entries[i].getOption().equalsIgnoreCase("remove"))
|
||||
{
|
||||
entries = ArrayUtils.remove(entries, i);
|
||||
i--;
|
||||
}
|
||||
@@ -168,66 +193,89 @@ public class EasyscapePlugin extends Plugin {
|
||||
client.setMenuEntries(entries);
|
||||
}
|
||||
|
||||
if (config.getSwapShop() && !config.getSwappedItems().equals("")) {
|
||||
for (String item : config.getSwappedItems().split(",")) {
|
||||
if (target.equalsIgnoreCase(item.trim())) {
|
||||
if (config.getSwapShop() && !config.getSwappedItems().equals(""))
|
||||
{
|
||||
for (String item : config.getSwappedItems().split(","))
|
||||
{
|
||||
if (target.equalsIgnoreCase(item.trim()))
|
||||
{
|
||||
swap(client, "Buy 50", option, target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (config.getSwapSmithing()) {
|
||||
if (option.equalsIgnoreCase("Smith 1")) {
|
||||
if (config.getSwapSmithing())
|
||||
{
|
||||
if (option.equalsIgnoreCase("Smith 1"))
|
||||
{
|
||||
swap(client, "Smith All", option, target);
|
||||
} else if (option.equalsIgnoreCase("Smith 1 Set")) {
|
||||
}
|
||||
else if (option.equalsIgnoreCase("Smith 1 Set"))
|
||||
{
|
||||
swap(client, "Smith All Sets", option, target);
|
||||
}
|
||||
}
|
||||
|
||||
if (config.getSwapTanning() && option.equalsIgnoreCase("Tan 1")) {
|
||||
if (config.getSwapTanning() && option.equalsIgnoreCase("Tan 1"))
|
||||
{
|
||||
swap(client, "Tan All", option, target);
|
||||
}
|
||||
|
||||
if (config.getSwapCrafting() && option.equalsIgnoreCase("Make-1")) {
|
||||
if (config.getSwapCrafting() && option.equalsIgnoreCase("Make-1"))
|
||||
{
|
||||
swap(client, "Make-All", option, target);
|
||||
}
|
||||
|
||||
if (config.getSwapSawmill() && target.equalsIgnoreCase("Sawmill operator")) {
|
||||
if (config.getSwapSawmill() && target.equalsIgnoreCase("Sawmill operator"))
|
||||
{
|
||||
swap(client, "Buy-plank", option, target);
|
||||
}
|
||||
|
||||
if (config.getSwapSawmillPlanks() && option.equalsIgnoreCase("Buy 1")) {
|
||||
if (config.getSwapSawmillPlanks() && option.equalsIgnoreCase("Buy 1"))
|
||||
{
|
||||
swap(client, "Buy All", option, target);
|
||||
}
|
||||
|
||||
if (config.getSwapStairs() && option.equalsIgnoreCase("Climb Stairs")) {
|
||||
if (config.getSwapStairs() && option.equalsIgnoreCase("Climb Stairs"))
|
||||
{
|
||||
swap(client, "Climb Up Stairs", option, target);
|
||||
}
|
||||
|
||||
if (option.equalsIgnoreCase("Clear-All") && target.equalsIgnoreCase("Bank Filler")) {
|
||||
if (option.equalsIgnoreCase("Clear-All") && target.equalsIgnoreCase("Bank Filler"))
|
||||
{
|
||||
swap(client, "Clear", option, target);
|
||||
}
|
||||
|
||||
if (target.toLowerCase().contains("ardougne cloak") && config.getSwapArdougneCape()) {
|
||||
if (target.toLowerCase().contains("ardougne cloak") && config.getSwapArdougneCape())
|
||||
{
|
||||
swap(client, "Kandarin Monastery", option, target);
|
||||
swap(client, "Monastery Teleport", option, target);
|
||||
}
|
||||
|
||||
if (config.getSwapEssencePouch()) {
|
||||
if (isEssencePouch(target)) {
|
||||
if (config.getSwapEssencePouch())
|
||||
{
|
||||
if (isEssencePouch(target))
|
||||
{
|
||||
Widget widgetBankTitleBar = client.getWidget(WidgetInfo.BANK_TITLE_BAR);
|
||||
switch (config.getEssenceMode()) {
|
||||
switch (config.getEssenceMode())
|
||||
{
|
||||
case RUNECRAFTING:
|
||||
if (widgetBankTitleBar == null || widgetBankTitleBar.isHidden()) {
|
||||
if (widgetBankTitleBar == null || widgetBankTitleBar.isHidden())
|
||||
{
|
||||
swap(client, "Empty", option, target);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
swap(client, "Fill", option, target);
|
||||
}
|
||||
break;
|
||||
case ESSENCE_MINING:
|
||||
if (widgetBankTitleBar == null || widgetBankTitleBar.isHidden()) {
|
||||
if (widgetBankTitleBar == null || widgetBankTitleBar.isHidden())
|
||||
{
|
||||
swap(client, "Fill", option, target);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
swap(client, "Empty", option, target);
|
||||
}
|
||||
break;
|
||||
@@ -237,9 +285,12 @@ public class EasyscapePlugin extends Plugin {
|
||||
}
|
||||
}
|
||||
|
||||
if (config.getGamesNecklace()) {
|
||||
if (target.toLowerCase().contains("games necklace")) {
|
||||
switch (config.getGamesNecklaceMode()) {
|
||||
if (config.getGamesNecklace())
|
||||
{
|
||||
if (target.toLowerCase().contains("games necklace"))
|
||||
{
|
||||
switch (config.getGamesNecklaceMode())
|
||||
{
|
||||
case BURTHORPE:
|
||||
swap(client, GamesNecklaceMode.BURTHORPE.toString(), option, target);
|
||||
break;
|
||||
@@ -261,9 +312,12 @@ public class EasyscapePlugin extends Plugin {
|
||||
}
|
||||
}
|
||||
|
||||
if (config.getDuelingRing()) {
|
||||
if (target.toLowerCase().contains("ring of dueling")) {
|
||||
switch (config.getDuelingRingMode()) {
|
||||
if (config.getDuelingRing())
|
||||
{
|
||||
if (target.toLowerCase().contains("ring of dueling"))
|
||||
{
|
||||
switch (config.getDuelingRingMode())
|
||||
{
|
||||
case DUEL_ARENA:
|
||||
swap(client, DuelingRingMode.DUEL_ARENA.toString(), option, target);
|
||||
break;
|
||||
@@ -279,9 +333,12 @@ public class EasyscapePlugin extends Plugin {
|
||||
}
|
||||
}
|
||||
|
||||
if (config.getWealthRing()) {
|
||||
if (target.toLowerCase().contains("ring of wealth")) {
|
||||
switch (config.getWealthRingMode()) {
|
||||
if (config.getWealthRing())
|
||||
{
|
||||
if (target.toLowerCase().contains("ring of wealth"))
|
||||
{
|
||||
switch (config.getWealthRingMode())
|
||||
{
|
||||
case MISCELLANIA:
|
||||
swap(client, WealthRingMode.MISCELLANIA.toString(), option, target);
|
||||
break;
|
||||
@@ -300,9 +357,12 @@ public class EasyscapePlugin extends Plugin {
|
||||
}
|
||||
}
|
||||
|
||||
if (config.getGlory()) {
|
||||
if (target.toLowerCase().contains("amulet of glory") || target.toLowerCase().contains("amulet of eternal glory")) {
|
||||
switch (config.getGloryMode()) {
|
||||
if (config.getGlory())
|
||||
{
|
||||
if (target.toLowerCase().contains("amulet of glory") || target.toLowerCase().contains("amulet of eternal glory"))
|
||||
{
|
||||
switch (config.getGloryMode())
|
||||
{
|
||||
case EDGEVILLE:
|
||||
swap(client, GloryMode.EDGEVILLE.toString(), option, target);
|
||||
break;
|
||||
@@ -321,20 +381,25 @@ public class EasyscapePlugin extends Plugin {
|
||||
}
|
||||
}
|
||||
|
||||
if (target.toLowerCase().contains("crafting cape") && config.getSwapCraftingCape()) {
|
||||
if (target.toLowerCase().contains("crafting cape") && config.getSwapCraftingCape())
|
||||
{
|
||||
swap(client, "Teleport", option, target);
|
||||
|
||||
}
|
||||
|
||||
if (target.toLowerCase().contains("construct. cape") && config.getSwapConstructionCape()) {
|
||||
if (target.toLowerCase().contains("construct. cape") && config.getSwapConstructionCape())
|
||||
{
|
||||
swap(client, "Tele to poh", option, target);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void delete(int target) {
|
||||
for (int i = entries.length - 1; i >= 0; i--) {
|
||||
if (entries[i].getIdentifier() == target) {
|
||||
private void delete(int target)
|
||||
{
|
||||
for (int i = entries.length - 1; i >= 0; i--)
|
||||
{
|
||||
if (entries[i].getIdentifier() == target)
|
||||
{
|
||||
entries = ArrayUtils.remove(entries, i);
|
||||
i--;
|
||||
}
|
||||
@@ -342,20 +407,26 @@ public class EasyscapePlugin extends Plugin {
|
||||
client.setMenuEntries(entries);
|
||||
}
|
||||
|
||||
private boolean isEssencePouch(String target) {
|
||||
private boolean isEssencePouch(String target)
|
||||
{
|
||||
return (target.equalsIgnoreCase("Small Pouch") || target.equalsIgnoreCase("Medium Pouch") || target.equalsIgnoreCase("Large Pouch") || target.equalsIgnoreCase("Giant Pouch"));
|
||||
}
|
||||
|
||||
private boolean isHouse() {
|
||||
private boolean isHouse()
|
||||
{
|
||||
return client.getMapRegions()[0] == HOUSE_REGION_ID;
|
||||
}
|
||||
|
||||
private boolean isPuroPuro() {
|
||||
private boolean isPuroPuro()
|
||||
{
|
||||
Player player = client.getLocalPlayer();
|
||||
|
||||
if (player == null) {
|
||||
if (player == null)
|
||||
{
|
||||
return false;
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
WorldPoint location = player.getWorldLocation();
|
||||
return location.getRegionID() == PURO_PURO_REGION_ID;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,8 @@ import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
|
||||
@ConfigGroup("easyscape")
|
||||
public interface EasyscapePluginConfig extends Config {
|
||||
public interface EasyscapePluginConfig extends Config
|
||||
{
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "removeExamine",
|
||||
@@ -37,7 +38,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "",
|
||||
position = 0
|
||||
)
|
||||
default boolean getRemoveExamine() {
|
||||
default boolean getRemoveExamine()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -47,7 +49,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of items in the shop with their buy-50 option.",
|
||||
position = 1
|
||||
)
|
||||
default boolean getSwapShop() {
|
||||
default boolean getSwapShop()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -57,7 +60,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Items listed here will have their value and buy-50 options swapped.",
|
||||
position = 2
|
||||
)
|
||||
default String getSwappedItems() {
|
||||
default String getSwappedItems()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -68,7 +72,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
position = 3
|
||||
)
|
||||
|
||||
default boolean getEasyConstruction() {
|
||||
default boolean getEasyConstruction()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -79,7 +84,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
position = 4
|
||||
)
|
||||
|
||||
default String getConstructionItems() {
|
||||
default String getConstructionItems()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -89,7 +95,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "",
|
||||
position = 5
|
||||
)
|
||||
default boolean getRemoveObjects() {
|
||||
default boolean getRemoveObjects()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -99,7 +106,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "",
|
||||
position = 6
|
||||
)
|
||||
default String getRemovedObjects() {
|
||||
default String getRemovedObjects()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -109,7 +117,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of smith-1 and smith-all options.",
|
||||
position = 7
|
||||
)
|
||||
default boolean getSwapSmithing() {
|
||||
default boolean getSwapSmithing()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -119,7 +128,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of tan-1 and tan-all options.",
|
||||
position = 8
|
||||
)
|
||||
default boolean getSwapTanning() {
|
||||
default boolean getSwapTanning()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -129,7 +139,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "",
|
||||
position = 9
|
||||
)
|
||||
default boolean getSwapCrafting() {
|
||||
default boolean getSwapCrafting()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -139,7 +150,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of teleport and wear.",
|
||||
position = 10
|
||||
)
|
||||
default boolean getSwapArdougneCape() {
|
||||
default boolean getSwapArdougneCape()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -150,7 +162,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
position = 11
|
||||
)
|
||||
|
||||
default boolean getSwapStairs() {
|
||||
default boolean getSwapStairs()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -160,7 +173,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "",
|
||||
position = 12
|
||||
)
|
||||
default boolean getSwapSawmill() {
|
||||
default boolean getSwapSawmill()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -171,7 +185,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
position = 13
|
||||
)
|
||||
|
||||
default boolean getSwapSawmillPlanks() {
|
||||
default boolean getSwapSawmillPlanks()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -181,7 +196,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "",
|
||||
position = 14
|
||||
)
|
||||
default boolean getSwapPuro() {
|
||||
default boolean getSwapPuro()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -191,7 +207,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of fill and empty for essence pounch.",
|
||||
position = 15
|
||||
)
|
||||
default boolean getSwapEssencePouch() {
|
||||
default boolean getSwapEssencePouch()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -202,7 +219,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
position = 16
|
||||
)
|
||||
|
||||
default EssenceMode getEssenceMode() {
|
||||
default EssenceMode getEssenceMode()
|
||||
{
|
||||
return EssenceMode.RUNECRAFTING;
|
||||
}
|
||||
|
||||
@@ -212,7 +230,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of games necklace.",
|
||||
position = 17
|
||||
)
|
||||
default boolean getGamesNecklace() {
|
||||
default boolean getGamesNecklace()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -223,7 +242,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
position = 18
|
||||
)
|
||||
|
||||
default GamesNecklaceMode getGamesNecklaceMode() {
|
||||
default GamesNecklaceMode getGamesNecklaceMode()
|
||||
{
|
||||
return GamesNecklaceMode.BURTHORPE;
|
||||
}
|
||||
|
||||
@@ -233,7 +253,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of dueling ring.",
|
||||
position = 19
|
||||
)
|
||||
default boolean getDuelingRing() {
|
||||
default boolean getDuelingRing()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -244,7 +265,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
position = 20
|
||||
)
|
||||
|
||||
default DuelingRingMode getDuelingRingMode() {
|
||||
default DuelingRingMode getDuelingRingMode()
|
||||
{
|
||||
return DuelingRingMode.DUEL_ARENA;
|
||||
}
|
||||
|
||||
@@ -254,7 +276,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of Amulet of Glory.",
|
||||
position = 21
|
||||
)
|
||||
default boolean getGlory() {
|
||||
default boolean getGlory()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -265,7 +288,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
position = 22
|
||||
)
|
||||
|
||||
default GloryMode getGloryMode() {
|
||||
default GloryMode getGloryMode()
|
||||
{
|
||||
return GloryMode.EDGEVILLE;
|
||||
}
|
||||
|
||||
@@ -275,7 +299,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of Ring of Wealth.",
|
||||
position = 23
|
||||
)
|
||||
default boolean getWealthRing() {
|
||||
default boolean getWealthRing()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -286,7 +311,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
position = 24
|
||||
)
|
||||
|
||||
default WealthRingMode getWealthRingMode() {
|
||||
default WealthRingMode getWealthRingMode()
|
||||
{
|
||||
return WealthRingMode.GRAND_EXCHANGE;
|
||||
}
|
||||
|
||||
@@ -296,7 +322,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of teleport and wear.",
|
||||
position = 25
|
||||
)
|
||||
default boolean getSwapConstructionCape() {
|
||||
default boolean getSwapConstructionCape()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -306,7 +333,8 @@ public interface EasyscapePluginConfig extends Config {
|
||||
description = "Enables swapping of teleport and wear.",
|
||||
position = 26
|
||||
)
|
||||
default boolean getSwapCraftingCape() {
|
||||
default boolean getSwapCraftingCape()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,18 +24,21 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.easyscape;
|
||||
|
||||
public enum EssenceMode {
|
||||
public enum EssenceMode
|
||||
{
|
||||
RUNECRAFTING("Runecrafting"),
|
||||
ESSENCE_MINING("Essence Mining");
|
||||
|
||||
private final String name;
|
||||
|
||||
EssenceMode(String name) {
|
||||
EssenceMode(String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
public String toString()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,8 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.easyscape;
|
||||
|
||||
public enum GamesNecklaceMode {
|
||||
public enum GamesNecklaceMode
|
||||
{
|
||||
BURTHORPE("Burthorpe"),
|
||||
BARBARIAN_OUTPOST("Barbarian Outpost"),
|
||||
CORPOREAL_BEAST("Corporeal Beast"),
|
||||
@@ -33,12 +34,14 @@ public enum GamesNecklaceMode {
|
||||
|
||||
private final String name;
|
||||
|
||||
GamesNecklaceMode(String name) {
|
||||
GamesNecklaceMode(String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
public String toString()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,8 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.easyscape;
|
||||
|
||||
public enum GloryMode {
|
||||
public enum GloryMode
|
||||
{
|
||||
EDGEVILLE("Edgeville"),
|
||||
KARAMJA("Karamja"),
|
||||
DRAYNOR_VILLAGE("Draynor Village"),
|
||||
@@ -32,12 +33,14 @@ public enum GloryMode {
|
||||
|
||||
private final String name;
|
||||
|
||||
GloryMode(String name) {
|
||||
GloryMode(String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
public String toString()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,8 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.easyscape;
|
||||
|
||||
public enum WealthRingMode {
|
||||
public enum WealthRingMode
|
||||
{
|
||||
MISCELLANIA("Miscellania"),
|
||||
GRAND_EXCHANGE("Grand Exchange"),
|
||||
FALADOR("Falador"),
|
||||
@@ -32,12 +33,14 @@ public enum WealthRingMode {
|
||||
|
||||
private final String name;
|
||||
|
||||
WealthRingMode(String name) {
|
||||
WealthRingMode(String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
public String toString()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,10 +66,6 @@ class CacheKey
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (this.type != other.type)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
return this.type == other.type;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,5 +29,5 @@ public enum ExamineType
|
||||
ITEM,
|
||||
ITEM_BANK_EQ,
|
||||
NPC,
|
||||
OBJECT;
|
||||
OBJECT
|
||||
}
|
||||
|
||||
@@ -28,5 +28,5 @@ enum PrayerType
|
||||
{
|
||||
MELEE,
|
||||
RANGE,
|
||||
MAGIC;
|
||||
MAGIC
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ package net.runelite.client.plugins.experiencedrop;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import net.runelite.api.Actor;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
package net.runelite.client.plugins.experiencedrop;
|
||||
|
||||
import com.google.inject.Provides;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.Arrays;
|
||||
@@ -33,15 +32,23 @@ import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.IntStream;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.*;
|
||||
|
||||
import net.runelite.api.Actor;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.NPC;
|
||||
import net.runelite.api.Player;
|
||||
import static net.runelite.api.ScriptID.XPDROP_DISABLED;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.*;
|
||||
|
||||
import net.runelite.api.events.*;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.api.SpriteID;
|
||||
import net.runelite.api.VarPlayer;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.events.ExperienceChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.InteractingChanged;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.events.WidgetHiddenChanged;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
@@ -52,6 +59,15 @@ import net.runelite.client.game.NPCManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.attackstyles.AttackStyle;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.ACCURATE;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.AGGRESSIVE;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.CASTING;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.CONTROLLED;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.DEFENSIVE;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.DEFENSIVE_CASTING;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.LONGRANGE;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.OTHER;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.RANGING;
|
||||
import net.runelite.client.plugins.attackstyles.WeaponType;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.util.Text;
|
||||
|
||||
@@ -26,7 +26,22 @@ package net.runelite.client.plugins.experiencedrop;
|
||||
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.Prayer;
|
||||
import static net.runelite.api.Prayer.*;
|
||||
import static net.runelite.api.Prayer.AUGURY;
|
||||
import static net.runelite.api.Prayer.BURST_OF_STRENGTH;
|
||||
import static net.runelite.api.Prayer.CHIVALRY;
|
||||
import static net.runelite.api.Prayer.CLARITY_OF_THOUGHT;
|
||||
import static net.runelite.api.Prayer.EAGLE_EYE;
|
||||
import static net.runelite.api.Prayer.HAWK_EYE;
|
||||
import static net.runelite.api.Prayer.IMPROVED_REFLEXES;
|
||||
import static net.runelite.api.Prayer.INCREDIBLE_REFLEXES;
|
||||
import static net.runelite.api.Prayer.MYSTIC_LORE;
|
||||
import static net.runelite.api.Prayer.MYSTIC_MIGHT;
|
||||
import static net.runelite.api.Prayer.MYSTIC_WILL;
|
||||
import static net.runelite.api.Prayer.PIETY;
|
||||
import static net.runelite.api.Prayer.RIGOUR;
|
||||
import static net.runelite.api.Prayer.SHARP_EYE;
|
||||
import static net.runelite.api.Prayer.SUPERHUMAN_STRENGTH;
|
||||
import static net.runelite.api.Prayer.ULTIMATE_STRENGTH;
|
||||
import static net.runelite.client.plugins.experiencedrop.PrayerType.MAGIC;
|
||||
import static net.runelite.client.plugins.experiencedrop.PrayerType.MELEE;
|
||||
import static net.runelite.client.plugins.experiencedrop.PrayerType.RANGE;
|
||||
|
||||
@@ -43,7 +43,6 @@ import net.runelite.api.ScriptID;
|
||||
import net.runelite.api.SoundEffectID;
|
||||
import net.runelite.api.SpriteID;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
@@ -51,6 +50,7 @@ import net.runelite.api.widgets.JavaScriptCallback;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
|
||||
@@ -89,6 +89,7 @@ class WaveOverlay extends Overlay
|
||||
|
||||
return panelComponent.render(graphics);
|
||||
}
|
||||
|
||||
private void addWaveInfo(final String headerText, final Map<WaveMonster, Integer> waveContents)
|
||||
{
|
||||
panelComponent.getChildren().add(TitleComponent.builder()
|
||||
|
||||
@@ -141,7 +141,7 @@ class FishingSpotOverlay extends Overlay
|
||||
|
||||
if (config.showSpotIcons())
|
||||
{
|
||||
BufferedImage fishImage = itemManager.getImage(spot.getFishSpriteId());;
|
||||
BufferedImage fishImage = itemManager.getImage(spot.getFishSpriteId());
|
||||
|
||||
if (spot == FishingSpot.COMMON_TENCH
|
||||
&& npc.getWorldLocation().distanceTo2D(client.getLocalPlayer().getWorldLocation()) <= ONE_TICK_AERIAL_FISHING)
|
||||
|
||||
@@ -34,9 +34,7 @@ import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.geom.Line2D;
|
||||
import java.util.ArrayList;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
|
||||
@@ -36,7 +36,7 @@ import net.runelite.api.events.FocusChanged;
|
||||
* For low powered computers, the RS client is often throttled by the hardware or OS and draws at 25-30 fps.
|
||||
* The nano timer is not used in this scenario.
|
||||
* Instead to catch up the RS client runs several cycles before drawing, thus maintaining 50 cycles / second.
|
||||
*
|
||||
* <p>
|
||||
* Enforcing FPS in the draw code does not impact the client engine's ability to run including its audio,
|
||||
* even when forced to 1 FPS with this plugin.
|
||||
*/
|
||||
|
||||
@@ -60,8 +60,10 @@ public enum PlayerSpellEffect
|
||||
for (PlayerSpellEffect effect : values())
|
||||
{
|
||||
if (effect.getSpotAnimId() == spotAnim)
|
||||
{
|
||||
return effect;
|
||||
}
|
||||
}
|
||||
return NONE;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,13 +64,10 @@ public class PrayerTracker
|
||||
{
|
||||
newTick.put(actor, new HashMap<>());
|
||||
}
|
||||
if (actor instanceof Player)
|
||||
{
|
||||
if (actor instanceof Player)
|
||||
{
|
||||
newTick.get(actor).put("PrayerIcon", ((Player) actor).getOverheadIcon() == null ? -1 : ((Player) actor).getOverheadIcon().ordinal());
|
||||
}
|
||||
}
|
||||
newTick.get(actor).put("SpotAnim", actor.getGraphic());
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,7 @@ package net.runelite.client.plugins.friendtagging;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.collect.ObjectArrays;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.datatransfer.StringSelection;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
@@ -21,8 +20,17 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
import javax.inject.Inject;
|
||||
import lombok.NonNull;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.*;
|
||||
import net.runelite.api.events.*;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Friend;
|
||||
import net.runelite.api.Ignore;
|
||||
import net.runelite.api.MenuAction;
|
||||
import net.runelite.api.MenuEntry;
|
||||
import net.runelite.api.Nameable;
|
||||
import net.runelite.api.events.MenuEntryAdded;
|
||||
import net.runelite.api.events.MenuOptionClicked;
|
||||
import net.runelite.api.events.NameableNameChanged;
|
||||
import net.runelite.api.events.RemovedFriend;
|
||||
import net.runelite.api.events.WidgetMenuOptionClicked;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
@@ -45,7 +53,7 @@ import org.apache.commons.lang3.ArrayUtils;
|
||||
)
|
||||
public class FriendTaggingPlugin extends Plugin
|
||||
{
|
||||
public static ConcurrentHashMap<String, String> taggedFriends = new ConcurrentHashMap<>();
|
||||
public static final ConcurrentHashMap<String, String> taggedFriends = new ConcurrentHashMap<>();
|
||||
|
||||
private static final String CONFIG_GROUP = "friendtagging";
|
||||
private static final int CHARACTER_LIMIT = 30;
|
||||
|
||||
@@ -74,7 +74,18 @@ import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginInstantiationException;
|
||||
import net.runelite.client.plugins.PluginManager;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.*;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glDeleteBuffer;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glDeleteFrameBuffer;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glDeleteRenderbuffers;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glDeleteTexture;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glDeleteVertexArrays;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glGenBuffers;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glGenFrameBuffer;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glGenRenderbuffer;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glGenTexture;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glGenVertexArrays;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.glGetInteger;
|
||||
import static net.runelite.client.plugins.gpu.GLUtil.inputStreamToString;
|
||||
import net.runelite.client.plugins.gpu.config.AntiAliasingMode;
|
||||
import net.runelite.client.plugins.gpu.template.Template;
|
||||
import net.runelite.client.ui.DrawManager;
|
||||
@@ -1295,10 +1306,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
|
||||
{
|
||||
int var21 = (pitchCos * modelHeight >> 16) + var19;
|
||||
int var22 = (var18 - var21) * zoom;
|
||||
if (var22 / var14 < Rasterizer3D_clipMidY2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return var22 / var14 < Rasterizer3D_clipMidY2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,9 +28,9 @@ import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
import net.runelite.client.config.Range;
|
||||
import static net.runelite.client.plugins.gpu.GpuPlugin.MAX_DISTANCE;
|
||||
import static net.runelite.client.plugins.gpu.GpuPlugin.MAX_FOG_DEPTH;
|
||||
import net.runelite.client.plugins.gpu.config.AntiAliasingMode;
|
||||
import static net.runelite.client.plugins.gpu.GpuPlugin.MAX_DISTANCE;
|
||||
|
||||
@ConfigGroup("gpu")
|
||||
public interface GpuPluginConfig extends Config
|
||||
|
||||
@@ -57,8 +57,6 @@ import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.GrandExchangeOfferChanged;
|
||||
import net.runelite.api.events.MenuEntryAdded;
|
||||
import net.runelite.client.events.SessionClose;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
@@ -68,6 +66,8 @@ import net.runelite.client.account.AccountSession;
|
||||
import net.runelite.client.account.SessionManager;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.SessionClose;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.input.KeyManager;
|
||||
import net.runelite.client.input.MouseManager;
|
||||
|
||||
@@ -106,7 +106,7 @@ public class GroundItemsOverlay extends Overlay
|
||||
offsetMap.clear();
|
||||
final LocalPoint localLocation = player.getLocalLocation();
|
||||
final Point mousePos = client.getMouseCanvasPosition();
|
||||
Collection<GroundItem> groundItemList = plugin.getCollectedGroundItems().values();
|
||||
Collection<GroundItem> groundItemList = GroundItemsPlugin.getCollectedGroundItems().values();
|
||||
GroundItem topGroundItem = null;
|
||||
|
||||
if (plugin.isHotKeyPressed())
|
||||
|
||||
@@ -125,7 +125,9 @@ public class GroundMarkerPlugin extends Plugin
|
||||
}
|
||||
|
||||
// CHECKSTYLE:OFF
|
||||
return GSON.fromJson(json, new TypeToken<List<GroundMarkerPoint>>(){}.getType());
|
||||
return GSON.fromJson(json, new TypeToken<List<GroundMarkerPoint>>()
|
||||
{
|
||||
}.getType());
|
||||
// CHECKSTYLE:ON
|
||||
}
|
||||
|
||||
|
||||
@@ -165,6 +165,7 @@ public interface HidePrayersINDIVIDUALConfig extends Config
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem
|
||||
(
|
||||
position = 11,
|
||||
|
||||
@@ -29,7 +29,15 @@ package net.runelite.client.plugins.hideprayers.INDIVIDUAL;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.inject.Provides;
|
||||
import net.runelite.api.*;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.HashTable;
|
||||
import net.runelite.api.Prayer;
|
||||
import net.runelite.api.WidgetNode;
|
||||
import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
@@ -40,13 +48,8 @@ import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginManager;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
import net.runelite.client.plugins.hideprayers.util.PrayerTabStates;
|
||||
import javax.inject.Inject;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@PluginDescriptor
|
||||
(
|
||||
@@ -157,7 +160,8 @@ public class HidePrayersINDIVIDUALPlugin extends Plugin
|
||||
if (widgetNode.getId() == WidgetID.PRAYER_GROUP_ID)
|
||||
{
|
||||
return PrayerTabStates.PRAYERS;
|
||||
} else if (widgetNode.getId() == WidgetID.QUICK_PRAYERS_GROUP_ID)
|
||||
}
|
||||
else if (widgetNode.getId() == WidgetID.QUICK_PRAYERS_GROUP_ID)
|
||||
{
|
||||
return PrayerTabStates.QUICK_PRAYERS;
|
||||
}
|
||||
@@ -168,26 +172,9 @@ public class HidePrayersINDIVIDUALPlugin extends Plugin
|
||||
private void restorePrayers()
|
||||
{
|
||||
if (client.getGameState() != GameState.LOGGED_IN)
|
||||
return;
|
||||
|
||||
PrayerTabStates prayerTabState = getPrayerTabState();
|
||||
|
||||
if (prayerTabState == PrayerTabStates.PRAYERS) {
|
||||
List<Widget> prayerWidgets = PRAYER_WIDGET_INFO_LIST.stream().map(client::getWidget)
|
||||
.filter(Objects::nonNull).collect(Collectors.toList());
|
||||
|
||||
if (prayerWidgets.size() != PRAYER_WIDGET_INFO_LIST.size())
|
||||
return;
|
||||
|
||||
for (int index = 0; index < PRAYER_COUNT; index++)
|
||||
prayerWidgets.get(Prayer.values()[index].ordinal()).setHidden(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void hidePrayers()
|
||||
{
|
||||
if (client.getGameState() != GameState.LOGGED_IN)
|
||||
return;
|
||||
}
|
||||
|
||||
PrayerTabStates prayerTabState = getPrayerTabState();
|
||||
|
||||
@@ -197,7 +184,35 @@ public class HidePrayersINDIVIDUALPlugin extends Plugin
|
||||
.filter(Objects::nonNull).collect(Collectors.toList());
|
||||
|
||||
if (prayerWidgets.size() != PRAYER_WIDGET_INFO_LIST.size())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (int index = 0; index < PRAYER_COUNT; index++)
|
||||
{
|
||||
prayerWidgets.get(Prayer.values()[index].ordinal()).setHidden(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void hidePrayers()
|
||||
{
|
||||
if (client.getGameState() != GameState.LOGGED_IN)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
PrayerTabStates prayerTabState = getPrayerTabState();
|
||||
|
||||
if (prayerTabState == PrayerTabStates.PRAYERS)
|
||||
{
|
||||
List<Widget> prayerWidgets = PRAYER_WIDGET_INFO_LIST.stream().map(client::getWidget)
|
||||
.filter(Objects::nonNull).collect(Collectors.toList());
|
||||
|
||||
if (prayerWidgets.size() != PRAYER_WIDGET_INFO_LIST.size())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (int index = 0; index < PRAYER_COUNT; index++)
|
||||
{
|
||||
@@ -234,7 +249,9 @@ public class HidePrayersINDIVIDUALPlugin extends Plugin
|
||||
&& !config.HidePiety()
|
||||
&& !config.HideRigour()
|
||||
&& !config.HideAugury())
|
||||
{
|
||||
prayerWidget.setHidden(false);
|
||||
}
|
||||
|
||||
if (config.showINDIVIDUALPrayers())
|
||||
{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user