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.
This commit is contained in:
@@ -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<HotColdTemperature> possibleTemperatures = new ArrayList<>();
|
||||
|
||||
for (final HotColdTemperature temperature : temperatureSet)
|
||||
{
|
||||
if (message.contains(temperature.getText()))
|
||||
if (messageStart.contains(temperature.getText()))
|
||||
{
|
||||
possibleTemperatures.add(temperature);
|
||||
}
|
||||
|
||||
@@ -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."));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user