diff --git a/src/main/java/de/rettichlp/ucutils/common/models/StockMarketEntry.java b/src/main/java/de/rettichlp/ucutils/common/models/StockMarketEntry.java index b1b4ec61..4e515adf 100644 --- a/src/main/java/de/rettichlp/ucutils/common/models/StockMarketEntry.java +++ b/src/main/java/de/rettichlp/ucutils/common/models/StockMarketEntry.java @@ -14,6 +14,7 @@ import static java.awt.Color.BLUE; import static java.lang.Double.parseDouble; import static java.lang.Integer.parseInt; +import static java.util.regex.Pattern.compile; import static net.minecraft.ChatFormatting.DARK_GREEN; import static net.minecraft.ChatFormatting.DARK_RED; import static net.minecraft.ChatFormatting.GOLD; @@ -25,19 +26,34 @@ public record StockMarketEntry(Company company, double price, double changeMoney, double changePercentage, int ownership, double buyPrice) { - private static final Pattern PRICE_PATTERN = Pattern.compile("Kurs: (?\\d+\\.\\d+)\\$"); - private static final Pattern CHANGE_PATTERN = Pattern.compile("Änderung: (?-?\\d+\\.\\d+)\\$ \\((?-?\\d+\\.\\d+)%\\) [▼▲]"); - private static final Pattern OWNERSHIP_PATTERN = Pattern.compile("Besitz: (?\\d+)/\\d+"); - private static final Pattern BUY_PRICE_PATTERN = Pattern.compile("EK-Preis: (?-?\\d+\\.\\d+)\\$"); + private static final Pattern PRICE_PATTERN = compile("Kurs: (?\\d+\\.\\d+)\\$"); + private static final Pattern CHANGE_PATTERN = compile("Änderung: (?-?\\d+\\.\\d+)\\$ \\((?-?\\d+\\.\\d+)%\\) [▼▲]"); + private static final Pattern OWNERSHIP_PATTERN = compile("Besitz: (?\\d+)/\\d+"); + private static final Pattern BUY_PRICE_PATTERN = compile("EK-Preis: (?-?\\d+\\.\\d+)\\$"); public @Nullable Color getColor() { - double diff = this.price - this.buyPrice; - + // check if price is below or equal to min value if (this.price <= this.company.getMinValue()) { return BLUE; } + // check if user has bought any stock + if (this.ownership == 0) { + return null; + } + + // get color value + Integer colorValue = getColorValue(); + if (colorValue == null) { + return null; + } + + return new Color(colorValue); + } + + private @Nullable Integer getColorValue() { Integer colorValue; + double diff = this.price - this.buyPrice; if (diff >= 75) { colorValue = DARK_GREEN.getColor(); @@ -53,11 +69,7 @@ public record StockMarketEntry(Company company, double price, double changeMoney colorValue = DARK_RED.getColor(); } - if (colorValue == null) { - return null; - } - - return new Color(colorValue); + return colorValue; } public static @Nullable StockMarketEntry fromItemStack(@NotNull ItemStack itemStack) { @@ -116,10 +128,6 @@ public record StockMarketEntry(Company company, double price, double changeMoney } } - if (price == 0 || buyPrice == 0) { - return null; - } - return new StockMarketEntry(company, price, changeMoney, changePercentage, ownership, buyPrice); } } diff --git a/src/main/java/de/rettichlp/ucutils/listener/impl/PlayerListener.java b/src/main/java/de/rettichlp/ucutils/listener/impl/PlayerListener.java index 9e5da05d..97b1ac18 100644 --- a/src/main/java/de/rettichlp/ucutils/listener/impl/PlayerListener.java +++ b/src/main/java/de/rettichlp/ucutils/listener/impl/PlayerListener.java @@ -41,7 +41,7 @@ public class PlayerListener implements IMessageReceiveListener { // health private static final Pattern HEALTH_HEADER_PATTERN = compile("^=== Zustand von (?:\\[UC])?(?[a-zA-Z0-9_]+) ===$"); - private static final Pattern HEALTH_ENTRY_PATTERN = compile("^§.» (?Gesundheit|Blut §.\\[§..+§.]|Hunger|Durst|Fett|Muskeln)§.: §.((§.)?#)+$"); + private static final Pattern HEALTH_ENTRY_PATTERN = compile("^§.» (?Gesundheit|Blut §.\\[§..+§.]|Hunger|Durst|Fett|Muskeln|Sucht)§.: §.((§.)?#)+$"); private static final Pattern HEALTH_ENTRY_HOVER_PATTERN = compile("^§.(?\\d+(\\.\\d+)?)§./§.20\\.0$"); private static final Pattern HOUSE_DRINK_PATTERN = compile("^\\[Küche] Du hast etwas getrunken\\.$");