From 6b1da824a811ce833b404ba519b0bfc0f8ae5f73 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Thu, 26 Mar 2020 11:25:31 -0600 Subject: [PATCH] grounditems: make priceChecks threadsafe --- .../plugins/grounditems/GroundItemsPlugin.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) 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 8691cae1d3..66f9417c3b 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 @@ -28,6 +28,7 @@ package net.runelite.client.plugins.grounditems; import com.google.common.cache.CacheBuilder; import com.google.common.cache.LoadingCache; import com.google.common.collect.EvictingQueue; +import com.google.common.collect.ImmutableMap; import com.google.inject.Provides; import java.awt.Color; import java.awt.Rectangle; @@ -163,7 +164,7 @@ public class GroundItemsPlugin extends Plugin @Getter private final Map collectedGroundItems = new LinkedHashMap<>(); - private final Map priceChecks = new LinkedHashMap<>(); + private Map priceChecks = ImmutableMap.of(); private LoadingCache highlightedItems; private LoadingCache hiddenItems; private final Queue droppedItemQueue = EvictingQueue.create(16); // recently dropped items @@ -429,32 +430,33 @@ public class GroundItemsPlugin extends Plugin .build(new WildcardMatchLoader(hiddenItemList)); // Cache colors - priceChecks.clear(); - + ImmutableMap.Builder priceCheckBuilder = ImmutableMap.builder(); if (config.getHighlightOverValue() > 0) { - priceChecks.put(config.getHighlightOverValue(), config.highlightedColor()); + priceCheckBuilder.put(config.getHighlightOverValue(), config.highlightedColor()); } if (config.insaneValuePrice() > 0) { - priceChecks.put(config.insaneValuePrice(), config.insaneValueColor()); + priceCheckBuilder.put(config.insaneValuePrice(), config.insaneValueColor()); } if (config.highValuePrice() > 0) { - priceChecks.put(config.highValuePrice(), config.highValueColor()); + priceCheckBuilder.put(config.highValuePrice(), config.highValueColor()); } if (config.mediumValuePrice() > 0) { - priceChecks.put(config.mediumValuePrice(), config.mediumValueColor()); + priceCheckBuilder.put(config.mediumValuePrice(), config.mediumValueColor()); } if (config.lowValuePrice() > 0) { - priceChecks.put(config.lowValuePrice(), config.lowValueColor()); + priceCheckBuilder.put(config.lowValuePrice(), config.lowValueColor()); } + + priceChecks = priceCheckBuilder.build(); } @Subscribe