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 2a8ce2a931..620cc586be 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 @@ -26,8 +26,6 @@ */ package net.runelite.client.plugins.banktags; -import com.google.common.base.Joiner; -import com.google.common.base.Splitter; import com.google.inject.Provides; import java.awt.event.KeyEvent; import java.awt.event.MouseWheelEvent; @@ -74,6 +72,7 @@ import net.runelite.client.plugins.banktags.tabs.BankSearch; 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.Text; @PluginDescriptor( name = "Bank Tags", @@ -83,8 +82,6 @@ import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin; @PluginDependency(ClueScrollPlugin.class) public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyListener { - public static final Splitter SPLITTER = Splitter.on(",").omitEmptyStrings().trimResults(); - public static final Joiner JOINER = Joiner.on(",").skipNulls(); public static final String CONFIG_GROUP = "banktags"; public static final String TAG_SEARCH = "tag:"; private static final String EDIT_TAGS_MENU_OPTION = "Edit-tags"; @@ -283,7 +280,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis boolean isSearchOpen = client.getVar(VarClientInt.INPUT_TYPE) == InputType.SEARCH.getType(); String searchText = client.getVar(VarClientStr.INPUT_TEXT); - String initialValue = JOINER.join(tags); + String initialValue = Text.toCSV(tags); chatboxPanelManager.openTextInput(name + " tags:
(append " + VAR_TAG_SUFFIX + " for variation tag)") .value(initialValue) @@ -291,7 +288,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis clientThread.invoke(() -> { // Split inputted tags to vartags (ending with *) and regular tags - final Collection newTags = new ArrayList<>(SPLITTER.splitToList(newValue.toLowerCase())); + final Collection newTags = new ArrayList<>(Text.fromCSV(newValue.toLowerCase())); final Collection newVarTags = new ArrayList<>(newTags).stream().filter(s -> s.endsWith(VAR_TAG_SUFFIX)).map(s -> { newTags.remove(s); @@ -299,13 +296,13 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis }).collect(Collectors.toList()); // And save them - tagManager.setTagString(itemId, JOINER.join(newTags), false); - tagManager.setTagString(itemId, JOINER.join(newVarTags), true); + tagManager.setTagString(itemId, Text.toCSV(newTags), false); + tagManager.setTagString(itemId, Text.toCSV(newVarTags), true); // Check both previous and current tags in case the tag got removed in new tags or in case // the tag got added in new tags - tabInterface.updateTabIfActive(SPLITTER.splitToList(initialValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), ""))); - tabInterface.updateTabIfActive(SPLITTER.splitToList(newValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), ""))); + tabInterface.updateTabIfActive(Text.fromCSV(initialValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), ""))); + tabInterface.updateTabIfActive(Text.fromCSV(newValue.toLowerCase().replaceAll(Pattern.quote(VAR_TAG_SUFFIX), ""))); })) .build(); 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 fe3eaf1d8b..c20974758d 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 @@ -37,8 +37,6 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.game.ItemManager; import net.runelite.client.game.ItemVariationMapping; import static net.runelite.client.plugins.banktags.BankTagsPlugin.CONFIG_GROUP; -import static net.runelite.client.plugins.banktags.BankTagsPlugin.JOINER; -import static net.runelite.client.plugins.banktags.BankTagsPlugin.SPLITTER; import net.runelite.client.plugins.cluescrolls.ClueScrollService; import net.runelite.client.plugins.cluescrolls.clues.ClueScroll; import net.runelite.client.plugins.cluescrolls.clues.CoordinateClue; @@ -83,7 +81,7 @@ public class TagManager Collection getTags(int itemId, boolean variation) { - return new LinkedHashSet<>(SPLITTER.splitToList(getTagString(itemId, variation).toLowerCase())); + return new LinkedHashSet<>(Text.fromCSV(getTagString(itemId, variation).toLowerCase())); } void setTagString(int itemId, String tags, boolean variation) @@ -120,7 +118,7 @@ public class TagManager private void setTags(int itemId, Collection tags, boolean variation) { - setTagString(itemId, JOINER.join(tags), variation); + setTagString(itemId, Text.toCSV(tags), variation); } boolean findTag(int itemId, String search) 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 67a40272f5..148b965043 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 @@ -82,7 +82,6 @@ import net.runelite.client.plugins.banktags.BankTagsConfig; import net.runelite.client.plugins.banktags.BankTagsPlugin; 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.SPLITTER; import static net.runelite.client.plugins.banktags.BankTagsPlugin.TAG_SEARCH; import static net.runelite.client.plugins.banktags.BankTagsPlugin.VAR_TAG_SUFFIX; import net.runelite.client.plugins.banktags.TagManager; @@ -250,7 +249,7 @@ public class TabInterface .onDone((newTags) -> clientThread.invoke(() -> { - final List tags = SPLITTER.splitToList(newTags.toLowerCase()); + final List tags = Text.fromCSV(newTags.toLowerCase()); for (Integer item : items) { @@ -290,7 +289,7 @@ public class TabInterface .toString() .trim(); - final Iterator dataIter = BankTagsPlugin.SPLITTER.split(dataString).iterator(); + final Iterator dataIter = Text.fromCSV(dataString).iterator(); final String name = dataIter.next(); final String icon = dataIter.next(); configManager.setConfiguration(CONFIG_GROUP, ICON_SEARCH + name, icon); @@ -370,7 +369,7 @@ public class TabInterface data.add(String.valueOf(item)); } - final StringSelection stringSelection = new StringSelection(BankTagsPlugin.JOINER.join(data)); + final StringSelection stringSelection = new StringSelection(Text.toCSV(data)); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null); notifier.notify("Tag tab " + tagTab.getTag() + " has been copied to your clipboard!"); break; 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 dd4308af04..3f1430dd7c 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,8 +38,6 @@ 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 static net.runelite.client.plugins.banktags.BankTagsPlugin.JOINER; -import static net.runelite.client.plugins.banktags.BankTagsPlugin.SPLITTER; import net.runelite.client.util.Text; import org.apache.commons.lang3.math.NumberUtils; @@ -80,7 +78,7 @@ class TabManager List getAllTabs() { - return SPLITTER.splitToList(MoreObjects.firstNonNull(configManager.getConfiguration(CONFIG_GROUP, TAG_TABS_CONFIG), "")); + return Text.fromCSV(MoreObjects.firstNonNull(configManager.getConfiguration(CONFIG_GROUP, TAG_TABS_CONFIG), "")); } TagTab load(String tag) @@ -122,7 +120,7 @@ class TabManager void save() { - String tags = JOINER.join(tabs.stream().map(TagTab::getTag).collect(Collectors.toList())); + String tags = Text.toCSV(tabs.stream().map(TagTab::getTag).collect(Collectors.toList())); configManager.setConfiguration(CONFIG_GROUP, TAG_TABS_CONFIG, tags); } 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 c39ded2334..4571780df0 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 @@ -25,7 +25,6 @@ */ package net.runelite.client.plugins.chatnotifications; -import com.google.common.base.Splitter; import com.google.common.base.Strings; import com.google.inject.Provides; import java.util.List; @@ -57,8 +56,6 @@ import net.runelite.client.util.Text; ) public class ChatNotificationsPlugin extends Plugin { - private static final Splitter SPLITTER = Splitter.on(",").trimResults().omitEmptyStrings(); - @Inject private Client client; @@ -118,7 +115,7 @@ public class ChatNotificationsPlugin extends Plugin if (!config.highlightWordsString().trim().equals("")) { - List items = SPLITTER.splitToList(config.highlightWordsString()); + List items = Text.fromCSV(config.highlightWordsString()); String joined = items.stream() .map(Pattern::quote) .collect(Collectors.joining("|")); 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 8b81759bc3..b5ee817198 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 @@ -24,8 +24,6 @@ */ package net.runelite.client.plugins.clanchat; -import com.google.common.base.Joiner; -import com.google.common.base.Splitter; import com.google.common.base.Strings; import com.google.common.collect.Lists; import com.google.inject.Provides; @@ -61,8 +59,6 @@ public class ClanChatPlugin extends Plugin private static final int MAX_CHATS = 10; private static final String CLAN_CHAT_TITLE = "Clan Chat"; private static final String RECENT_TITLE = "Recent Clan Chats"; - private static final Joiner JOINER = Joiner.on(',').skipNulls(); - private static final Splitter SPLITTER = Splitter.on(',').trimResults().omitEmptyStrings(); @Inject private Client client; @@ -84,7 +80,7 @@ public class ClanChatPlugin extends Plugin @Override public void startUp() { - chats = new ArrayList<>(SPLITTER.splitToList(config.chatsData())); + chats = new ArrayList<>(Text.fromCSV(config.chatsData())); } @Override @@ -225,6 +221,6 @@ public class ClanChatPlugin extends Plugin chats.remove(0); } - config.chatsData(JOINER.join(chats)); + config.chatsData(Text.toCSV(chats)); } } 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 2e35f5be5e..f35d131515 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 @@ -24,7 +24,6 @@ */ package net.runelite.client.plugins.config; -import com.google.common.base.Splitter; import com.google.common.base.Strings; import com.google.common.primitives.Ints; import java.awt.BorderLayout; @@ -92,6 +91,7 @@ import net.runelite.client.ui.components.ComboBoxListRenderer; import net.runelite.client.ui.components.IconButton; import net.runelite.client.ui.components.IconTextField; import net.runelite.client.util.ImageUtil; +import net.runelite.client.util.Text; @Slf4j public class ConfigPanel extends PluginPanel @@ -106,7 +106,6 @@ public class ConfigPanel extends PluginPanel private static final String PINNED_PLUGINS_CONFIG_KEY = "pinnedPlugins"; private static final String RUNELITE_PLUGIN = "RuneLite"; private static final String CHAT_COLOR_PLUGIN = "Chat Color"; - private static final Splitter COMMA_SPLITTER = Splitter.on(','); private final PluginManager pluginManager; private final ConfigManager configManager; @@ -653,7 +652,7 @@ public class ConfigPanel extends PluginPanel return Collections.emptyList(); } - return COMMA_SPLITTER.splitToList(config); + return Text.fromCSV(config); } void savePinnedPlugins() 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 6e6f7c53b8..21f4de57b3 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 @@ -25,8 +25,6 @@ */ package net.runelite.client.plugins.grounditems; -import com.google.common.base.Joiner; -import com.google.common.base.Splitter; import com.google.common.cache.CacheBuilder; import com.google.common.cache.LoadingCache; import com.google.inject.Provides; @@ -87,6 +85,7 @@ import static net.runelite.client.plugins.grounditems.config.MenuHighlightMode.O 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; @PluginDescriptor( name = "Ground Items", @@ -95,12 +94,6 @@ import net.runelite.client.util.StackFormatter; ) public class GroundItemsPlugin extends Plugin { - private static final Splitter COMMA_SPLITTER = Splitter - .on(",") - .omitEmptyStrings() - .trimResults(); - - private static final Joiner COMMA_JOINER = Joiner.on(",").skipNulls(); // Used when getting High Alchemy value - multiplied by general store price. private static final float HIGH_ALCHEMY_CONSTANT = 0.6f; // ItemID for coins @@ -406,10 +399,10 @@ public class GroundItemsPlugin extends Plugin private void reset() { // gets the hidden items from the text box in the config - hiddenItemList = COMMA_SPLITTER.splitToList(config.getHiddenItems()); + hiddenItemList = Text.fromCSV(config.getHiddenItems()); // gets the highlighted items from the text box in the config - highlightedItemsList = COMMA_SPLITTER.splitToList(config.getHighlightItems()); + highlightedItemsList = Text.fromCSV(config.getHighlightItems()); highlightedItems = CacheBuilder.newBuilder() .maximumSize(512L) @@ -540,8 +533,8 @@ public class GroundItemsPlugin extends Plugin items.add(item); } - config.setHiddenItems(COMMA_JOINER.join(hiddenItemSet)); - config.setHighlightedItem(COMMA_JOINER.join(highlightedItemSet)); + config.setHiddenItems(Text.toCSV(hiddenItemSet)); + config.setHighlightedItem(Text.toCSV(highlightedItemSet)); } Color getHighlighted(String item, int gePrice, int haPrice) 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 d05be74f57..04b80d0ce4 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 @@ -25,8 +25,6 @@ */ package net.runelite.client.plugins.loottracker; -import com.google.common.base.Joiner; -import com.google.common.base.Splitter; import com.google.inject.Provides; import java.awt.image.BufferedImage; import java.io.IOException; @@ -94,13 +92,6 @@ public class LootTrackerPlugin extends Plugin private static final Pattern CLUE_SCROLL_PATTERN = Pattern.compile("You have completed [0-9]+ ([a-z]+) Treasure Trails."); private static final int THEATRE_OF_BLOOD_REGION = 12867; - private static final Splitter COMMA_SPLITTER = Splitter - .on(",") - .omitEmptyStrings() - .trimResults(); - - private static final Joiner COMMA_JOINER = Joiner.on(",").skipNulls(); - @Inject private ClientToolbar clientToolbar; @@ -194,7 +185,7 @@ public class LootTrackerPlugin extends Plugin { if (event.getGroup().equals("loottracker")) { - ignoredItems = COMMA_SPLITTER.splitToList(config.getIgnoredItems()); + ignoredItems = Text.fromCSV(config.getIgnoredItems()); panel.updateIgnoredRecords(); } } @@ -202,7 +193,7 @@ public class LootTrackerPlugin extends Plugin @Override protected void startUp() throws Exception { - ignoredItems = COMMA_SPLITTER.splitToList(config.getIgnoredItems()); + ignoredItems = Text.fromCSV(config.getIgnoredItems()); panel = new LootTrackerPanel(this, itemManager); spriteManager.getSpriteAsync(SpriteID.TAB_INVENTORY, 0, panel::loadHeaderIcon); @@ -411,7 +402,7 @@ public class LootTrackerPlugin extends Plugin ignoredItemSet.remove(name); } - config.setIgnoredItems(COMMA_JOINER.join(ignoredItemSet)); + config.setIgnoredItems(Text.toCSV(ignoredItemSet)); panel.updateIgnoredRecords(); } 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 63a130c70e..6829deeedb 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 @@ -26,7 +26,6 @@ package net.runelite.client.plugins.npchighlight; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import com.google.inject.Provides; import java.time.Instant; @@ -64,6 +63,7 @@ import net.runelite.client.menus.MenuManager; 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.client.util.WildcardMatcher; @PluginDescriptor( @@ -82,9 +82,6 @@ public class NpcIndicatorsPlugin extends Plugin private static final List NPC_MENU_ACTIONS = ImmutableList.of(MenuAction.NPC_FIRST_OPTION, MenuAction.NPC_SECOND_OPTION, MenuAction.NPC_THIRD_OPTION, MenuAction.NPC_FOURTH_OPTION, MenuAction.NPC_FIFTH_OPTION); - // Regex for splitting the hidden items in the config. - private static final Splitter COMMA_SPLITTER = Splitter.on(",").omitEmptyStrings().trimResults(); - @Inject private Client client; @@ -431,7 +428,7 @@ public class NpcIndicatorsPlugin extends Plugin return Collections.emptyList(); } - return COMMA_SPLITTER.splitToList(configNpcs); + return Text.fromCSV(configNpcs); } private void rebuildAllNpcs() 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 index 9f73e947a6..14a39f7009 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/Text.java +++ b/runelite-client/src/main/java/net/runelite/client/util/Text.java @@ -26,6 +26,10 @@ 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.Pattern; /** @@ -34,6 +38,34 @@ import java.util.regex.Pattern; public class Text { private static final Pattern TAG_REGEXP = Pattern.compile("<[^>]*>"); + private static final Splitter COMMA_SPLITTER = Splitter + .on(",") + .omitEmptyStrings() + .trimResults(); + + private static final Joiner COMMA_JOINER = Joiner.on(",").skipNulls(); + + /** + * 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. 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 59e687a8c8..a120339da0 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 @@ -24,7 +24,6 @@ */ package net.runelite.client.plugins.chatnotifications; -import com.google.common.base.Splitter; import com.google.inject.Guice; import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.BoundFieldModule; @@ -37,6 +36,7 @@ import net.runelite.api.MessageNode; import net.runelite.api.events.SetMessage; import net.runelite.client.Notifier; import net.runelite.client.chat.ChatMessageManager; +import net.runelite.client.util.Text; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; @@ -97,8 +97,7 @@ public class ChatNotificationsPluginTest public void highlightListTest() { when(config.highlightWordsString()).thenReturn("this,is, a , test, "); - final Splitter splitter = Splitter.on(",").trimResults().omitEmptyStrings(); - final List higlights = splitter.splitToList(config.highlightWordsString()); + final List higlights = Text.fromCSV(config.highlightWordsString()); assertEquals(4, higlights.size()); final Iterator iterator = higlights.iterator();