move util.Text from client to api and make sure () works (#1460)
This commit is contained in:
@@ -6,8 +6,9 @@ dependencies {
|
|||||||
compileOnly group: 'org.projectlombok', name: 'lombok', version: lombok
|
compileOnly group: 'org.projectlombok', name: 'lombok', version: lombok
|
||||||
|
|
||||||
implementation group: 'com.google.code.findbugs', name: 'jsr305', version: findbugs
|
implementation group: 'com.google.code.findbugs', name: 'jsr305', version: findbugs
|
||||||
implementation group: 'org.slf4j', name: 'slf4j-api', version: slf4j
|
implementation group: 'com.google.guava', name: 'guava', version: guava
|
||||||
implementation group: 'org.apache.commons', name: 'commons-text', version: apacheCommonsText
|
implementation group: 'org.apache.commons', name: 'commons-text', version: apacheCommonsText
|
||||||
|
implementation group: 'org.slf4j', name: 'slf4j-api', version: slf4j
|
||||||
|
|
||||||
testImplementation group: 'junit', name: 'junit', version: junit
|
testImplementation group: 'junit', name: 'junit', version: junit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ package net.runelite.api;
|
|||||||
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import net.runelite.api.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
@@ -84,6 +83,7 @@ public class MenuEntry
|
|||||||
this.param0 = param0;
|
this.param0 = param0;
|
||||||
this.param1 = param1;
|
this.param1 = param1;
|
||||||
this.forceLeftClick = forceLeftClick;
|
this.forceLeftClick = forceLeftClick;
|
||||||
|
this.standardizedTarget = Text.standardize(target, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MenuEntry copy(MenuEntry src)
|
public static MenuEntry copy(MenuEntry src)
|
||||||
@@ -102,19 +102,8 @@ public class MenuEntry
|
|||||||
public void setTarget(String target)
|
public void setTarget(String target)
|
||||||
{
|
{
|
||||||
this.target = target;
|
this.target = target;
|
||||||
this.standardizedTarget = null;
|
this.standardizedTarget = Text.standardize(target, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Getter(AccessLevel.NONE)
|
|
||||||
private String standardizedTarget;
|
private String standardizedTarget;
|
||||||
|
|
||||||
public String getStandardizedTarget()
|
|
||||||
{
|
|
||||||
if (standardizedTarget == null)
|
|
||||||
{
|
|
||||||
standardizedTarget = Text.standardize(target, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
return standardizedTarget;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
package net.runelite.client.util;
|
package net.runelite.api.util;
|
||||||
|
|
||||||
import com.google.common.base.CharMatcher;
|
import com.google.common.base.CharMatcher;
|
||||||
|
|
||||||
@@ -1,10 +1,74 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018, Joshua Filby <joshua@filby.me>
|
||||||
|
* Copyright (c) 2018, Jordan Atwood <jordan.atwood423@gmail.com>
|
||||||
|
* Copyright (c) 2019, Lucas <https://github.com/Lucwousin>
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
package net.runelite.api.util;
|
package net.runelite.api.util;
|
||||||
|
|
||||||
|
import com.google.common.base.CharMatcher;
|
||||||
|
import com.google.common.base.Joiner;
|
||||||
|
import com.google.common.base.Splitter;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.commons.text.WordUtils;
|
||||||
|
|
||||||
public class Text
|
public class Text
|
||||||
{
|
{
|
||||||
private static final StringBuilder SB = new StringBuilder(32);
|
private static final StringBuilder SB = new StringBuilder(64);
|
||||||
|
|
||||||
|
private static final Splitter COMMA_SPLITTER = Splitter
|
||||||
|
.on(",")
|
||||||
|
.omitEmptyStrings()
|
||||||
|
.trimResults();
|
||||||
|
|
||||||
|
private static final Joiner COMMA_JOINER = Joiner.on(",").skipNulls();
|
||||||
|
|
||||||
|
public static final CharMatcher JAGEX_PRINTABLE_CHAR_MATCHER = new JagexPrintableCharMatcher();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Splits comma separated values to list of strings
|
||||||
|
*
|
||||||
|
* @param input input
|
||||||
|
* @return list of values
|
||||||
|
*/
|
||||||
|
public static List<String> fromCSV(final String input)
|
||||||
|
{
|
||||||
|
return COMMA_SPLITTER.splitToList(input);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Joins collection of strings as comma separated values
|
||||||
|
*
|
||||||
|
* @param input collection
|
||||||
|
* @return comma separated value string
|
||||||
|
*/
|
||||||
|
public static String toCSV(final Collection<String> input)
|
||||||
|
{
|
||||||
|
return COMMA_JOINER.join(input);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes all tags from the given string.
|
* Removes all tags from the given string.
|
||||||
*
|
*
|
||||||
@@ -14,23 +78,19 @@ public class Text
|
|||||||
* I know this is a monstrosity, but old frankenstein here
|
* I know this is a monstrosity, but old frankenstein here
|
||||||
* is twice as fast as the old regex method was.
|
* is twice as fast as the old regex method was.
|
||||||
* Seems worth it to me
|
* Seems worth it to me
|
||||||
|
*
|
||||||
|
* Having removeLevels true removes the " (level-xxx)" from text
|
||||||
|
* as well. This should obviously only be used for this purpose.
|
||||||
*/
|
*/
|
||||||
public static String removeTags(String str, boolean removeLevel)
|
public static String removeTags(String str, boolean removeLevels)
|
||||||
{
|
{
|
||||||
int strLen = str.length();
|
int strLen = str.length();
|
||||||
if (removeLevel)
|
if (removeLevels)
|
||||||
{
|
{
|
||||||
if (str.charAt(strLen - 1) == ')')
|
int levelIdx = StringUtils.lastIndexOf(str, " (level");
|
||||||
|
if (levelIdx >= 0)
|
||||||
{
|
{
|
||||||
int levelStart = StringUtils.lastIndexOf(str, '(');
|
strLen = levelIdx;
|
||||||
// if it's not in the string the while will act like a if
|
|
||||||
while (--levelStart >= 0)
|
|
||||||
{
|
|
||||||
if (str.charAt(levelStart) != ' ')
|
|
||||||
{
|
|
||||||
strLen = levelStart;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,7 +98,7 @@ public class Text
|
|||||||
if ((open = StringUtils.indexOf(str, '<')) == -1
|
if ((open = StringUtils.indexOf(str, '<')) == -1
|
||||||
|| (close = StringUtils.indexOf(str, '>', open)) == -1)
|
|| (close = StringUtils.indexOf(str, '>', open)) == -1)
|
||||||
{
|
{
|
||||||
return strLen == str.length() ? str : StringUtils.left(str, strLen);
|
return strLen == str.length() ? str : str.substring(0, strLen - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the string starts with a < we can maybe take a shortcut if this
|
// If the string starts with a < we can maybe take a shortcut if this
|
||||||
@@ -84,6 +144,12 @@ public class Text
|
|||||||
return SB.toString();
|
return SB.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String removeTags(String str)
|
||||||
|
{
|
||||||
|
return removeTags(str, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In addition to removing all tags, replaces nbsp with space, trims string and lowercases it
|
* In addition to removing all tags, replaces nbsp with space, trims string and lowercases it
|
||||||
*
|
*
|
||||||
@@ -105,4 +171,125 @@ public class Text
|
|||||||
return standardize(str, false);
|
return standardize(str, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert a string into Jagex username format
|
||||||
|
* Remove all non-ascii characters, replace nbsp with space, replace _- with spaces, and trim
|
||||||
|
*
|
||||||
|
* @param str The string to standardize
|
||||||
|
* @return The given `str` that is in Jagex name format
|
||||||
|
*/
|
||||||
|
public static String toJagexName(String str)
|
||||||
|
{
|
||||||
|
char[] chars = str.toCharArray();
|
||||||
|
int newIdx = 0;
|
||||||
|
|
||||||
|
for (int oldIdx = 0, strLen = str.length(); oldIdx < strLen; oldIdx++)
|
||||||
|
{
|
||||||
|
char c = chars[oldIdx];
|
||||||
|
|
||||||
|
// take care of replacing and trimming in 1 go
|
||||||
|
if (c == '\u00A0' || c == '-' || c == '_' || c == ' ')
|
||||||
|
{
|
||||||
|
if (oldIdx == strLen - 1 || newIdx == 0 || chars[newIdx - 1] == ' ')
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
c = ' ';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 0 - 127 is valid ascii
|
||||||
|
if (c > 127)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
chars[newIdx++] = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new String(chars, 0, newIdx);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* In addition to removing all tags, replaces all <br> delimited text with spaces and all multiple continuous
|
||||||
|
* spaces with single space
|
||||||
|
*
|
||||||
|
* @param str The string to sanitize
|
||||||
|
* @return sanitized string
|
||||||
|
*/
|
||||||
|
public static String sanitizeMultilineText(String str)
|
||||||
|
{
|
||||||
|
return removeTags(str
|
||||||
|
.replaceAll("-<br>", "-")
|
||||||
|
.replaceAll("<br>", " ")
|
||||||
|
.replaceAll("[ ]+", " "));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escapes a string for widgets, replacing < and > with their escaped counterparts
|
||||||
|
*/
|
||||||
|
public static String escapeJagex(String str)
|
||||||
|
{
|
||||||
|
StringBuilder out = new StringBuilder(str.length());
|
||||||
|
|
||||||
|
for (int i = 0; i < str.length(); i++)
|
||||||
|
{
|
||||||
|
char c = str.charAt(i);
|
||||||
|
if (c == '<')
|
||||||
|
{
|
||||||
|
out.append("<lt>");
|
||||||
|
}
|
||||||
|
else if (c == '>')
|
||||||
|
{
|
||||||
|
out.append("<gt>");
|
||||||
|
}
|
||||||
|
else if (c == '\n')
|
||||||
|
{
|
||||||
|
out.append("<br>");
|
||||||
|
}
|
||||||
|
else if (c != '\r')
|
||||||
|
{
|
||||||
|
out.append(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cleans the ironman status icon from playername string if present and
|
||||||
|
* corrects spaces.
|
||||||
|
*
|
||||||
|
* @param name Playername to lookup.
|
||||||
|
* @return Cleaned playername.
|
||||||
|
*/
|
||||||
|
public static String sanitize(String name)
|
||||||
|
{
|
||||||
|
String cleaned = name.contains("<img") ? name.substring(name.lastIndexOf('>') + 1) : name;
|
||||||
|
return cleaned.replace('\u00A0', ' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If passed in enum doesn't implement its own toString,
|
||||||
|
* converts enum name format from THIS_FORMAT to This Format.
|
||||||
|
*
|
||||||
|
* @param o an enum
|
||||||
|
* @return the enum's name in title case,
|
||||||
|
* or if it overrides toString,
|
||||||
|
* the value returned by toString
|
||||||
|
*/
|
||||||
|
public static String titleCase(Enum o)
|
||||||
|
{
|
||||||
|
String toString = o.toString();
|
||||||
|
|
||||||
|
// .toString() returns the value of .name() if not overridden
|
||||||
|
if (o.name().equals(toString))
|
||||||
|
{
|
||||||
|
return WordUtils
|
||||||
|
.capitalize(toString.toLowerCase(), '_')
|
||||||
|
.replace('_', ' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
return toString;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
package net.runelite.client.util;
|
package net.runelite.api.util;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -40,6 +40,13 @@ public class TextTest
|
|||||||
assertEquals("Use Item -> Man", Text.removeTags("Use Item -> Man"));
|
assertEquals("Use Item -> Man", Text.removeTags("Use Item -> Man"));
|
||||||
assertEquals("a < b", Text.removeTags("a < b"));
|
assertEquals("a < b", Text.removeTags("a < b"));
|
||||||
assertEquals("Remove no tags", Text.removeTags("Remove no tags"));
|
assertEquals("Remove no tags", Text.removeTags("Remove no tags"));
|
||||||
|
assertEquals("Zezima", Text.removeTags("<col=ffffff><img=2>Zezima<col=00ffff> (level-126)", true));
|
||||||
|
assertEquals("", Text.removeTags("<col=ffffff><img=2><col=00ffff> (level-126)", true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void toJagexName()
|
||||||
|
{
|
||||||
|
assertEquals("Whoever This Is Lmao", Text.toJagexName("-__- - \u00A0\u00A0 Whoever\uABCD\uABCD\u00A0T\uABBBhis Is-Lmao"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -26,7 +26,7 @@ package net.runelite.client.chat;
|
|||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
public class ChatMessageBuilder
|
public class ChatMessageBuilder
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ import net.runelite.api.events.ClanChanged;
|
|||||||
import net.runelite.api.events.GameStateChanged;
|
import net.runelite.api.events.GameStateChanged;
|
||||||
import net.runelite.client.eventbus.EventBus;
|
import net.runelite.client.eventbus.EventBus;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class ClanManager
|
public class ClanManager
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ import net.runelite.client.callback.ClientThread;
|
|||||||
import net.runelite.client.input.KeyListener;
|
import net.runelite.client.input.KeyListener;
|
||||||
import net.runelite.client.input.MouseListener;
|
import net.runelite.client.input.MouseListener;
|
||||||
import net.runelite.client.util.MiscUtils;
|
import net.runelite.client.util.MiscUtils;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ChatboxTextInput extends ChatboxInput implements KeyListener, MouseListener
|
public class ChatboxTextInput extends ChatboxInput implements KeyListener, MouseListener
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import javax.annotation.Nonnull;
|
|||||||
import joptsimple.internal.Strings;
|
import joptsimple.internal.Strings;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import net.runelite.api.MenuEntry;
|
import net.runelite.api.MenuEntry;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import lombok.Setter;
|
|||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.ItemDefinition;
|
import net.runelite.api.ItemDefinition;
|
||||||
import net.runelite.api.MenuEntry;
|
import net.runelite.api.MenuEntry;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ import net.runelite.api.events.WidgetPressed;
|
|||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.eventbus.EventBus;
|
import net.runelite.client.eventbus.EventBus;
|
||||||
import static net.runelite.client.menus.ComparableEntries.newBaseComparableEntry;
|
import static net.runelite.client.menus.ComparableEntries.newBaseComparableEntry;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ import net.runelite.client.plugins.achievementdiary.diaries.MorytaniaDiaryRequir
|
|||||||
import net.runelite.client.plugins.achievementdiary.diaries.VarrockDiaryRequirement;
|
import net.runelite.client.plugins.achievementdiary.diaries.VarrockDiaryRequirement;
|
||||||
import net.runelite.client.plugins.achievementdiary.diaries.WesternDiaryRequirement;
|
import net.runelite.client.plugins.achievementdiary.diaries.WesternDiaryRequirement;
|
||||||
import net.runelite.client.plugins.achievementdiary.diaries.WildernessDiaryRequirement;
|
import net.runelite.client.plugins.achievementdiary.diaries.WildernessDiaryRequirement;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ import net.runelite.client.plugins.banktags.tabs.TabInterface;
|
|||||||
import net.runelite.client.plugins.banktags.tabs.TabSprites;
|
import net.runelite.client.plugins.banktags.tabs.TabSprites;
|
||||||
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
||||||
import net.runelite.client.util.StackFormatter;
|
import net.runelite.client.util.StackFormatter;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Bank Tags",
|
name = "Bank Tags",
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ import net.runelite.client.plugins.cluescrolls.clues.FairyRingClue;
|
|||||||
import net.runelite.client.plugins.cluescrolls.clues.HotColdClue;
|
import net.runelite.client.plugins.cluescrolls.clues.HotColdClue;
|
||||||
import net.runelite.client.plugins.cluescrolls.clues.MapClue;
|
import net.runelite.client.plugins.cluescrolls.clues.MapClue;
|
||||||
import net.runelite.client.plugins.cluescrolls.clues.item.ItemRequirement;
|
import net.runelite.client.plugins.cluescrolls.clues.item.ItemRequirement;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class TagManager
|
public class TagManager
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ import static net.runelite.client.plugins.banktags.tabs.MenuIndexes.NewTab;
|
|||||||
import static net.runelite.client.plugins.banktags.tabs.MenuIndexes.Tab;
|
import static net.runelite.client.plugins.banktags.tabs.MenuIndexes.Tab;
|
||||||
import net.runelite.client.ui.JagexColors;
|
import net.runelite.client.ui.JagexColors;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class TabInterface
|
public class TabInterface
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import net.runelite.api.ItemID;
|
|||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import static net.runelite.client.plugins.banktags.BankTagsPlugin.CONFIG_GROUP;
|
import static net.runelite.client.plugins.banktags.BankTagsPlugin.CONFIG_GROUP;
|
||||||
import static net.runelite.client.plugins.banktags.BankTagsPlugin.ICON_SEARCH;
|
import static net.runelite.client.plugins.banktags.BankTagsPlugin.ICON_SEARCH;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.math.NumberUtils;
|
import org.apache.commons.lang3.math.NumberUtils;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ import net.runelite.client.eventbus.EventBus;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.plugins.PluginType;
|
import net.runelite.client.plugins.PluginType;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.http.api.RuneLiteAPI;
|
import net.runelite.http.api.RuneLiteAPI;
|
||||||
import okhttp3.Call;
|
import okhttp3.Call;
|
||||||
import okhttp3.Callback;
|
import okhttp3.Callback;
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ import net.runelite.client.ui.overlay.infobox.InfoBox;
|
|||||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -33,12 +33,14 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import net.runelite.api.ChatMessageType;
|
import net.runelite.api.ChatMessageType;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.GameState;
|
import net.runelite.api.GameState;
|
||||||
|
import net.runelite.api.MenuEntry;
|
||||||
import net.runelite.api.events.ChatMessage;
|
import net.runelite.api.events.ChatMessage;
|
||||||
import net.runelite.api.events.ConfigChanged;
|
import net.runelite.api.events.ConfigChanged;
|
||||||
import net.runelite.api.events.GameStateChanged;
|
import net.runelite.api.events.GameStateChanged;
|
||||||
import net.runelite.api.events.GameTick;
|
import net.runelite.api.events.GameTick;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import net.runelite.client.eventbus.EventBus;
|
import net.runelite.client.eventbus.EventBus;
|
||||||
|
import net.runelite.client.menus.AbstractComparableEntry;
|
||||||
import net.runelite.client.menus.MenuManager;
|
import net.runelite.client.menus.MenuManager;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
@@ -60,13 +62,21 @@ import org.apache.commons.lang3.RandomUtils;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class BlackjackPlugin extends Plugin
|
public class BlackjackPlugin extends Plugin
|
||||||
{
|
{
|
||||||
|
private static final int POLLNIVNEACH_REGION = 13358;
|
||||||
|
|
||||||
private static final String SUCCESS_BLACKJACK = "You smack the bandit over the head and render them unconscious.";
|
private static final String SUCCESS_BLACKJACK = "You smack the bandit over the head and render them unconscious.";
|
||||||
private static final String FAILED_BLACKJACK = "Your blow only glances off the bandit's head.";
|
private static final String FAILED_BLACKJACK = "Your blow only glances off the bandit's head.";
|
||||||
private static final int POLLNIVNEACH_REGION = 13358;
|
|
||||||
private static final String PICKPOCKET = "Pickpocket";
|
private static final String PICKPOCKET = "Pickpocket";
|
||||||
private static final String KNOCK_OUT = "Knock-out";
|
private static final String KNOCK_OUT = "Knock-out";
|
||||||
private static final String BANDIT = "Bandit";
|
private static final String BANDIT = "Bandit";
|
||||||
private static final String MENAPHITE = "Menaphite Thug";
|
private static final String MENAPHITE = "Menaphite Thug";
|
||||||
|
|
||||||
|
private static final AbstractComparableEntry PICKPOCKET_BANDIT = new BJComparableEntry(BANDIT, true);
|
||||||
|
private static final AbstractComparableEntry KNOCKOUT_BANDIT = new BJComparableEntry(BANDIT, false);
|
||||||
|
private static final AbstractComparableEntry PICKPOCKET_MENAPHITE = new BJComparableEntry(MENAPHITE, true);
|
||||||
|
private static final AbstractComparableEntry KNOCKOUT_MENAPHITE = new BJComparableEntry(MENAPHITE, false);
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Client client;
|
private Client client;
|
||||||
@Inject
|
@Inject
|
||||||
@@ -90,18 +100,18 @@ public class BlackjackPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||||
menuManager.addPriorityEntry(KNOCK_OUT, BANDIT).setPriority(100);
|
menuManager.addPriorityEntry(KNOCKOUT_BANDIT);
|
||||||
menuManager.addPriorityEntry(KNOCK_OUT, MENAPHITE).setPriority(100);
|
menuManager.addPriorityEntry(KNOCKOUT_MENAPHITE);
|
||||||
this.pickpocketOnAggro = config.pickpocketOnAggro();
|
this.pickpocketOnAggro = config.pickpocketOnAggro();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void shutDown() throws Exception
|
protected void shutDown() throws Exception
|
||||||
{
|
{
|
||||||
menuManager.removePriorityEntry(PICKPOCKET, BANDIT);
|
menuManager.removePriorityEntry(PICKPOCKET_BANDIT);
|
||||||
menuManager.removePriorityEntry(PICKPOCKET, MENAPHITE);
|
menuManager.removePriorityEntry(PICKPOCKET_MENAPHITE);
|
||||||
menuManager.removePriorityEntry(KNOCK_OUT, BANDIT);
|
menuManager.removePriorityEntry(KNOCKOUT_BANDIT);
|
||||||
menuManager.removePriorityEntry(KNOCK_OUT, MENAPHITE);
|
menuManager.removePriorityEntry(KNOCKOUT_MENAPHITE);
|
||||||
eventBus.unregister(this);
|
eventBus.unregister(this);
|
||||||
eventBus.unregister("poll");
|
eventBus.unregister("poll");
|
||||||
}
|
}
|
||||||
@@ -131,10 +141,10 @@ public class BlackjackPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
if (client.getTickCount() >= nextKnockOutTick)
|
if (client.getTickCount() >= nextKnockOutTick)
|
||||||
{
|
{
|
||||||
menuManager.removePriorityEntry(PICKPOCKET, BANDIT);
|
menuManager.removePriorityEntry(PICKPOCKET_BANDIT);
|
||||||
menuManager.removePriorityEntry(PICKPOCKET, MENAPHITE);
|
menuManager.removePriorityEntry(PICKPOCKET_MENAPHITE);
|
||||||
menuManager.addPriorityEntry(KNOCK_OUT, BANDIT).setPriority(100);
|
menuManager.addPriorityEntry(KNOCKOUT_BANDIT);
|
||||||
menuManager.addPriorityEntry(KNOCK_OUT, MENAPHITE).setPriority(100);
|
menuManager.addPriorityEntry(KNOCKOUT_MENAPHITE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,14 +152,37 @@ public class BlackjackPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
final String msg = event.getMessage();
|
final String msg = event.getMessage();
|
||||||
|
|
||||||
if (event.getType() == ChatMessageType.SPAM && msg.equals(SUCCESS_BLACKJACK) ^ (msg.equals(FAILED_BLACKJACK) && this.pickpocketOnAggro))
|
if (event.getType() == ChatMessageType.SPAM && (msg.equals(SUCCESS_BLACKJACK) || (msg.equals(FAILED_BLACKJACK) && this.pickpocketOnAggro)))
|
||||||
{
|
{
|
||||||
menuManager.removePriorityEntry(KNOCK_OUT, BANDIT);
|
menuManager.removePriorityEntry(KNOCKOUT_BANDIT);
|
||||||
menuManager.removePriorityEntry(KNOCK_OUT, MENAPHITE);
|
menuManager.removePriorityEntry(KNOCKOUT_MENAPHITE);
|
||||||
menuManager.addPriorityEntry(PICKPOCKET, BANDIT).setPriority(100);
|
menuManager.addPriorityEntry(PICKPOCKET_BANDIT);
|
||||||
menuManager.addPriorityEntry(PICKPOCKET, MENAPHITE).setPriority(100);
|
menuManager.addPriorityEntry(PICKPOCKET_MENAPHITE);
|
||||||
final int ticks = this.random ? RandomUtils.nextInt(3, 4) : 4;
|
final int ticks = this.random ? RandomUtils.nextInt(3, 4) : 4;
|
||||||
nextKnockOutTick = client.getTickCount() + ticks;
|
nextKnockOutTick = client.getTickCount() + ticks;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class BJComparableEntry extends AbstractComparableEntry
|
||||||
|
{
|
||||||
|
private BJComparableEntry(final String npc, final boolean pickpocket)
|
||||||
|
{
|
||||||
|
if (!BANDIT.equals(npc) && !MENAPHITE.equals(npc))
|
||||||
|
{
|
||||||
|
throw new IllegalArgumentException("Only bandits or menaphites are valid");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setTarget(npc.toLowerCase());
|
||||||
|
this.setOption(pickpocket ? PICKPOCKET : KNOCK_OUT);
|
||||||
|
this.setPriority(100);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean matches(MenuEntry entry)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
entry.getStandardizedTarget().equals(this.getTarget()) &&
|
||||||
|
entry.getOption().equalsIgnoreCase(this.getOption());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ import net.runelite.client.plugins.Plugin;
|
|||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Blast Furnace",
|
name = "Blast Furnace",
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ import net.runelite.client.input.KeyManager;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.util.StackFormatter;
|
import net.runelite.client.util.StackFormatter;
|
||||||
import static net.runelite.client.util.Text.sanitize;
|
import static net.runelite.api.util.Text.sanitize;
|
||||||
import net.runelite.http.api.chat.ChatClient;
|
import net.runelite.http.api.chat.ChatClient;
|
||||||
import net.runelite.http.api.chat.Duels;
|
import net.runelite.http.api.chat.Duels;
|
||||||
import net.runelite.http.api.hiscore.HiscoreClient;
|
import net.runelite.http.api.hiscore.HiscoreClient;
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ import net.runelite.client.config.ConfigManager;
|
|||||||
import net.runelite.client.eventbus.EventBus;
|
import net.runelite.client.eventbus.EventBus;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ import net.runelite.client.input.KeyListener;
|
|||||||
import net.runelite.client.input.KeyManager;
|
import net.runelite.client.input.KeyManager;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Chat History",
|
name = "Chat History",
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ import net.runelite.client.config.ConfigManager;
|
|||||||
import net.runelite.client.eventbus.EventBus;
|
import net.runelite.client.eventbus.EventBus;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Chat Notifications",
|
name = "Chat Notifications",
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ import net.runelite.client.menus.MenuManager;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.plugins.PluginType;
|
import net.runelite.client.plugins.PluginType;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ import static net.runelite.client.ui.JagexColors.CHAT_CLAN_NAME_TRANSPARENT_BACK
|
|||||||
import static net.runelite.client.ui.JagexColors.CHAT_CLAN_TEXT_OPAQUE_BACKGROUND;
|
import static net.runelite.client.ui.JagexColors.CHAT_CLAN_TEXT_OPAQUE_BACKGROUND;
|
||||||
import static net.runelite.client.ui.JagexColors.CHAT_CLAN_TEXT_TRANSPARENT_BACKGROUND;
|
import static net.runelite.client.ui.JagexColors.CHAT_CLAN_TEXT_TRANSPARENT_BACKGROUND;
|
||||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Clan Chat",
|
name = "Clan Chat",
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ import net.runelite.client.ui.overlay.components.TextComponent;
|
|||||||
import net.runelite.client.ui.overlay.worldmap.WorldMapPointManager;
|
import net.runelite.client.ui.overlay.worldmap.WorldMapPointManager;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.ItemUtil;
|
import net.runelite.client.util.ItemUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Clue Scroll",
|
name = "Clue Scroll",
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
|||||||
import net.runelite.client.ui.overlay.components.LineComponent;
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
import net.runelite.client.ui.overlay.components.TitleComponent;
|
import net.runelite.client.ui.overlay.components.TitleComponent;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import java.util.Set;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Getter
|
@Getter
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ import net.runelite.client.ui.components.colorpicker.RuneliteColorPicker;
|
|||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.MiscUtils;
|
import net.runelite.client.util.MiscUtils;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ import net.runelite.client.plugins.Plugin;
|
|||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.plugins.PluginType;
|
import net.runelite.client.plugins.PluginType;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "CoX Helper",
|
name = "CoX Helper",
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import net.runelite.client.config.ConfigManager;
|
|||||||
import net.runelite.client.eventbus.EventBus;
|
import net.runelite.client.eventbus.EventBus;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Entity Hider",
|
name = "Entity Hider",
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ import net.runelite.client.plugins.PluginType;
|
|||||||
import net.runelite.client.ui.ClientToolbar;
|
import net.runelite.client.ui.ClientToolbar;
|
||||||
import net.runelite.client.ui.NavigationButton;
|
import net.runelite.client.ui.NavigationButton;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Equipment Inspector",
|
name = "Equipment Inspector",
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ import net.runelite.client.game.chatbox.ChatboxPanelManager;
|
|||||||
import net.runelite.client.game.chatbox.ChatboxTextInput;
|
import net.runelite.client.game.chatbox.ChatboxTextInput;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ import net.runelite.client.plugins.Plugin;
|
|||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ import net.runelite.client.menus.WidgetMenuOption;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.plugins.PluginType;
|
import net.runelite.client.plugins.PluginType;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import net.runelite.api.MenuEntry;
|
|||||||
import net.runelite.client.input.KeyListener;
|
import net.runelite.client.input.KeyListener;
|
||||||
import net.runelite.client.input.MouseAdapter;
|
import net.runelite.client.input.MouseAdapter;
|
||||||
import static net.runelite.client.plugins.grandexchange.GrandExchangePlugin.SEARCH_GRAND_EXCHANGE;
|
import static net.runelite.client.plugins.grandexchange.GrandExchangePlugin.SEARCH_GRAND_EXCHANGE;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class GrandExchangeInputListener extends MouseAdapter implements KeyListener
|
public class GrandExchangeInputListener extends MouseAdapter implements KeyListener
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ import net.runelite.client.ui.ClientToolbar;
|
|||||||
import net.runelite.client.ui.NavigationButton;
|
import net.runelite.client.ui.NavigationButton;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.StackFormatter;
|
import net.runelite.client.util.StackFormatter;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.http.api.ge.GrandExchangeClient;
|
import net.runelite.http.api.ge.GrandExchangeClient;
|
||||||
import net.runelite.http.api.ge.GrandExchangeTrade;
|
import net.runelite.http.api.ge.GrandExchangeTrade;
|
||||||
import net.runelite.http.api.osbuddy.OSBGrandExchangeClient;
|
import net.runelite.http.api.osbuddy.OSBGrandExchangeClient;
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ import net.runelite.client.plugins.grounditems.config.ValueCalculationMode;
|
|||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.StackFormatter;
|
import net.runelite.client.util.StackFormatter;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Ground Items",
|
name = "Ground Items",
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ import net.runelite.client.plugins.Plugin;
|
|||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ import net.runelite.client.plugins.PluginDescriptor;
|
|||||||
import net.runelite.client.ui.ClientToolbar;
|
import net.runelite.client.ui.ClientToolbar;
|
||||||
import net.runelite.client.ui.NavigationButton;
|
import net.runelite.client.ui.NavigationButton;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ import net.runelite.client.plugins.Plugin;
|
|||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Inventory Tags",
|
name = "Inventory Tags",
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ import net.runelite.client.plugins.Plugin;
|
|||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
import static net.runelite.api.ItemID.RING_OF_RECOIL;
|
import static net.runelite.api.ItemID.RING_OF_RECOIL;
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ import net.runelite.client.ui.ColorScheme;
|
|||||||
import net.runelite.client.ui.FontManager;
|
import net.runelite.client.ui.FontManager;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.StackFormatter;
|
import net.runelite.client.util.StackFormatter;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
class LootTrackerBox extends JPanel
|
class LootTrackerBox extends JPanel
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ import net.runelite.client.ui.ClientToolbar;
|
|||||||
import net.runelite.client.ui.NavigationButton;
|
import net.runelite.client.ui.NavigationButton;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.StackFormatter;
|
import net.runelite.client.util.StackFormatter;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.http.api.RuneLiteAPI;
|
import net.runelite.http.api.RuneLiteAPI;
|
||||||
import net.runelite.http.api.loottracker.GameItem;
|
import net.runelite.http.api.loottracker.GameItem;
|
||||||
import net.runelite.http.api.loottracker.LootRecord;
|
import net.runelite.http.api.loottracker.LootRecord;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import net.runelite.api.MenuEntry;
|
|||||||
import net.runelite.api.widgets.WidgetID;
|
import net.runelite.api.widgets.WidgetID;
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.menus.AbstractComparableEntry;
|
import net.runelite.client.menus.AbstractComparableEntry;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import net.runelite.api.MenuEntry;
|
|||||||
import net.runelite.api.widgets.WidgetID;
|
import net.runelite.api.widgets.WidgetID;
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.menus.AbstractComparableEntry;
|
import net.runelite.client.menus.AbstractComparableEntry;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ import net.runelite.client.plugins.pvptools.PvpToolsPlugin;
|
|||||||
import net.runelite.client.util.HotkeyListener;
|
import net.runelite.client.util.HotkeyListener;
|
||||||
import static net.runelite.client.util.MenuUtil.swap;
|
import static net.runelite.client.util.MenuUtil.swap;
|
||||||
import net.runelite.client.util.MiscUtils;
|
import net.runelite.client.util.MiscUtils;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ import net.runelite.client.plugins.Plugin;
|
|||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.task.Schedule;
|
import net.runelite.client.task.Schedule;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Motherlode Mine",
|
name = "Motherlode Mine",
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ import net.runelite.client.eventbus.EventBus;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Nightmare Zone",
|
name = "Nightmare Zone",
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ import net.runelite.client.input.KeyManager;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.client.util.WildcardMatcher;
|
import net.runelite.client.util.WildcardMatcher;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ import net.runelite.client.ui.overlay.Overlay;
|
|||||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class NpcSceneOverlay extends Overlay
|
public class NpcSceneOverlay extends Overlay
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ import net.runelite.client.ui.overlay.components.ComponentConstants;
|
|||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
import net.runelite.client.ui.overlay.components.ProgressBarComponent;
|
import net.runelite.client.ui.overlay.components.ProgressBarComponent;
|
||||||
import net.runelite.client.ui.overlay.components.TitleComponent;
|
import net.runelite.client.ui.overlay.components.TitleComponent;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.http.api.hiscore.HiscoreResult;
|
import net.runelite.http.api.hiscore.HiscoreResult;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ import net.runelite.client.ui.overlay.components.TitleComponent;
|
|||||||
import net.runelite.client.ui.overlay.components.table.TableAlignment;
|
import net.runelite.client.ui.overlay.components.table.TableAlignment;
|
||||||
import net.runelite.client.ui.overlay.components.table.TableComponent;
|
import net.runelite.client.ui.overlay.components.table.TableComponent;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.http.api.hiscore.HiscoreResult;
|
import net.runelite.http.api.hiscore.HiscoreResult;
|
||||||
import net.runelite.http.api.hiscore.HiscoreSkill;
|
import net.runelite.http.api.hiscore.HiscoreSkill;
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ import net.runelite.client.plugins.Plugin;
|
|||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.plugins.PluginType;
|
import net.runelite.client.plugins.PluginType;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.client.ws.PartyMember;
|
import net.runelite.client.ws.PartyMember;
|
||||||
import net.runelite.client.ws.PartyService;
|
import net.runelite.client.ws.PartyService;
|
||||||
import net.runelite.client.ws.WSClient;
|
import net.runelite.client.ws.WSClient;
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ import net.runelite.client.plugins.pestcontrol.config.HighlightPortalOption;
|
|||||||
import net.runelite.client.plugins.pestcontrol.config.NpcHighlightStyle;
|
import net.runelite.client.plugins.pestcontrol.config.NpcHighlightStyle;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ import net.runelite.http.api.hiscore.HiscoreResult;
|
|||||||
import net.runelite.http.api.hiscore.HiscoreSkill;
|
import net.runelite.http.api.hiscore.HiscoreSkill;
|
||||||
import net.runelite.http.api.hiscore.HiscoreEndpoint;
|
import net.runelite.http.api.hiscore.HiscoreEndpoint;
|
||||||
import static net.runelite.client.util.StackFormatter.formatNumber;
|
import static net.runelite.client.util.StackFormatter.formatNumber;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class PlayerIndicatorsOverlay extends Overlay
|
public class PlayerIndicatorsOverlay extends Overlay
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ import net.runelite.client.ui.overlay.OverlayLayer;
|
|||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
class PrayAgainstPlayerOverlay extends Overlay
|
class PrayAgainstPlayerOverlay extends Overlay
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ import net.runelite.client.plugins.puzzlesolver.lightbox.LightboxSolver;
|
|||||||
import net.runelite.client.plugins.puzzlesolver.lightbox.LightboxState;
|
import net.runelite.client.plugins.puzzlesolver.lightbox.LightboxState;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Puzzle Solver",
|
name = "Puzzle Solver",
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ import net.runelite.client.util.HotkeyListener;
|
|||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.PvPUtil;
|
import net.runelite.client.util.PvPUtil;
|
||||||
import static net.runelite.client.util.StackFormatter.quantityToRSDecimalStack;
|
import static net.runelite.client.util.StackFormatter.quantityToRSDecimalStack;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ import net.runelite.client.game.chatbox.ChatboxPanelManager;
|
|||||||
import net.runelite.client.game.chatbox.ChatboxTextInput;
|
import net.runelite.client.game.chatbox.ChatboxTextInput;
|
||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Quest List",
|
name = "Quest List",
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ import net.runelite.client.ui.overlay.components.table.TableAlignment;
|
|||||||
import net.runelite.client.ui.overlay.components.table.TableComponent;
|
import net.runelite.client.ui.overlay.components.table.TableComponent;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class RaidsOverlay extends Overlay
|
public class RaidsOverlay extends Overlay
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
|||||||
import net.runelite.client.ui.overlay.tooltip.Tooltip;
|
import net.runelite.client.ui.overlay.tooltip.Tooltip;
|
||||||
import net.runelite.client.ui.overlay.tooltip.TooltipManager;
|
import net.runelite.client.ui.overlay.tooltip.TooltipManager;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import static org.apache.commons.lang3.StringUtils.containsIgnoreCase;
|
import static org.apache.commons.lang3.StringUtils.containsIgnoreCase;
|
||||||
import net.runelite.client.ws.PartyMember;
|
import net.runelite.client.ws.PartyMember;
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ import net.runelite.client.ui.overlay.OverlayManager;
|
|||||||
import net.runelite.client.util.Clipboard;
|
import net.runelite.client.util.Clipboard;
|
||||||
import net.runelite.client.util.HotkeyListener;
|
import net.runelite.client.util.HotkeyListener;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.http.api.RuneLiteAPI;
|
import net.runelite.http.api.RuneLiteAPI;
|
||||||
import okhttp3.Call;
|
import okhttp3.Call;
|
||||||
import okhttp3.Callback;
|
import okhttp3.Callback;
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ import net.runelite.client.ui.overlay.OverlayManager;
|
|||||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.http.api.chat.ChatClient;
|
import net.runelite.http.api.chat.ChatClient;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ import net.runelite.client.ui.overlay.Overlay;
|
|||||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class TargetClickboxOverlay extends Overlay
|
public class TargetClickboxOverlay extends Overlay
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ import net.runelite.client.eventbus.EventBus;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.plugins.PluginType;
|
import net.runelite.client.plugins.PluginType;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Slayermusiq1 Guides",
|
name = "Slayermusiq1 Guides",
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import net.runelite.client.plugins.Plugin;
|
|||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.plugins.PluginType;
|
import net.runelite.client.plugins.PluginType;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Spawn Timer",
|
name = "Spawn Timer",
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ import net.runelite.client.plugins.PluginDescriptor;
|
|||||||
import net.runelite.client.plugins.PluginType;
|
import net.runelite.client.plugins.PluginType;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import static net.runelite.client.util.MiscUtils.clamp;
|
import static net.runelite.client.util.MiscUtils.clamp;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ import net.runelite.client.game.ItemManager;
|
|||||||
import net.runelite.client.ui.ColorScheme;
|
import net.runelite.client.ui.ColorScheme;
|
||||||
import net.runelite.client.ui.FontManager;
|
import net.runelite.client.ui.FontManager;
|
||||||
import net.runelite.client.util.StackFormatter;
|
import net.runelite.client.util.StackFormatter;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.http.api.item.ItemPrice;
|
import net.runelite.http.api.item.ItemPrice;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import net.runelite.client.plugins.theatre.RoomHandler;
|
|||||||
import net.runelite.client.plugins.theatre.TheatreConstant;
|
import net.runelite.client.plugins.theatre.TheatreConstant;
|
||||||
import net.runelite.client.plugins.theatre.TheatrePlugin;
|
import net.runelite.client.plugins.theatre.TheatrePlugin;
|
||||||
import net.runelite.client.plugins.theatre.TheatreRoom;
|
import net.runelite.client.plugins.theatre.TheatreRoom;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class MaidenHandler extends RoomHandler
|
public class MaidenHandler extends RoomHandler
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ import net.runelite.client.game.chatbox.ChatboxPanelManager;
|
|||||||
import net.runelite.client.plugins.Plugin;
|
import net.runelite.client.plugins.Plugin;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
import net.runelite.client.util.LinkBrowser;
|
import net.runelite.client.util.LinkBrowser;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import okhttp3.HttpUrl;
|
import okhttp3.HttpUrl;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ import net.runelite.client.ui.NavigationButton;
|
|||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.ExecutorServiceExceptionLogger;
|
import net.runelite.client.util.ExecutorServiceExceptionLogger;
|
||||||
import net.runelite.client.util.HotkeyListener;
|
import net.runelite.client.util.HotkeyListener;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.client.util.WorldUtil;
|
import net.runelite.client.util.WorldUtil;
|
||||||
import net.runelite.client.util.ping.Ping;
|
import net.runelite.client.util.ping.Ping;
|
||||||
import net.runelite.http.api.worlds.World;
|
import net.runelite.http.api.worlds.World;
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ import net.runelite.client.ui.ClientToolbar;
|
|||||||
import net.runelite.client.ui.NavigationButton;
|
import net.runelite.client.ui.NavigationButton;
|
||||||
import net.runelite.client.ui.overlay.OverlayManager;
|
import net.runelite.client.ui.overlay.OverlayManager;
|
||||||
import net.runelite.client.util.ImageUtil;
|
import net.runelite.client.util.ImageUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import net.runelite.http.api.xp.XpClient;
|
import net.runelite.http.api.xp.XpClient;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import javax.swing.ListCellRenderer;
|
|||||||
import javax.swing.border.EmptyBorder;
|
import javax.swing.border.EmptyBorder;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import net.runelite.client.ui.ColorScheme;
|
import net.runelite.client.ui.ColorScheme;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A custom list renderer to avoid substance's weird coloring.
|
* A custom list renderer to avoid substance's weird coloring.
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import javax.swing.JPanel;
|
|||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import static net.runelite.client.ui.components.colorpicker.RuneliteColorPicker.CONFIG_GROUP;
|
import static net.runelite.client.ui.components.colorpicker.RuneliteColorPicker.CONFIG_GROUP;
|
||||||
import net.runelite.client.util.ColorUtil;
|
import net.runelite.client.util.ColorUtil;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
final class RecentColors
|
final class RecentColors
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import java.util.stream.Stream;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.MenuEntry;
|
import net.runelite.api.MenuEntry;
|
||||||
|
import net.runelite.api.util.Text;
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|||||||
@@ -1,190 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2018, Joshua Filby <joshua@filby.me>
|
|
||||||
* Copyright (c) 2018, Jordan Atwood <jordan.atwood423@gmail.com>
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
package net.runelite.client.util;
|
|
||||||
|
|
||||||
import com.google.common.base.CharMatcher;
|
|
||||||
import com.google.common.base.Joiner;
|
|
||||||
import com.google.common.base.Splitter;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
import org.apache.commons.text.WordUtils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A set of utilities to use when dealing with text.
|
|
||||||
*/
|
|
||||||
public class Text
|
|
||||||
{
|
|
||||||
private static final Matcher TAG_REGEXP = Pattern.compile("<[^>]*>").matcher("");
|
|
||||||
private static final Splitter COMMA_SPLITTER = Splitter
|
|
||||||
.on(",")
|
|
||||||
.omitEmptyStrings()
|
|
||||||
.trimResults();
|
|
||||||
|
|
||||||
private static final Joiner COMMA_JOINER = Joiner.on(",").skipNulls();
|
|
||||||
|
|
||||||
public static final CharMatcher JAGEX_PRINTABLE_CHAR_MATCHER = new JagexPrintableCharMatcher();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Splits comma separated values to list of strings
|
|
||||||
*
|
|
||||||
* @param input input
|
|
||||||
* @return list of values
|
|
||||||
*/
|
|
||||||
public static List<String> fromCSV(final String input)
|
|
||||||
{
|
|
||||||
return COMMA_SPLITTER.splitToList(input);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Joins collection of strings as comma separated values
|
|
||||||
*
|
|
||||||
* @param input collection
|
|
||||||
* @return comma separated value string
|
|
||||||
*/
|
|
||||||
public static String toCSV(final Collection<String> input)
|
|
||||||
{
|
|
||||||
return COMMA_JOINER.join(input);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes all tags from the given string.
|
|
||||||
*
|
|
||||||
* @param str The string to remove tags from.
|
|
||||||
* @return The given string with all tags removed from it.
|
|
||||||
*/
|
|
||||||
public static String removeTags(String str)
|
|
||||||
{
|
|
||||||
return TAG_REGEXP.reset(str).replaceAll("");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* In addition to removing all tags, replaces nbsp with space, trims string and lowercases it
|
|
||||||
*
|
|
||||||
* @param str The string to standardize
|
|
||||||
* @return The given `str` that is standardized
|
|
||||||
*/
|
|
||||||
public static String standardize(String str)
|
|
||||||
{
|
|
||||||
return removeTags(str).replace('\u00A0', ' ').trim().toLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert a string into Jagex username format
|
|
||||||
* Remove all non-ascii characters, replace nbsp with space, replace _- with spaces, and trim
|
|
||||||
*
|
|
||||||
* @param str The string to standardize
|
|
||||||
* @return The given `str` that is in Jagex name format
|
|
||||||
*/
|
|
||||||
public static String toJagexName(String str)
|
|
||||||
{
|
|
||||||
return CharMatcher.ascii().retainFrom(str.replace('\u00A0', ' ')).replaceAll("[_-]+", " ").trim();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* In addition to removing all tags, replaces all <br> delimited text with spaces and all multiple continuous
|
|
||||||
* spaces with single space
|
|
||||||
*
|
|
||||||
* @param str The string to sanitize
|
|
||||||
* @return sanitized string
|
|
||||||
*/
|
|
||||||
public static String sanitizeMultilineText(String str)
|
|
||||||
{
|
|
||||||
return removeTags(str
|
|
||||||
.replaceAll("-<br>", "-")
|
|
||||||
.replaceAll("<br>", " ")
|
|
||||||
.replaceAll("[ ]+", " "));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Escapes a string for widgets, replacing < and > with their escaped counterparts
|
|
||||||
*/
|
|
||||||
public static String escapeJagex(String str)
|
|
||||||
{
|
|
||||||
StringBuilder out = new StringBuilder(str.length());
|
|
||||||
|
|
||||||
for (int i = 0; i < str.length(); i++)
|
|
||||||
{
|
|
||||||
char c = str.charAt(i);
|
|
||||||
if (c == '<')
|
|
||||||
{
|
|
||||||
out.append("<lt>");
|
|
||||||
}
|
|
||||||
else if (c == '>')
|
|
||||||
{
|
|
||||||
out.append("<gt>");
|
|
||||||
}
|
|
||||||
else if (c == '\n')
|
|
||||||
{
|
|
||||||
out.append("<br>");
|
|
||||||
}
|
|
||||||
else if (c != '\r')
|
|
||||||
{
|
|
||||||
out.append(c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return out.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Cleans the ironman status icon from playername string if present and
|
|
||||||
* corrects spaces.
|
|
||||||
*
|
|
||||||
* @param name Playername to lookup.
|
|
||||||
* @return Cleaned playername.
|
|
||||||
*/
|
|
||||||
public static String sanitize(String name)
|
|
||||||
{
|
|
||||||
String cleaned = name.contains("<img") ? name.substring(name.lastIndexOf('>') + 1) : name;
|
|
||||||
return cleaned.replace('\u00A0', ' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If passed in enum doesn't implement its own toString,
|
|
||||||
* converts enum name format from THIS_FORMAT to This Format.
|
|
||||||
*
|
|
||||||
* @param o an enum
|
|
||||||
* @return the enum's name in title case,
|
|
||||||
* or if it overrides toString,
|
|
||||||
* the value returned by toString
|
|
||||||
*/
|
|
||||||
public static String titleCase(Enum o)
|
|
||||||
{
|
|
||||||
String toString = o.toString();
|
|
||||||
|
|
||||||
// .toString() returns the value of .name() if not overridden
|
|
||||||
if (o.name().equals(toString))
|
|
||||||
{
|
|
||||||
return WordUtils
|
|
||||||
.capitalize(toString.toLowerCase(), '_')
|
|
||||||
.replace("_", " ");
|
|
||||||
}
|
|
||||||
|
|
||||||
return toString;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -40,7 +40,7 @@ import net.runelite.client.chat.ChatMessageManager;
|
|||||||
import net.runelite.client.chat.QueuedMessage;
|
import net.runelite.client.chat.QueuedMessage;
|
||||||
import net.runelite.client.eventbus.EventBus;
|
import net.runelite.client.eventbus.EventBus;
|
||||||
import net.runelite.client.events.PartyChanged;
|
import net.runelite.client.events.PartyChanged;
|
||||||
import static net.runelite.client.util.Text.JAGEX_PRINTABLE_CHAR_MATCHER;
|
import static net.runelite.api.util.Text.JAGEX_PRINTABLE_CHAR_MATCHER;
|
||||||
import net.runelite.http.api.ws.messages.party.Join;
|
import net.runelite.http.api.ws.messages.party.Join;
|
||||||
import net.runelite.http.api.ws.messages.party.Part;
|
import net.runelite.http.api.ws.messages.party.Part;
|
||||||
import net.runelite.http.api.ws.messages.party.PartyChatMessage;
|
import net.runelite.http.api.ws.messages.party.PartyChatMessage;
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ import net.runelite.api.events.ChatMessage;
|
|||||||
import net.runelite.client.Notifier;
|
import net.runelite.client.Notifier;
|
||||||
import net.runelite.client.chat.ChatMessageManager;
|
import net.runelite.client.chat.ChatMessageManager;
|
||||||
import net.runelite.client.config.RuneLitePlusConfig;
|
import net.runelite.client.config.RuneLitePlusConfig;
|
||||||
import net.runelite.client.util.Text;
|
import net.runelite.api.util.Text;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|||||||
Reference in New Issue
Block a user