From fd544e5a01de3a178607b7177ed47c6651ffc39b Mon Sep 17 00:00:00 2001 From: exslims Date: Wed, 26 Dec 2018 18:47:03 +0400 Subject: [PATCH] 1.0.3.4 release --- .../platform/core/MercuryConstants.java | 2 +- .../core/utils/MessageFileHandler.java | 2 +- .../TradeIncMessagesInterceptor.java | 2 +- .../TradeOutMessagesInterceptor.java | 2 +- .../platform/shared/MessageParser.java | 15 +++++++- .../CurrencyTradeNotificationDescriptor.java | 4 ++ .../CurrencyTradeIncNotificationPanel.java | 35 ++++++++++++++++-- .../CurrencyTradeOutNotificationPanel.java | 33 +++++++++++++++-- .../panel/notification/NotificationPanel.java | 4 ++ .../ui/frame/movable/NotificationFrame.java | 9 +++++ .../movable/NotificationPreProcessor.java | 4 +- .../platform/ui/frame/other/HelpIGFrame.java | 32 ++++++++++++++++ .../ui/frame/titled/SettingsFrame.java | 4 +- .../ui/frame/titled/TestCasesFrame.java | 10 +++++ .../platform/ui/frame/titled/TestEngine.java | 14 +++++++ .../src/main/resources/currency/Chaos Orb.png | Bin 0 -> 11310 bytes .../main/resources/currency/Exalted Orbs.png | Bin 0 -> 11296 bytes .../currency/Forge of the Phoenix.png | Bin 0 -> 6608 bytes .../resources/currency/Lair of the Hydra.png | Bin 0 -> 6527 bytes .../currency/Maze of the Minotaur.png | Bin 0 -> 6482 bytes .../resources/currency/Pit of the Chimera.png | Bin 0 -> 6617 bytes .../resources/notes/patch/patch-notes.json | 4 +- 22 files changed, 157 insertions(+), 19 deletions(-) create mode 100644 app-ui/src/main/resources/currency/Chaos Orb.png create mode 100644 app-ui/src/main/resources/currency/Exalted Orbs.png create mode 100644 app-ui/src/main/resources/currency/Forge of the Phoenix.png create mode 100644 app-ui/src/main/resources/currency/Lair of the Hydra.png create mode 100644 app-ui/src/main/resources/currency/Maze of the Minotaur.png create mode 100644 app-ui/src/main/resources/currency/Pit of the Chimera.png diff --git a/app-core/src/main/java/com/mercury/platform/core/MercuryConstants.java b/app-core/src/main/java/com/mercury/platform/core/MercuryConstants.java index 1ffb6d63..f85b6efc 100644 --- a/app-core/src/main/java/com/mercury/platform/core/MercuryConstants.java +++ b/app-core/src/main/java/com/mercury/platform/core/MercuryConstants.java @@ -1,7 +1,7 @@ package com.mercury.platform.core; public class MercuryConstants { - public static final String APP_VERSION = "1.0.3.3.0"; + public static final String APP_VERSION = "1.0.3.4.0"; public static final String SERVER_HOST = "exslims.ddns.net"; public static final int PORT = 5555; } diff --git a/app-core/src/main/java/com/mercury/platform/core/utils/MessageFileHandler.java b/app-core/src/main/java/com/mercury/platform/core/utils/MessageFileHandler.java index 639a22a3..316e2c08 100644 --- a/app-core/src/main/java/com/mercury/platform/core/utils/MessageFileHandler.java +++ b/app-core/src/main/java/com/mercury/platform/core/utils/MessageFileHandler.java @@ -73,7 +73,7 @@ public void parse() { .collect(Collectors.toList()); List resultMessages = filteredMessages.stream().filter(message -> { - if (message.contains("2017") || message.contains("2018")) { //todo + if (message.contains("2017") || message.contains("2018") || message.contains("2019")) { //todo Date date = new Date(StringUtils.substring(message, 0, 20)); return date.after(lastMessageDate); } else { diff --git a/app-core/src/main/java/com/mercury/platform/core/utils/interceptor/TradeIncMessagesInterceptor.java b/app-core/src/main/java/com/mercury/platform/core/utils/interceptor/TradeIncMessagesInterceptor.java index 1d60b6f5..427874be 100644 --- a/app-core/src/main/java/com/mercury/platform/core/utils/interceptor/TradeIncMessagesInterceptor.java +++ b/app-core/src/main/java/com/mercury/platform/core/utils/interceptor/TradeIncMessagesInterceptor.java @@ -50,7 +50,7 @@ protected MessageMatcher match() { private abstract class LocalizationMatcher { public boolean isSuitableFor(String message) { return message.contains("Hi, I would like") || - message.contains("Hi, I'd like") || + message.contains("Hi, I'd like") || message.contains("I'd like") || (message.contains("wtb") && message.contains("(stash")); } diff --git a/app-core/src/main/java/com/mercury/platform/core/utils/interceptor/TradeOutMessagesInterceptor.java b/app-core/src/main/java/com/mercury/platform/core/utils/interceptor/TradeOutMessagesInterceptor.java index 9f191ac8..8690d7b4 100644 --- a/app-core/src/main/java/com/mercury/platform/core/utils/interceptor/TradeOutMessagesInterceptor.java +++ b/app-core/src/main/java/com/mercury/platform/core/utils/interceptor/TradeOutMessagesInterceptor.java @@ -52,7 +52,7 @@ protected MessageMatcher match() { private abstract class LocalizationMatcher { public boolean isSuitableFor(String message) { return message.contains("Hi, I would like") || - message.contains("Hi, I'd like") || + message.contains("Hi, I'd like") || message.contains("I'd like") || (message.contains("wtb") && message.contains("(stash")); } diff --git a/app-core/src/main/java/com/mercury/platform/shared/MessageParser.java b/app-core/src/main/java/com/mercury/platform/shared/MessageParser.java index bc3bbf4c..88c25d93 100644 --- a/app-core/src/main/java/com/mercury/platform/shared/MessageParser.java +++ b/app-core/src/main/java/com/mercury/platform/shared/MessageParser.java @@ -4,14 +4,18 @@ import com.mercury.platform.shared.entity.message.ItemTradeNotificationDescriptor; import com.mercury.platform.shared.entity.message.NotificationDescriptor; import com.mercury.platform.shared.entity.message.NotificationType; +import org.apache.commons.lang3.StringUtils; +import java.util.Arrays; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; public class MessageParser { private final static String poeTradeStashTabPattern = "^(.*\\s)?(.+): (.+ to buy your\\s+?(.+?)(\\s+?listed for\\s+?([\\d\\.]+?)\\s+?(.+))?\\s+?in\\s+?(.+?)\\s+?\\(stash tab \"(.*)\"; position: left (\\d+), top (\\d+)\\)\\s*?(.*))$"; private final static String poeTradePattern = "^(.*\\s)?(.+): (.+ to buy your\\s+?(.+?)(\\s+?listed for\\s+?([\\d\\.]+?)\\s+?(.+))?\\s+?in\\s+?(.*?))$"; private final static String poeAppPattern = "^(.*\\s)?(.+): (\\s*?wtb\\s+?(.+?)(\\s+?listed for\\s+?([\\d\\.]+?)\\s+?(.+))?\\s+?in\\s+?(.+?)\\s+?\\(stash\\s+?\"(.*?)\";\\s+?left\\s+?(\\d+?),\\s+?top\\s+(\\d+?)\\)\\s*?(.*))$"; + private final static String poeAppBulkCurrenciesPattern = "^(.*\\s)?(.+): (\\s*?wtb\\s+?(.+?)(\\s+?listed for\\s+?([\\d\\.]+?)\\s+?(.+))?\\s+?in\\s+?(.+?)\\s+?\\(stash\\s+?\"(.*?)\";\\s+?left\\s+?(\\d+?),\\s+?top\\s+(\\d+?)\\)\\s*?(.*))$"; private final static String poeCurrencyPattern = "^(.*\\s)?(.+): (.+ to buy your (\\d+(\\.\\d+)?)? (.+) for my (\\d+(\\.\\d+)?)? (.+) in (.*?)\\.\\s*(.*))$"; private Pattern poeAppItemPattern; private Pattern poeTradeStashItemPattern; @@ -73,10 +77,17 @@ public NotificationDescriptor parse(String fullMessage) { Matcher poeTradeCurrencyMatcher = poeTradeCurrencyPattern.matcher(fullMessage); if (poeTradeCurrencyMatcher.find()) { CurrencyTradeNotificationDescriptor tradeNotification = new CurrencyTradeNotificationDescriptor(); + + if (poeTradeCurrencyMatcher.group(6).contains("&") || poeTradeCurrencyMatcher.group(6).contains(",")) { //todo this shit for bulk map + String bulkItems = poeTradeCurrencyMatcher.group(4) + " " + poeTradeCurrencyMatcher.group(6); + tradeNotification.setItems(Arrays.stream(StringUtils.split(bulkItems, ",&")).map(String::trim).collect(Collectors.toList())); + } else { + tradeNotification.setCurrForSaleCount(Double.parseDouble(poeTradeCurrencyMatcher.group(4))); + tradeNotification.setCurrForSaleTitle(poeTradeCurrencyMatcher.group(6)); + } + tradeNotification.setWhisperNickname(poeTradeCurrencyMatcher.group(2)); tradeNotification.setSourceString(poeTradeCurrencyMatcher.group(3)); - tradeNotification.setCurrForSaleCount(Double.parseDouble(poeTradeCurrencyMatcher.group(4))); - tradeNotification.setCurrForSaleTitle(poeTradeCurrencyMatcher.group(6)); tradeNotification.setCurCount(Double.parseDouble(poeTradeCurrencyMatcher.group(7))); tradeNotification.setCurrency(poeTradeCurrencyMatcher.group(9)); tradeNotification.setLeague(poeTradeCurrencyMatcher.group(10)); diff --git a/app-core/src/main/java/com/mercury/platform/shared/entity/message/CurrencyTradeNotificationDescriptor.java b/app-core/src/main/java/com/mercury/platform/shared/entity/message/CurrencyTradeNotificationDescriptor.java index 9e8af2b8..c7577604 100644 --- a/app-core/src/main/java/com/mercury/platform/shared/entity/message/CurrencyTradeNotificationDescriptor.java +++ b/app-core/src/main/java/com/mercury/platform/shared/entity/message/CurrencyTradeNotificationDescriptor.java @@ -3,9 +3,13 @@ import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.ArrayList; +import java.util.List; + @EqualsAndHashCode(callSuper = true) @Data public class CurrencyTradeNotificationDescriptor extends TradeNotificationDescriptor { private Double currForSaleCount; private String currForSaleTitle; + private List items = new ArrayList<>(); } diff --git a/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/CurrencyTradeIncNotificationPanel.java b/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/CurrencyTradeIncNotificationPanel.java index 030efcc5..6b64564c 100644 --- a/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/CurrencyTradeIncNotificationPanel.java +++ b/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/CurrencyTradeIncNotificationPanel.java @@ -9,12 +9,14 @@ import com.mercury.platform.ui.misc.TooltipConstants; import javax.swing.*; +import javax.swing.border.EmptyBorder; import java.awt.*; import java.text.DecimalFormat; public class CurrencyTradeIncNotificationPanel extends TradeIncNotificationPanel { private JPanel labelsPanel; + @Override protected JPanel getMessagePanel() { this.labelsPanel = this.componentsFactory.getJPanel(new BorderLayout(), AppThemeColor.FRAME); @@ -41,10 +43,35 @@ protected JPanel getMessagePanel() { private JPanel getFromPanel() { JPanel fromPanel = this.componentsFactory.getJPanel(new BorderLayout(4, 0), AppThemeColor.FRAME); - JPanel currencyPanel = this.getCurrencyPanel(this.data.getCurrForSaleCount(), this.data.getCurrForSaleTitle()); - currencyPanel.setBackground(AppThemeColor.FRAME); - fromPanel.add(currencyPanel, BorderLayout.LINE_START); - fromPanel.add(getCurrencyRatePanel(), BorderLayout.CENTER); + + JLabel currencyLabel = this.componentsFactory.getIconLabel("currency/" + this.data.getCurrForSaleTitle() + ".png", 26); + + if (this.data.getItems().size() > 0) { + JPanel itemsPanel = new JPanel(); + itemsPanel.setBackground(AppThemeColor.FRAME); + itemsPanel.setLayout(new BoxLayout(itemsPanel, BoxLayout.Y_AXIS)); + itemsPanel.setBorder(new EmptyBorder(0, 0, 2, 0)); + + this.data.getItems().forEach((item) -> { + itemsPanel.add(this.componentsFactory.getTextLabel(item)); + }); + fromPanel.add(itemsPanel, BorderLayout.LINE_START); + + if (this.data.getItems().size() > 1) { + this.setAdditionalHeightDelta((this.data.getItems().size() - 1) * 15); + } + } else if (currencyLabel.getIcon() == null) { + JPanel itemsPanel = new JPanel(); + itemsPanel.setBackground(AppThemeColor.FRAME); + itemsPanel.setLayout(new BoxLayout(itemsPanel, BoxLayout.Y_AXIS)); + itemsPanel.add(this.componentsFactory.getTextLabel(this.data.getCurrForSaleCount().intValue() + " " + this.data.getCurrForSaleTitle())); + fromPanel.add(itemsPanel, BorderLayout.LINE_START); + } else { + JPanel currencyPanel = this.getCurrencyPanel(this.data.getCurrForSaleCount(), this.data.getCurrForSaleTitle()); + currencyPanel.setBackground(AppThemeColor.FRAME); + fromPanel.add(currencyPanel, BorderLayout.LINE_START); + fromPanel.add(getCurrencyRatePanel(), BorderLayout.CENTER); + } return fromPanel; } diff --git a/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/CurrencyTradeOutNotificationPanel.java b/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/CurrencyTradeOutNotificationPanel.java index f7973d4f..6f19286a 100644 --- a/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/CurrencyTradeOutNotificationPanel.java +++ b/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/CurrencyTradeOutNotificationPanel.java @@ -7,6 +7,7 @@ import com.mercury.platform.ui.misc.AppThemeColor; import javax.swing.*; +import javax.swing.border.EmptyBorder; import java.awt.*; import java.text.DecimalFormat; @@ -37,10 +38,34 @@ protected JPanel getMessagePanel() { private JPanel getFromPanel() { JPanel fromPanel = this.componentsFactory.getJPanel(new BorderLayout(4, 0), AppThemeColor.FRAME); - JPanel currencyPanel = this.getCurrencyPanel(this.data.getCurrForSaleCount(), this.data.getCurrForSaleTitle()); - currencyPanel.setBackground(AppThemeColor.FRAME); - fromPanel.add(currencyPanel, BorderLayout.LINE_START); - fromPanel.add(getCurrencyRatePanel(), BorderLayout.CENTER); + JLabel currencyLabel = this.componentsFactory.getIconLabel("currency/" + this.data.getCurrForSaleTitle() + ".png", 26); + + if (this.data.getItems().size() > 0) { + JPanel itemsPanel = new JPanel(); + itemsPanel.setBackground(AppThemeColor.FRAME); + itemsPanel.setLayout(new BoxLayout(itemsPanel, BoxLayout.Y_AXIS)); + itemsPanel.setBorder(new EmptyBorder(0, 0, 2, 0)); + + this.data.getItems().forEach((item) -> { + itemsPanel.add(this.componentsFactory.getTextLabel(item)); + }); + fromPanel.add(itemsPanel, BorderLayout.LINE_START); + + if (this.data.getItems().size() > 1) { + this.setAdditionalHeightDelta((this.data.getItems().size() - 1) * 15); + } + } else if (currencyLabel.getIcon() == null) { + JPanel itemsPanel = new JPanel(); + itemsPanel.setBackground(AppThemeColor.FRAME); + itemsPanel.setLayout(new BoxLayout(itemsPanel, BoxLayout.Y_AXIS)); + itemsPanel.add(this.componentsFactory.getTextLabel(this.data.getCurrForSaleCount().intValue() + " " + this.data.getCurrForSaleTitle())); + fromPanel.add(itemsPanel, BorderLayout.LINE_START); + } else { + JPanel currencyPanel = this.getCurrencyPanel(this.data.getCurrForSaleCount(), this.data.getCurrForSaleTitle()); + currencyPanel.setBackground(AppThemeColor.FRAME); + fromPanel.add(currencyPanel, BorderLayout.LINE_START); + fromPanel.add(getCurrencyRatePanel(), BorderLayout.CENTER); + } return fromPanel; } diff --git a/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/NotificationPanel.java b/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/NotificationPanel.java index 825afc55..8743fc86 100644 --- a/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/NotificationPanel.java +++ b/app-ui/src/main/java/com/mercury/platform/ui/components/panel/notification/NotificationPanel.java @@ -50,6 +50,10 @@ public abstract class NotificationPanel extends JPanel implements AsSubscr private float paintAlphaValue = 1f; private Subscription settingsPostSubscription; + @Setter + @Getter + private int additionalHeightDelta = 0; + @Override public void onViewInit() { this.setLayout(new BorderLayout()); diff --git a/app-ui/src/main/java/com/mercury/platform/ui/frame/movable/NotificationFrame.java b/app-ui/src/main/java/com/mercury/platform/ui/frame/movable/NotificationFrame.java index 0b6689d7..427667f3 100644 --- a/app-ui/src/main/java/com/mercury/platform/ui/frame/movable/NotificationFrame.java +++ b/app-ui/src/main/java/com/mercury/platform/ui/frame/movable/NotificationFrame.java @@ -187,6 +187,8 @@ private void addNotification(NotificationPanel notificationPanel) { this.container.add(this.componentsFactory.wrapToSlide(notificationPanel, AppThemeColor.TRANSPARENT, 1, 1, 1, 1)); } int delta = -notificationPanel.getParent().getPreferredSize().height; + + if (this.notificationPanels.size() > this.config.get().getLimitCount()) { if (!this.expanded) { notificationPanel.getParent().setVisible(false); @@ -197,8 +199,15 @@ private void addNotification(NotificationPanel notificationPanel) { } if (this.flowDirections.equals(FlowDirections.UPWARDS) && this.notificationPanels.size() > 1) { + this.pack(); this.changeBufferSize(delta); } + + if (this.flowDirections.equals(FlowDirections.UPWARDS) && + (notificationPanel.getAdditionalHeightDelta() > 0) && this.notificationPanels.size() == 1) { + this.pack(); + this.changeBufferSize(-notificationPanel.getAdditionalHeightDelta()); + } this.pack(); this.repaint(); } diff --git a/app-ui/src/main/java/com/mercury/platform/ui/frame/movable/NotificationPreProcessor.java b/app-ui/src/main/java/com/mercury/platform/ui/frame/movable/NotificationPreProcessor.java index 7237dcb5..c86d40a7 100644 --- a/app-ui/src/main/java/com/mercury/platform/ui/frame/movable/NotificationPreProcessor.java +++ b/app-ui/src/main/java/com/mercury/platform/ui/frame/movable/NotificationPreProcessor.java @@ -65,7 +65,9 @@ public String getDescriptorData(NotificationDescriptor notificationDescriptor) { } case INC_CURRENCY_MESSAGE: { CurrencyTradeNotificationDescriptor descriptor = (CurrencyTradeNotificationDescriptor) notificationDescriptor; - return descriptor.getCurrForSaleTitle(); + if (descriptor.getCurrForSaleTitle() != null) { + return descriptor.getCurrForSaleTitle(); + } } } return UUID.randomUUID().toString(); diff --git a/app-ui/src/main/java/com/mercury/platform/ui/frame/other/HelpIGFrame.java b/app-ui/src/main/java/com/mercury/platform/ui/frame/other/HelpIGFrame.java index b8175493..c7f36ce6 100644 --- a/app-ui/src/main/java/com/mercury/platform/ui/frame/other/HelpIGFrame.java +++ b/app-ui/src/main/java/com/mercury/platform/ui/frame/other/HelpIGFrame.java @@ -4,9 +4,13 @@ import javax.swing.*; import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; public class HelpIGFrame extends AbstractOverlaidFrame { private int MARGIN = 400; + private int x; + private int y; public HelpIGFrame() { super(); } @@ -40,7 +44,35 @@ public void onViewInit() { JLabel img = new JLabel(icon); this.add(img); + + img.addMouseListener(new DraggedFrameMouseListener()); + img.addMouseMotionListener(new DraggedFrameMotionListener()); + img.setCursor(new Cursor(Cursor.MOVE_CURSOR)); this.pack(); this.setLocation(dim.width/2-this.getSize().width/2, 0); } + + public class DraggedFrameMotionListener extends MouseAdapter { + @Override + public void mouseDragged(MouseEvent e) { + e.translatePoint(HelpIGFrame.this.getLocation().x - x, HelpIGFrame.this.getLocation().y - y); + HelpIGFrame.this.setLocation(new Point(e.getX(), e.getY())); + } + } + + public class DraggedFrameMouseListener extends MouseAdapter { + @Override + public void mousePressed(MouseEvent e) { + x = e.getX(); + y = e.getY(); + } + + @Override + public void mouseReleased(MouseEvent e) { + Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); + if (getLocationOnScreen().y + getSize().height > dimension.height) { + setLocation(getLocationOnScreen().x, dimension.height - getSize().height); + } + } + } } diff --git a/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/SettingsFrame.java b/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/SettingsFrame.java index f38c5585..08f1fa0d 100644 --- a/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/SettingsFrame.java +++ b/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/SettingsFrame.java @@ -84,7 +84,7 @@ private JPanel getBottomPanel() { donateDescriptor.setSize(new Dimension(100, 20)); donateDescriptor.setType(AdrComponentType.PROGRESS_BAR); donateDescriptor.setCustomTextEnable(true); - donateDescriptor.setCustomText("31$"); + donateDescriptor.setCustomText("0$"); donateDescriptor.setFontSize(21); donateDescriptor.setLowValueTextColor(AppThemeColor.TEXT_DEFAULT); donateDescriptor.setMediumValueTextColor(AppThemeColor.TEXT_DEFAULT); @@ -93,7 +93,7 @@ private JPanel getBottomPanel() { donateDescriptor.setBackgroundColor(AppThemeColor.FRAME); donateDescriptor.setForegroundColor(AppThemeColor.BUTTON); MercuryTracker tracker = new MercuryTracker(donateDescriptor); - tracker.setValue(32 * 1000); + tracker.setValue(1000); tracker.setPreferredSize(donateDescriptor.getSize()); root.add(this.componentsFactory.getTextLabel("Monthly donations:", FontStyle.BOLD, 16), BorderLayout.LINE_START); root.add(this.componentsFactory.wrapToSlide(tracker, AppThemeColor.ADR_FOOTER_BG, 2, 2, 2, 1), BorderLayout.CENTER); diff --git a/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/TestCasesFrame.java b/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/TestCasesFrame.java index 0d852e32..7653e15b 100644 --- a/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/TestCasesFrame.java +++ b/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/TestCasesFrame.java @@ -99,6 +99,16 @@ private JPanel getTestCasesPanel() { testPanel.add(chatScannerLabel, titleColumn); titleColumn.gridy++; + JButton mapBulkButton = componentsFactory.getBorderedButton("Click"); + mapBulkButton.addActionListener(action -> { + MercuryStoreCore.newNotificationSubject.onNext(this.testEngine.getRandomMapBulkMessage()); + }); + testPanel.add(mapBulkButton, buttonColumn); + buttonColumn.gridy++; + JLabel mapBulkLabel = componentsFactory.getTextLabel("Random bulk map message"); + testPanel.add(mapBulkLabel, titleColumn); + titleColumn.gridy++; + JButton accessibilityStatusButton = componentsFactory.getBorderedButton("Click"); accessibilityStatusButton.addActionListener(action -> { NotificationDescriptor randomItemIncMessage = this.testEngine.getRandomItemIncMessage(); diff --git a/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/TestEngine.java b/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/TestEngine.java index cf9fda1c..12c29c8d 100644 --- a/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/TestEngine.java +++ b/app-ui/src/main/java/com/mercury/platform/ui/frame/titled/TestEngine.java @@ -23,6 +23,7 @@ public class TestEngine { private Random random = new Random(); private String poeTradeTemplate = "%s: Hi, I would like to buy your %s listed for %d %s in %s (stash tab \"%d\"; position: left %d, top %d) %s"; private String currencyTemplate = "%s: Hi, I'd like to buy your %d %s for my %d %s in %s. %s"; + private String currencyMapBulkTemplate = "%s: Hi, I'd like to buy your %s for my %d %s in %s. %s"; public TestEngine() { this.messageBuilder.setChunkStrings(Arrays.asList("Hi", "buy", "listed", "like")); @@ -259,4 +260,17 @@ private List getChatHistory() { return list; } + public NotificationDescriptor getRandomMapBulkMessage() { + NotificationDescriptor notificationDescriptor = parser.parse(String.format(currencyMapBulkTemplate, + nickNames.get(random.nextInt(nickNames.size())), + "1 Ivory Temple Map (T12), 1 Lava Lake Map (T15), 1 Zana's Precinct Map (T6) & 1 Burial Chambers Map (T11)", + random.nextInt(1500) + 1, + currency.get(random.nextInt(currency.size())), + leagues.get(random.nextInt(leagues.size())), + offer.get(random.nextInt(offer.size())) + )); + notificationDescriptor.setRelatedMessages(this.getChatHistory()); + return notificationDescriptor; + } + } diff --git a/app-ui/src/main/resources/currency/Chaos Orb.png b/app-ui/src/main/resources/currency/Chaos Orb.png new file mode 100644 index 0000000000000000000000000000000000000000..971c6fe8516b0fbdccf3a4fa0ed1a85b50344931 GIT binary patch literal 11310 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 literal 0 HcmV?d00001 diff --git a/app-ui/src/main/resources/currency/Exalted Orbs.png b/app-ui/src/main/resources/currency/Exalted Orbs.png new file mode 100644 index 0000000000000000000000000000000000000000..355c12e93fb5a458dca2c097544e9bbae25b1d25 GIT binary patch literal 11296 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 W8zZ*V!{>?s0000887CEP)tz7YM^J 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 literal 0 HcmV?d00001 diff --git a/app-ui/src/main/resources/currency/Maze of the Minotaur.png b/app-ui/src/main/resources/currency/Maze of the Minotaur.png new file mode 100644 index 0000000000000000000000000000000000000000..b8223016ddb0d74d9bb4901fb1500687e60c72ac GIT binary patch literal 6482 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 literal 0 HcmV?d00001 diff --git a/app-ui/src/main/resources/currency/Pit of the Chimera.png b/app-ui/src/main/resources/currency/Pit of the Chimera.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd011ca422a8405e1774949ba40a1e106b56e01 GIT binary patch literal 6617 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 XLXZU^?{9QD00000NkvXXu0mjfV&Wvf literal 0 HcmV?d00001 diff --git a/app-ui/src/main/resources/notes/patch/patch-notes.json b/app-ui/src/main/resources/notes/patch/patch-notes.json index 5a4b58f3..7e25f95a 100644 --- a/app-ui/src/main/resources/notes/patch/patch-notes.json +++ b/app-ui/src/main/resources/notes/patch/patch-notes.json @@ -1,9 +1,9 @@ { - "version": "1.0.3.3.0", + "version": "1.0.3.4.0", "notes":[ { "title": "Update", - "text": "Hi, sorry for the long absence.\n\n- Fix critical bug when sometimes MT hangs on boot.\n- Fixed a bug when notification panel doesn't show up after altabing.\n- Now notification panel works with german POE client.\n- Support tab updated.\n\nDon't forget to support the app, we really appreciate it! Thanks!", + "text": "- New feature: Syndicate rewards matrix overlay (see in taskbar) + hotkey (settings -> taskbar). Thanks @Etuldan for contributing.\n- Added support for buying bulk maps from one seller in poeapp.com\n- Fix notification panel layout when buying/selling maps from poe trade/poeapp\n- Added some new icons for currencies.\n\nHappy holidays! Don't forget to support the app. Thanks!", "image" : "", "layout" : "VERTICAL" }