From 45e1441072c9618ec9167114e2cef10e073cd17a Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Sun, 30 Jun 2019 23:10:05 -0700 Subject: [PATCH] HotColdTemperature: Fix warm-but-colder temperature bug Because the word "cold" is used both as a temperature ("The device is cold"), and in a temperature change ("but colder than last time."), HotColdTemperature tried to interpret COLDER temperature changes as a COLD temperature match. By matching only the section of the temperature string preceding the optional comma, this bug is avoided. --- .../plugins/cluescrolls/clues/hotcold/HotColdTemperature.java | 4 +++- .../cluescrolls/clues/hotcold/HotColdTemperatureTest.java | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) 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 2dc5909000..21171eec8d 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,6 +32,7 @@ import java.util.Set; import javax.annotation.Nullable; import lombok.AllArgsConstructor; import lombok.Getter; +import net.runelite.client.util.Text; @AllArgsConstructor @Getter @@ -93,11 +94,12 @@ public enum HotColdTemperature return null; } + final String messageStart = Text.fromCSV(message).get(0); final List possibleTemperatures = new ArrayList<>(); for (final HotColdTemperature temperature : temperatureSet) { - if (message.contains(temperature.getText())) + if (messageStart.contains(temperature.getText())) { possibleTemperatures.add(temperature); } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdTemperatureTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdTemperatureTest.java index e9711dc433..cbc4c0e267 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdTemperatureTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdTemperatureTest.java @@ -73,5 +73,7 @@ public class HotColdTemperatureTest assertEquals(HotColdTemperature.ICE_COLD, HotColdTemperature.getFromTemperatureSet(HotColdTemperature.MASTER_HOT_COLD_TEMPERATURES, "The device is ice cold.")); assertEquals(HotColdTemperature.VERY_COLD, HotColdTemperature.getFromTemperatureSet(HotColdTemperature.MASTER_HOT_COLD_TEMPERATURES, "The device is very cold.")); assertEquals(HotColdTemperature.VERY_HOT, HotColdTemperature.getFromTemperatureSet(HotColdTemperature.MASTER_HOT_COLD_TEMPERATURES, "The device is very hot.")); + assertEquals(HotColdTemperature.COLD, HotColdTemperature.getFromTemperatureSet(HotColdTemperature.BEGINNER_HOT_COLD_TEMPERATURES, "The device is cold, and warmer than last time.")); + assertEquals(HotColdTemperature.WARM, HotColdTemperature.getFromTemperatureSet(HotColdTemperature.BEGINNER_HOT_COLD_TEMPERATURES, "The device is warm, but colder than last time.")); } }