From 0f347f3b91bb26669f6b5e859b7b958bf582f5ef Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Tue, 27 Aug 2019 14:15:34 +0200 Subject: [PATCH] move util.Text from client to api and make sure () works (#1460) --- runelite-api/build.gradle | 3 +- .../main/java/net/runelite/api/MenuEntry.java | 15 +- .../api}/util/JagexPrintableCharMatcher.java | 2 +- .../main/java/net/runelite/api/util/Text.java | 215 ++++++++++++++++-- .../java/net/runelite/api}/util/TextTest.java | 9 +- .../client/chat/ChatMessageBuilder.java | 2 +- .../net/runelite/client/game/ClanManager.java | 2 +- .../client/game/chatbox/ChatboxTextInput.java | 2 +- .../client/menus/BaseComparableEntry.java | 2 +- .../client/menus/ItemComparableEntry.java | 2 +- .../runelite/client/menus/MenuManager.java | 2 +- .../DiaryRequirementsPlugin.java | 2 +- .../plugins/banktags/BankTagsPlugin.java | 2 +- .../client/plugins/banktags/TagManager.java | 2 +- .../plugins/banktags/tabs/TabInterface.java | 2 +- .../plugins/banktags/tabs/TabManager.java | 2 +- .../client/plugins/banlist/BanListPlugin.java | 2 +- .../BarbarianAssaultPlugin.java | 2 +- .../plugins/blackjack/BlackjackPlugin.java | 65 ++++-- .../blastfurnace/BlastFurnacePlugin.java | 2 +- .../chatcommands/ChatCommandsPlugin.java | 2 +- .../plugins/chatfilter/ChatFilterPlugin.java | 2 +- .../chathistory/ChatHistoryPlugin.java | 2 +- .../ChatNotificationsPlugin.java | 2 +- .../ChatTranslationPlugin.java | 2 +- .../plugins/clanchat/ClanChatPlugin.java | 2 +- .../plugins/cluescrolls/ClueScrollPlugin.java | 2 +- .../clues/ThreeStepCrypticClue.java | 2 +- .../clues/hotcold/HotColdTemperature.java | 2 +- .../client/plugins/config/ConfigPanel.java | 2 +- .../client/plugins/coxhelper/CoxPlugin.java | 2 +- .../entityhider/EntityHiderPlugin.java | 2 +- .../EquipmentInspectorPlugin.java | 2 +- .../plugins/fairyring/FairyRingPlugin.java | 2 +- .../friendnotes/FriendNotesPlugin.java | 2 +- .../friendtagging/FriendTaggingPlugin.java | 2 +- .../GrandExchangeInputListener.java | 2 +- .../grandexchange/GrandExchangePlugin.java | 2 +- .../grounditems/GroundItemsPlugin.java | 2 +- .../groundmarkers/GroundMarkerPlugin.java | 2 +- .../client/plugins/hiscore/HiscorePlugin.java | 2 +- .../inventorytags/InventoryTagsPlugin.java | 2 +- .../plugins/itemcharges/ItemChargePlugin.java | 2 +- .../plugins/loottracker/LootTrackerBox.java | 2 +- .../loottracker/LootTrackerPlugin.java | 2 +- .../EquipmentComparableEntry.java | 2 +- .../InventoryComparableEntry.java | 2 +- .../MenuEntrySwapperPlugin.java | 2 +- .../plugins/motherlode/MotherlodePlugin.java | 2 +- .../nightmarezone/NightmareZonePlugin.java | 2 +- .../npchighlight/NpcIndicatorsPlugin.java | 2 +- .../plugins/npchighlight/NpcSceneOverlay.java | 2 +- .../opponentinfo/OpponentInfoOverlay.java | 2 +- .../opponentinfo/PlayerComparisonOverlay.java | 2 +- .../PerformanceStatsPlugin.java | 2 +- .../pestcontrol/PestControlPlugin.java | 2 +- .../PlayerIndicatorsOverlay.java | 2 +- .../PrayAgainstPlayerOverlay.java | 2 +- .../puzzlesolver/PuzzleSolverPlugin.java | 2 +- .../plugins/pvptools/PvpToolsPlugin.java | 2 +- .../plugins/questlist/QuestListPlugin.java | 2 +- .../client/plugins/raids/RaidsOverlay.java | 2 +- .../client/plugins/raids/RaidsPlugin.java | 2 +- .../plugins/screenshot/ScreenshotPlugin.java | 2 +- .../client/plugins/slayer/SlayerPlugin.java | 2 +- .../plugins/slayer/TargetClickboxOverlay.java | 2 +- .../slayermusiq/SlayermusiqPlugin.java | 2 +- .../plugins/spawntimer/SpawnTimerPlugin.java | 2 +- .../plugins/spellbook/SpellbookPlugin.java | 2 +- .../plugins/suppliestracker/SuppliesBox.java | 2 +- .../plugins/theatre/rooms/MaidenHandler.java | 2 +- .../client/plugins/wiki/WikiPlugin.java | 2 +- .../worldhopper/WorldHopperPlugin.java | 2 +- .../plugins/xptracker/XpTrackerPlugin.java | 2 +- .../ui/components/ComboBoxListRenderer.java | 2 +- .../components/colorpicker/RecentColors.java | 2 +- .../net/runelite/client/util/MenuUtil.java | 1 + .../java/net/runelite/client/util/Text.java | 190 ---------------- .../net/runelite/client/ws/PartyService.java | 2 +- .../ChatNotificationsPluginTest.java | 2 +- 80 files changed, 336 insertions(+), 308 deletions(-) rename {runelite-client/src/main/java/net/runelite/client => runelite-api/src/main/java/net/runelite/api}/util/JagexPrintableCharMatcher.java (97%) rename {runelite-client/src/test/java/net/runelite/client => runelite-api/src/test/java/net/runelite/api}/util/TextTest.java (84%) delete mode 100644 runelite-client/src/main/java/net/runelite/client/util/Text.java diff --git a/runelite-api/build.gradle b/runelite-api/build.gradle index ac1e1e9c8c..e715877cac 100644 --- a/runelite-api/build.gradle +++ b/runelite-api/build.gradle @@ -6,8 +6,9 @@ dependencies { compileOnly group: 'org.projectlombok', name: 'lombok', version: lombok 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.slf4j', name: 'slf4j-api', version: slf4j testImplementation group: 'junit', name: 'junit', version: junit } diff --git a/runelite-api/src/main/java/net/runelite/api/MenuEntry.java b/runelite-api/src/main/java/net/runelite/api/MenuEntry.java index 62b6acb5a2..e22fb2721d 100644 --- a/runelite-api/src/main/java/net/runelite/api/MenuEntry.java +++ b/runelite-api/src/main/java/net/runelite/api/MenuEntry.java @@ -26,7 +26,6 @@ package net.runelite.api; import lombok.AccessLevel; import lombok.Data; -import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import net.runelite.api.util.Text; @@ -84,6 +83,7 @@ public class MenuEntry this.param0 = param0; this.param1 = param1; this.forceLeftClick = forceLeftClick; + this.standardizedTarget = Text.standardize(target, true); } public static MenuEntry copy(MenuEntry src) @@ -102,19 +102,8 @@ public class MenuEntry public void setTarget(String target) { this.target = target; - this.standardizedTarget = null; + this.standardizedTarget = Text.standardize(target, true); } - @Getter(AccessLevel.NONE) private String standardizedTarget; - - public String getStandardizedTarget() - { - if (standardizedTarget == null) - { - standardizedTarget = Text.standardize(target, true); - } - - return standardizedTarget; - } } diff --git a/runelite-client/src/main/java/net/runelite/client/util/JagexPrintableCharMatcher.java b/runelite-api/src/main/java/net/runelite/api/util/JagexPrintableCharMatcher.java similarity index 97% rename from runelite-client/src/main/java/net/runelite/client/util/JagexPrintableCharMatcher.java rename to runelite-api/src/main/java/net/runelite/api/util/JagexPrintableCharMatcher.java index 41bc771e9d..07506fe6df 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/JagexPrintableCharMatcher.java +++ b/runelite-api/src/main/java/net/runelite/api/util/JagexPrintableCharMatcher.java @@ -22,7 +22,7 @@ * (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; +package net.runelite.api.util; import com.google.common.base.CharMatcher; diff --git a/runelite-api/src/main/java/net/runelite/api/util/Text.java b/runelite-api/src/main/java/net/runelite/api/util/Text.java index 8b6c07cdf8..6cc05a9c9d 100644 --- a/runelite-api/src/main/java/net/runelite/api/util/Text.java +++ b/runelite-api/src/main/java/net/runelite/api/util/Text.java @@ -1,10 +1,74 @@ +/* + * Copyright (c) 2018, Joshua Filby + * Copyright (c) 2018, Jordan Atwood + * Copyright (c) 2019, Lucas + * 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; +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.text.WordUtils; 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 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 input) + { + return COMMA_JOINER.join(input); + } + /** * Removes all tags from the given string. * @@ -14,23 +78,19 @@ public class Text * I know this is a monstrosity, but old frankenstein here * is twice as fast as the old regex method was. * 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(); - if (removeLevel) + if (removeLevels) { - if (str.charAt(strLen - 1) == ')') + int levelIdx = StringUtils.lastIndexOf(str, " (level"); + if (levelIdx >= 0) { - int levelStart = StringUtils.lastIndexOf(str, '('); - // if it's not in the string the while will act like a if - while (--levelStart >= 0) - { - if (str.charAt(levelStart) != ' ') - { - strLen = levelStart; - } - } + strLen = levelIdx; } } @@ -38,7 +98,7 @@ public class Text if ((open = StringUtils.indexOf(str, '<')) == -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 @@ -84,6 +144,12 @@ public class Text 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 * @@ -105,4 +171,125 @@ public class Text 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("-
", "-") + .replaceAll("
", " ") + .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(""); + } + else if (c == '>') + { + out.append(""); + } + else if (c == '\n') + { + out.append("
"); + } + 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("') + 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; + } } diff --git a/runelite-client/src/test/java/net/runelite/client/util/TextTest.java b/runelite-api/src/test/java/net/runelite/api/util/TextTest.java similarity index 84% rename from runelite-client/src/test/java/net/runelite/client/util/TextTest.java rename to runelite-api/src/test/java/net/runelite/api/util/TextTest.java index af5815b0a3..b6ab3bbc7f 100644 --- a/runelite-client/src/test/java/net/runelite/client/util/TextTest.java +++ b/runelite-api/src/test/java/net/runelite/api/util/TextTest.java @@ -22,7 +22,7 @@ * (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; +package net.runelite.api.util; import static org.junit.Assert.assertEquals; import org.junit.Test; @@ -40,6 +40,13 @@ public class TextTest assertEquals("Use Item -> Man", Text.removeTags("Use Item -> Man")); assertEquals("a < b", Text.removeTags("a < b")); assertEquals("Remove no tags", Text.removeTags("Remove no tags")); + assertEquals("Zezima", Text.removeTags("Zezima (level-126)", true)); + assertEquals("", Text.removeTags(" (level-126)", true)); } + @Test + public void toJagexName() + { + assertEquals("Whoever This Is Lmao", Text.toJagexName("-__- - \u00A0\u00A0 Whoever\uABCD\uABCD\u00A0T\uABBBhis Is-Lmao")); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageBuilder.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageBuilder.java index 1b8afd0924..0c10d6753a 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageBuilder.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageBuilder.java @@ -26,7 +26,7 @@ package net.runelite.client.chat; import java.awt.Color; import net.runelite.client.util.ColorUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; public class ChatMessageBuilder { diff --git a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java b/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java index b758d248fb..932bf5ac02 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java +++ b/runelite-client/src/main/java/net/runelite/client/game/ClanManager.java @@ -47,7 +47,7 @@ import net.runelite.api.events.ClanChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.client.eventbus.EventBus; import net.runelite.client.util.ImageUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Singleton public class ClanManager diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextInput.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextInput.java index 108b33e929..5e5bdac41e 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextInput.java +++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxTextInput.java @@ -58,7 +58,7 @@ import net.runelite.client.callback.ClientThread; import net.runelite.client.input.KeyListener; import net.runelite.client.input.MouseListener; import net.runelite.client.util.MiscUtils; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Slf4j public class ChatboxTextInput extends ChatboxInput implements KeyListener, MouseListener diff --git a/runelite-client/src/main/java/net/runelite/client/menus/BaseComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/menus/BaseComparableEntry.java index 7fa69d3f9e..737448bd8a 100644 --- a/runelite-client/src/main/java/net/runelite/client/menus/BaseComparableEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/menus/BaseComparableEntry.java @@ -28,7 +28,7 @@ import javax.annotation.Nonnull; import joptsimple.internal.Strings; import lombok.EqualsAndHashCode; import net.runelite.api.MenuEntry; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.StringUtils; @EqualsAndHashCode(callSuper = true) diff --git a/runelite-client/src/main/java/net/runelite/client/menus/ItemComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/menus/ItemComparableEntry.java index 6c5891834d..66a608bcda 100644 --- a/runelite-client/src/main/java/net/runelite/client/menus/ItemComparableEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/menus/ItemComparableEntry.java @@ -6,7 +6,7 @@ import lombok.Setter; import net.runelite.api.Client; import net.runelite.api.ItemDefinition; import net.runelite.api.MenuEntry; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.StringUtils; @EqualsAndHashCode(callSuper = true) diff --git a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java index ec6d1d9966..ef1c5e3720 100644 --- a/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java +++ b/runelite-client/src/main/java/net/runelite/client/menus/MenuManager.java @@ -63,7 +63,7 @@ import net.runelite.api.events.WidgetPressed; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.eventbus.EventBus; import static net.runelite.client.menus.ComparableEntries.newBaseComparableEntry; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Singleton @Slf4j diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/DiaryRequirementsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/DiaryRequirementsPlugin.java index 27369d8153..b39c1da667 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/DiaryRequirementsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/achievementdiary/DiaryRequirementsPlugin.java @@ -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.WesternDiaryRequirement; import net.runelite.client.plugins.achievementdiary.diaries.WildernessDiaryRequirement; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Slf4j @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java index 91b84296e7..20bcf9a9a8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java @@ -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.cluescrolls.ClueScrollPlugin; import net.runelite.client.util.StackFormatter; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Bank Tags", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/TagManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/TagManager.java index 1f01732d09..16bf1ce927 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/TagManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/TagManager.java @@ -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.MapClue; import net.runelite.client.plugins.cluescrolls.clues.item.ItemRequirement; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Singleton public class TagManager diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java index 09ed8775d6..5e071cc74b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java @@ -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 net.runelite.client.ui.JagexColors; import net.runelite.client.util.ColorUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Singleton public class TabInterface diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabManager.java index e1995a5095..cbe90f19e4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabManager.java @@ -38,7 +38,7 @@ import net.runelite.api.ItemID; import net.runelite.client.config.ConfigManager; import static net.runelite.client.plugins.banktags.BankTagsPlugin.CONFIG_GROUP; 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; @Singleton diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banlist/BanListPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/banlist/BanListPlugin.java index ea7875f1de..b108a8e2c9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banlist/BanListPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banlist/BanListPlugin.java @@ -60,7 +60,7 @@ import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; 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 okhttp3.Call; import okhttp3.Callback; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java index 88b3e69e25..b1b8d414df 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java @@ -97,7 +97,7 @@ import net.runelite.client.ui.overlay.infobox.InfoBox; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import net.runelite.client.util.ColorUtil; import net.runelite.client.util.ImageUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.StringUtils; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java index d483b533f4..36d59a1bb2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blackjack/BlackjackPlugin.java @@ -33,12 +33,14 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.GameState; +import net.runelite.api.MenuEntry; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; +import net.runelite.client.menus.AbstractComparableEntry; import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -60,13 +62,21 @@ import org.apache.commons.lang3.RandomUtils; @Slf4j 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 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 KNOCK_OUT = "Knock-out"; private static final String BANDIT = "Bandit"; 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 private Client client; @Inject @@ -90,18 +100,18 @@ public class BlackjackPlugin extends Plugin { eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged); eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged); - menuManager.addPriorityEntry(KNOCK_OUT, BANDIT).setPriority(100); - menuManager.addPriorityEntry(KNOCK_OUT, MENAPHITE).setPriority(100); + menuManager.addPriorityEntry(KNOCKOUT_BANDIT); + menuManager.addPriorityEntry(KNOCKOUT_MENAPHITE); this.pickpocketOnAggro = config.pickpocketOnAggro(); } @Override protected void shutDown() throws Exception { - menuManager.removePriorityEntry(PICKPOCKET, BANDIT); - menuManager.removePriorityEntry(PICKPOCKET, MENAPHITE); - menuManager.removePriorityEntry(KNOCK_OUT, BANDIT); - menuManager.removePriorityEntry(KNOCK_OUT, MENAPHITE); + menuManager.removePriorityEntry(PICKPOCKET_BANDIT); + menuManager.removePriorityEntry(PICKPOCKET_MENAPHITE); + menuManager.removePriorityEntry(KNOCKOUT_BANDIT); + menuManager.removePriorityEntry(KNOCKOUT_MENAPHITE); eventBus.unregister(this); eventBus.unregister("poll"); } @@ -131,10 +141,10 @@ public class BlackjackPlugin extends Plugin { if (client.getTickCount() >= nextKnockOutTick) { - menuManager.removePriorityEntry(PICKPOCKET, BANDIT); - menuManager.removePriorityEntry(PICKPOCKET, MENAPHITE); - menuManager.addPriorityEntry(KNOCK_OUT, BANDIT).setPriority(100); - menuManager.addPriorityEntry(KNOCK_OUT, MENAPHITE).setPriority(100); + menuManager.removePriorityEntry(PICKPOCKET_BANDIT); + menuManager.removePriorityEntry(PICKPOCKET_MENAPHITE); + menuManager.addPriorityEntry(KNOCKOUT_BANDIT); + menuManager.addPriorityEntry(KNOCKOUT_MENAPHITE); } } @@ -142,14 +152,37 @@ public class BlackjackPlugin extends Plugin { 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(KNOCK_OUT, MENAPHITE); - menuManager.addPriorityEntry(PICKPOCKET, BANDIT).setPriority(100); - menuManager.addPriorityEntry(PICKPOCKET, MENAPHITE).setPriority(100); + menuManager.removePriorityEntry(KNOCKOUT_BANDIT); + menuManager.removePriorityEntry(KNOCKOUT_MENAPHITE); + menuManager.addPriorityEntry(PICKPOCKET_BANDIT); + menuManager.addPriorityEntry(PICKPOCKET_MENAPHITE); final int ticks = this.random ? RandomUtils.nextInt(3, 4) : 4; 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()); + } + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java index 8978a013c9..b0068cdae7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java @@ -52,7 +52,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.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Blast Furnace", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index 6649cdc977..bec6d21439 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -65,7 +65,7 @@ import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; 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.Duels; import net.runelite.http.api.hiscore.HiscoreClient; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java index 22881a5aad..95adb9c4c6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatfilter/ChatFilterPlugin.java @@ -49,7 +49,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.StringUtils; @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java index 01f0ea8e1f..d9f160fea2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java @@ -51,7 +51,7 @@ import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Chat History", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java index 9bc0b57204..5fd3a87fcc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java @@ -50,7 +50,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Chat Notifications", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java index 44286d567e..3d58db65bb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chattranslation/ChatTranslationPlugin.java @@ -33,7 +33,7 @@ import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.ArrayUtils; @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java index 8c6bc12432..88a0fcd871 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java @@ -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_TRANSPARENT_BACKGROUND; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Clan Chat", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java index e348f76570..23b7baf567 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java @@ -101,7 +101,7 @@ import net.runelite.client.ui.overlay.components.TextComponent; import net.runelite.client.ui.overlay.worldmap.WorldMapPointManager; import net.runelite.client.util.ImageUtil; import net.runelite.client.util.ItemUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Clue Scroll", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/ThreeStepCrypticClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/ThreeStepCrypticClue.java index ae9a1bdf7f..ffc461d470 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/ThreeStepCrypticClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/ThreeStepCrypticClue.java @@ -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.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Getter @RequiredArgsConstructor diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdTemperature.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdTemperature.java index 21171eec8d..f495b1f36b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdTemperature.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdTemperature.java @@ -32,7 +32,7 @@ import java.util.Set; import javax.annotation.Nullable; import lombok.AllArgsConstructor; import lombok.Getter; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @AllArgsConstructor @Getter diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index bbe48e17b1..0836facfc6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -110,7 +110,7 @@ import net.runelite.client.ui.components.colorpicker.RuneliteColorPicker; import net.runelite.client.util.ColorUtil; import net.runelite.client.util.ImageUtil; import net.runelite.client.util.MiscUtils; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.StringUtils; @Slf4j diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java index 13137a53ab..6126f409a7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/coxhelper/CoxPlugin.java @@ -70,7 +70,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "CoX Helper", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java index 9fb8c196c1..31974cfdff 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/entityhider/EntityHiderPlugin.java @@ -38,7 +38,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Entity Hider", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java index 7cad00c51a..a003e9fc07 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java @@ -61,7 +61,7 @@ import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.util.ImageUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Equipment Inspector", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java index d7cad2deb9..e09b084029 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java @@ -60,7 +60,7 @@ import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.game.chatbox.ChatboxTextInput; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Slf4j @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/friendnotes/FriendNotesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/friendnotes/FriendNotesPlugin.java index ad3c294f30..844bfd34a6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/friendnotes/FriendNotesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/friendnotes/FriendNotesPlugin.java @@ -52,7 +52,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ColorUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Slf4j @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/friendtagging/FriendTaggingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/friendtagging/FriendTaggingPlugin.java index 6ae680b2a6..f4cf9bafe0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/friendtagging/FriendTaggingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/friendtagging/FriendTaggingPlugin.java @@ -42,7 +42,7 @@ import net.runelite.client.menus.WidgetMenuOption; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.ArrayUtils; @Slf4j diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeInputListener.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeInputListener.java index 56cc228a6e..107518652c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeInputListener.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeInputListener.java @@ -34,7 +34,7 @@ import net.runelite.api.MenuEntry; import net.runelite.client.input.KeyListener; import net.runelite.client.input.MouseAdapter; import static net.runelite.client.plugins.grandexchange.GrandExchangePlugin.SEARCH_GRAND_EXCHANGE; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Singleton public class GrandExchangeInputListener extends MouseAdapter implements KeyListener diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java index e525b21abc..6879ea59f6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangePlugin.java @@ -86,7 +86,7 @@ import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.util.ImageUtil; 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.GrandExchangeTrade; import net.runelite.http.api.osbuddy.OSBGrandExchangeClient; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java index 65108ca40e..962ae9453a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java @@ -98,7 +98,7 @@ import net.runelite.client.plugins.grounditems.config.ValueCalculationMode; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ColorUtil; import net.runelite.client.util.StackFormatter; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Ground Items", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java index cf62ac740b..292e70d014 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/groundmarkers/GroundMarkerPlugin.java @@ -64,7 +64,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ColorUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Slf4j @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java index 5c53d1d5f9..b9e2fcb3d4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java @@ -54,7 +54,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.util.ImageUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.ArrayUtils; @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java index ddeb00e0b3..c8aab211e9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventorytags/InventoryTagsPlugin.java @@ -47,7 +47,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ColorUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Inventory Tags", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java index fdac261cef..96aaf49328 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java @@ -62,7 +62,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.client.util.Text; +import net.runelite.api.util.Text; import static net.runelite.api.ItemID.RING_OF_RECOIL; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java index 948773ed20..a45b8b3f06 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java @@ -53,7 +53,7 @@ import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.FontManager; import net.runelite.client.util.ImageUtil; import net.runelite.client.util.StackFormatter; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; class LootTrackerBox extends JPanel { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java index a1b8418d6a..e4eb1d5695 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPlugin.java @@ -117,7 +117,7 @@ import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.util.ImageUtil; 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.loottracker.GameItem; import net.runelite.http.api.loottracker.LootRecord; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/EquipmentComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/EquipmentComparableEntry.java index a764ddcbf3..93e66bf022 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/EquipmentComparableEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/EquipmentComparableEntry.java @@ -5,7 +5,7 @@ import net.runelite.api.MenuEntry; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.menus.AbstractComparableEntry; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.StringUtils; @EqualsAndHashCode(callSuper = true) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/InventoryComparableEntry.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/InventoryComparableEntry.java index 505c91151f..bbcb5e4646 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/InventoryComparableEntry.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/InventoryComparableEntry.java @@ -5,7 +5,7 @@ import net.runelite.api.MenuEntry; import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.menus.AbstractComparableEntry; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.StringUtils; @EqualsAndHashCode(callSuper = true) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index 09efea9bb5..938582ea7f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -106,7 +106,7 @@ import net.runelite.client.plugins.pvptools.PvpToolsPlugin; import net.runelite.client.util.HotkeyListener; import static net.runelite.client.util.MenuUtil.swap; import net.runelite.client.util.MiscUtils; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import org.apache.commons.lang3.ArrayUtils; @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java index 56855a9a60..fb0ff10196 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java @@ -99,7 +99,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; import net.runelite.client.ui.overlay.OverlayManager; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Motherlode Mine", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java index 7993ae37ca..e6382e7b30 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java @@ -48,7 +48,7 @@ import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Nightmare Zone", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java index 6bffcad880..256ba1afed 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java @@ -71,7 +71,7 @@ import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; 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; @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcSceneOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcSceneOverlay.java index e52f663718..a9a687d3bc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcSceneOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcSceneOverlay.java @@ -51,7 +51,7 @@ import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Singleton public class NpcSceneOverlay extends Overlay diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java index a6de178175..e304a2cded 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java @@ -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.ProgressBarComponent; 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; @Singleton diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/PlayerComparisonOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/PlayerComparisonOverlay.java index 7b8f726848..2b98855c9e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/PlayerComparisonOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/PlayerComparisonOverlay.java @@ -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.TableComponent; 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.HiscoreSkill; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/performancestats/PerformanceStatsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/performancestats/PerformanceStatsPlugin.java index b6bc491ce4..9398c5e884 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/performancestats/PerformanceStatsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/performancestats/PerformanceStatsPlugin.java @@ -60,7 +60,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; 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.PartyService; import net.runelite.client.ws.WSClient; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java index c178ffb901..273c98438f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java @@ -66,7 +66,7 @@ import net.runelite.client.plugins.pestcontrol.config.HighlightPortalOption; import net.runelite.client.plugins.pestcontrol.config.NpcHighlightStyle; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Slf4j @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java index ee1e42c3bc..6a5a0e48de 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsOverlay.java @@ -54,7 +54,7 @@ import net.runelite.http.api.hiscore.HiscoreResult; import net.runelite.http.api.hiscore.HiscoreSkill; import net.runelite.http.api.hiscore.HiscoreEndpoint; import static net.runelite.client.util.StackFormatter.formatNumber; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Singleton public class PlayerIndicatorsOverlay extends Overlay diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerOverlay.java index 07ec30fec7..97d8bfe4c6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerOverlay.java @@ -42,7 +42,7 @@ import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.OverlayUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Singleton class PrayAgainstPlayerOverlay extends Overlay diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java index d9c574f744..98dae9d8a6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java @@ -61,7 +61,7 @@ import net.runelite.client.plugins.puzzlesolver.lightbox.LightboxSolver; import net.runelite.client.plugins.puzzlesolver.lightbox.LightboxState; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ColorUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Puzzle Solver", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java index aace279a7b..f77066388c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java @@ -64,7 +64,7 @@ import net.runelite.client.util.HotkeyListener; import net.runelite.client.util.ImageUtil; import net.runelite.client.util.PvPUtil; 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; @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java index 5d4b92bdbd..018a9c502c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java @@ -59,7 +59,7 @@ import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.game.chatbox.ChatboxTextInput; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Quest List", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java index a47405a472..c8c2d2bdd3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java @@ -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.util.ColorUtil; import net.runelite.client.util.ImageUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Singleton public class RaidsOverlay extends Overlay diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java index 65ea8a1990..b3324d3f13 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java @@ -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.TooltipManager; 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 static org.apache.commons.lang3.StringUtils.containsIgnoreCase; import net.runelite.client.ws.PartyMember; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java index da50af8c41..954f8f1963 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java @@ -101,7 +101,7 @@ import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.Clipboard; import net.runelite.client.util.HotkeyListener; 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 okhttp3.Call; import okhttp3.Callback; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index 83426ce6c1..93f1bf3688 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -100,7 +100,7 @@ import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import net.runelite.client.util.ColorUtil; 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; @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/TargetClickboxOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/TargetClickboxOverlay.java index be88274061..c8a1d223b6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/TargetClickboxOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/TargetClickboxOverlay.java @@ -48,7 +48,7 @@ import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Singleton public class TargetClickboxOverlay extends Overlay diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java index 6ad4bb392d..06b295e924 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java @@ -67,7 +67,7 @@ import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Slayermusiq1 Guides", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/spawntimer/SpawnTimerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/spawntimer/SpawnTimerPlugin.java index 6fd663ad58..5d7303448b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/spawntimer/SpawnTimerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/spawntimer/SpawnTimerPlugin.java @@ -24,7 +24,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @PluginDescriptor( name = "Spawn Timer", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/spellbook/SpellbookPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/spellbook/SpellbookPlugin.java index 6601969600..5a0dcd7489 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/spellbook/SpellbookPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/spellbook/SpellbookPlugin.java @@ -64,7 +64,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; 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; @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesBox.java b/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesBox.java index b5ef601ced..ca42aafbfd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesBox.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesBox.java @@ -76,7 +76,7 @@ import net.runelite.client.game.ItemManager; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.FontManager; 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; @Singleton diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/theatre/rooms/MaidenHandler.java b/runelite-client/src/main/java/net/runelite/client/plugins/theatre/rooms/MaidenHandler.java index af76b8c921..952087c3c1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/theatre/rooms/MaidenHandler.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/theatre/rooms/MaidenHandler.java @@ -23,7 +23,7 @@ import net.runelite.client.plugins.theatre.RoomHandler; import net.runelite.client.plugins.theatre.TheatreConstant; import net.runelite.client.plugins.theatre.TheatrePlugin; import net.runelite.client.plugins.theatre.TheatreRoom; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; @Slf4j public class MaidenHandler extends RoomHandler diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java index c259e2f506..c4a65ca860 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java @@ -57,7 +57,7 @@ import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.util.LinkBrowser; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; import okhttp3.HttpUrl; @Slf4j diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java index fcdc179927..a46b0c07f5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldHopperPlugin.java @@ -83,7 +83,7 @@ import net.runelite.client.ui.NavigationButton; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ExecutorServiceExceptionLogger; 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.ping.Ping; import net.runelite.http.api.worlds.World; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java index 169eb89644..7d3eb54d98 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java @@ -73,7 +73,7 @@ import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.ui.overlay.OverlayManager; 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; @PluginDescriptor( diff --git a/runelite-client/src/main/java/net/runelite/client/ui/components/ComboBoxListRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/components/ComboBoxListRenderer.java index 907170f412..d2154c893c 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/components/ComboBoxListRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/components/ComboBoxListRenderer.java @@ -32,7 +32,7 @@ import javax.swing.ListCellRenderer; import javax.swing.border.EmptyBorder; import lombok.Setter; 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. diff --git a/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/RecentColors.java b/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/RecentColors.java index fcb69a3198..b1815703af 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/RecentColors.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/RecentColors.java @@ -38,7 +38,7 @@ import javax.swing.JPanel; import net.runelite.client.config.ConfigManager; import static net.runelite.client.ui.components.colorpicker.RuneliteColorPicker.CONFIG_GROUP; import net.runelite.client.util.ColorUtil; -import net.runelite.client.util.Text; +import net.runelite.api.util.Text; final class RecentColors { diff --git a/runelite-client/src/main/java/net/runelite/client/util/MenuUtil.java b/runelite-client/src/main/java/net/runelite/client/util/MenuUtil.java index 1e7135e3ab..e2f7e548a8 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/MenuUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/util/MenuUtil.java @@ -32,6 +32,7 @@ import java.util.stream.Stream; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.MenuEntry; +import net.runelite.api.util.Text; @Deprecated @Slf4j diff --git a/runelite-client/src/main/java/net/runelite/client/util/Text.java b/runelite-client/src/main/java/net/runelite/client/util/Text.java deleted file mode 100644 index 505441f293..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/util/Text.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright (c) 2018, Joshua Filby - * Copyright (c) 2018, Jordan Atwood - * 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 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 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("-
", "-") - .replaceAll("
", " ") - .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(""); - } - else if (c == '>') - { - out.append(""); - } - else if (c == '\n') - { - out.append("
"); - } - 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("') + 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; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java b/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java index a770303204..43113327ff 100644 --- a/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java +++ b/runelite-client/src/main/java/net/runelite/client/ws/PartyService.java @@ -40,7 +40,7 @@ import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.eventbus.EventBus; 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.Part; import net.runelite.http.api.ws.messages.party.PartyChatMessage; diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java index ed6d72be6b..c0d0823974 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java @@ -37,7 +37,7 @@ import net.runelite.api.events.ChatMessage; import net.runelite.client.Notifier; import net.runelite.client.chat.ChatMessageManager; 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 org.junit.Before; import org.junit.Test;