diff --git a/runelite-api/src/main/java/net/runelite/api/events/ChatMessage.java b/runelite-api/src/main/java/net/runelite/api/events/ChatMessage.java index 9b5e12b6fd..0f5182e22b 100644 --- a/runelite-api/src/main/java/net/runelite/api/events/ChatMessage.java +++ b/runelite-api/src/main/java/net/runelite/api/events/ChatMessage.java @@ -26,7 +26,9 @@ package net.runelite.api.events; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import net.runelite.api.ChatMessageType; +import net.runelite.api.MessageNode; /** * An event where a new chat message is received. @@ -38,8 +40,13 @@ import net.runelite.api.ChatMessageType; */ @Data @AllArgsConstructor +@NoArgsConstructor public class ChatMessage { + /** + * The underlying MessageNode for the message. + */ + private MessageNode messageNode; /** * The type of message received. */ @@ -59,4 +66,8 @@ public class ChatMessage * current name of the clan chat the client is in. */ private String sender; + /** + * Timestamp of the message. + */ + private int timestamp; } diff --git a/runelite-api/src/main/java/net/runelite/api/events/SetMessage.java b/runelite-api/src/main/java/net/runelite/api/events/SetMessage.java deleted file mode 100644 index 0dde863bcc..0000000000 --- a/runelite-api/src/main/java/net/runelite/api/events/SetMessage.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.runelite.api.events; - -import lombok.Data; -import net.runelite.api.ChatMessageType; -import net.runelite.api.MessageNode; - -/** - * An event where a {@link MessageNode} has had its message set. - *

- * Called whenever a message is received in the chat box. - *

- * Editing the {@link #messageNode} properties will reflect the change when - * the message in the chat is rendered. The original values of the message - * are held by the other fields of this event. - */ -@Data -public class SetMessage -{ - /** - * The updated message node. - */ - private MessageNode messageNode; - /** - * The set message type. - */ - private ChatMessageType type; - /** - * The name of the player that sent the message. - */ - private String name; - /** - * The sender of the message (ie. clan name). - */ - private String sender; - /** - * The new message value. - */ - private String value; - /** - * Timestamp of the message. - */ - private int timestamp; -} diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommand.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommand.java index fb2de339a3..6b4fb9eec2 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommand.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommand.java @@ -28,7 +28,7 @@ import java.util.function.BiConsumer; import java.util.function.BiPredicate; import lombok.AllArgsConstructor; import lombok.Getter; -import net.runelite.api.events.SetMessage; +import net.runelite.api.events.ChatMessage; import net.runelite.client.events.ChatInput; @AllArgsConstructor @@ -37,6 +37,6 @@ class ChatCommand { private final String name; private boolean async; - private final BiConsumer execute; + private final BiConsumer execute; private final BiPredicate input; } diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java index 4d062d5c91..415afd8d80 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatCommandManager.java @@ -34,7 +34,7 @@ import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.GameState; -import net.runelite.api.events.SetMessage; +import net.runelite.api.events.ChatMessage; import net.runelite.client.eventbus.EventBus; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ChatInput; @@ -59,22 +59,22 @@ public class ChatCommandManager implements ChatboxInputListener commandManager.register(this); } - public void registerCommand(String command, BiConsumer execute) + public void registerCommand(String command, BiConsumer execute) { registerCommand(command, execute, null); } - public void registerCommand(String command, BiConsumer execute, BiPredicate input) + public void registerCommand(String command, BiConsumer execute, BiPredicate input) { commands.put(command.toLowerCase(), new ChatCommand(command, false, execute, input)); } - public void registerCommandAsync(String command, BiConsumer execute) + public void registerCommandAsync(String command, BiConsumer execute) { registerCommandAsync(command, execute, null); } - public void registerCommandAsync(String command, BiConsumer execute, BiPredicate input) + public void registerCommandAsync(String command, BiConsumer execute, BiPredicate input) { commands.put(command.toLowerCase(), new ChatCommand(command, true, execute, input)); } @@ -85,14 +85,14 @@ public class ChatCommandManager implements ChatboxInputListener } @Subscribe - public void onSetMessage(SetMessage setMessage) + public void onChatMessage(ChatMessage chatMessage) { if (client.getGameState() != GameState.LOGGED_IN) { return; } - switch (setMessage.getType()) + switch (chatMessage.getType()) { case PUBLIC: case PUBLIC_MOD: @@ -104,7 +104,7 @@ public class ChatCommandManager implements ChatboxInputListener return; } - String message = setMessage.getValue(); + String message = chatMessage.getMessage(); String command = extractCommand(message); if (command == null) @@ -120,11 +120,11 @@ public class ChatCommandManager implements ChatboxInputListener if (chatCommand.isAsync()) { - scheduledExecutorService.execute(() -> chatCommand.getExecute().accept(setMessage, message)); + scheduledExecutorService.execute(() -> chatCommand.getExecute().accept(chatMessage, message)); } else { - chatCommand.getExecute().accept(setMessage, message); + chatCommand.getExecute().accept(chatMessage, message); } } diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java index b563773915..0dc2d7de1d 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java @@ -42,10 +42,10 @@ import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.MessageNode; import net.runelite.api.Varbits; +import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ResizeableChanged; import net.runelite.api.events.ScriptCallbackEvent; -import net.runelite.api.events.SetMessage; import net.runelite.api.events.VarbitChanged; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ChatColorConfig; @@ -103,10 +103,10 @@ public class ChatMessageManager } @Subscribe - public void onSetMessage(SetMessage setMessage) + public void onChatMessage(ChatMessage chatMessage) { - MessageNode messageNode = setMessage.getMessageNode(); - ChatMessageType chatMessageType = setMessage.getType(); + MessageNode messageNode = chatMessage.getMessageNode(); + ChatMessageType chatMessageType = chatMessage.getType(); boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1; Color usernameColor = null; @@ -125,7 +125,7 @@ public class ChatMessageManager case PUBLIC: case PUBLIC_MOD: { - boolean isFriend = client.isFriended(setMessage.getName(), true) && !client.getLocalPlayer().getName().equals(setMessage.getName()); + boolean isFriend = client.isFriended(chatMessage.getName(), true) && !client.getLocalPlayer().getName().equals(chatMessage.getName()); if (isFriend) { @@ -149,7 +149,7 @@ public class ChatMessageManager messageNode.setName(ColorUtil.wrapWithColorTag(messageNode.getName(), usernameColor)); } - String sender = setMessage.getSender(); + String sender = chatMessage.getSender(); if (senderColor != null && !Strings.isNullOrEmpty(sender)) { messageNode.setSender(ColorUtil.wrapWithColorTag(sender, senderColor)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index a927782809..42a3a9baba 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -43,7 +43,6 @@ import net.runelite.api.MessageNode; import net.runelite.api.VarPlayer; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.GameTick; -import net.runelite.api.events.SetMessage; import net.runelite.api.events.VarbitChanged; import net.runelite.api.events.WidgetLoaded; import net.runelite.api.vars.AccountType; @@ -360,14 +359,14 @@ public class ChatCommandsPlugin extends Plugin return true; } - private void killCountLookup(SetMessage setMessage, String message) + private void killCountLookup(ChatMessage chatMessage, String message) { if (!config.killcount()) { return; } - ChatMessageType type = setMessage.getType(); + ChatMessageType type = chatMessage.getType(); String search = message.substring(KILLCOUNT_COMMAND_STRING.length() + 1); final String player; @@ -377,7 +376,7 @@ public class ChatCommandsPlugin extends Plugin } else { - player = sanitize(setMessage.getName()); + player = sanitize(chatMessage.getName()); } search = longBossName(search); @@ -403,20 +402,20 @@ public class ChatCommandsPlugin extends Plugin .build(); log.debug("Setting response {}", response); - final MessageNode messageNode = setMessage.getMessageNode(); + final MessageNode messageNode = chatMessage.getMessageNode(); messageNode.setRuneLiteFormatMessage(response); chatMessageManager.update(messageNode); client.refreshChat(); } - private void questPointsLookup(SetMessage setMessage, String message) + private void questPointsLookup(ChatMessage chatMessage, String message) { if (!config.qp()) { return; } - ChatMessageType type = setMessage.getType(); + ChatMessageType type = chatMessage.getType(); final String player; if (type.equals(ChatMessageType.PRIVATE_MESSAGE_SENT)) @@ -425,7 +424,7 @@ public class ChatCommandsPlugin extends Plugin } else { - player = sanitize(setMessage.getName()); + player = sanitize(chatMessage.getName()); } int qp; @@ -447,7 +446,7 @@ public class ChatCommandsPlugin extends Plugin .build(); log.debug("Setting response {}", response); - final MessageNode messageNode = setMessage.getMessageNode(); + final MessageNode messageNode = chatMessage.getMessageNode(); messageNode.setRuneLiteFormatMessage(response); chatMessageManager.update(messageNode); client.refreshChat(); @@ -477,14 +476,14 @@ public class ChatCommandsPlugin extends Plugin return true; } - private void personalBestLookup(SetMessage setMessage, String message) + private void personalBestLookup(ChatMessage chatMessage, String message) { if (!config.pb()) { return; } - ChatMessageType type = setMessage.getType(); + ChatMessageType type = chatMessage.getType(); String search = message.substring(PB_COMMAND.length() + 1); final String player; @@ -494,7 +493,7 @@ public class ChatCommandsPlugin extends Plugin } else { - player = sanitize(setMessage.getName()); + player = sanitize(chatMessage.getName()); } search = longBossName(search); @@ -523,7 +522,7 @@ public class ChatCommandsPlugin extends Plugin .build(); log.debug("Setting response {}", response); - final MessageNode messageNode = setMessage.getMessageNode(); + final MessageNode messageNode = chatMessage.getMessageNode(); messageNode.setRuneLiteFormatMessage(response); chatMessageManager.update(messageNode); client.refreshChat(); @@ -565,17 +564,17 @@ public class ChatCommandsPlugin extends Plugin * Looks up the item price and changes the original message to the * response. * - * @param setMessage The chat message containing the command. + * @param chatMessage The chat message containing the command. * @param message The chat message */ - private void itemPriceLookup(SetMessage setMessage, String message) + private void itemPriceLookup(ChatMessage chatMessage, String message) { if (!config.price()) { return; } - MessageNode messageNode = setMessage.getMessageNode(); + MessageNode messageNode = chatMessage.getMessageNode(); String search = message.substring(PRICE_COMMAND_STRING.length() + 1); List results = itemManager.search(search); @@ -621,10 +620,10 @@ public class ChatCommandsPlugin extends Plugin * Looks up the player skill and changes the original message to the * response. * - * @param setMessage The chat message containing the command. + * @param chatMessage The chat message containing the command. * @param message The chat message */ - private void playerSkillLookup(SetMessage setMessage, String message) + private void playerSkillLookup(ChatMessage chatMessage, String message) { if (!config.lvl()) { @@ -652,7 +651,7 @@ public class ChatCommandsPlugin extends Plugin return; } - final HiscoreLookup lookup = getCorrectLookupFor(setMessage); + final HiscoreLookup lookup = getCorrectLookupFor(chatMessage); try { @@ -682,7 +681,7 @@ public class ChatCommandsPlugin extends Plugin .build(); log.debug("Setting response {}", response); - final MessageNode messageNode = setMessage.getMessageNode(); + final MessageNode messageNode = chatMessage.getMessageNode(); messageNode.setRuneLiteFormatMessage(response); chatMessageManager.update(messageNode); client.refreshChat(); @@ -693,14 +692,14 @@ public class ChatCommandsPlugin extends Plugin } } - private void combatLevelLookup(SetMessage setMessage, String message) + private void combatLevelLookup(ChatMessage chatMessage, String message) { if (!config.lvl()) { return; } - ChatMessageType type = setMessage.getType(); + ChatMessageType type = chatMessage.getType(); String player; if (type == ChatMessageType.PRIVATE_MESSAGE_SENT) @@ -709,7 +708,7 @@ public class ChatCommandsPlugin extends Plugin } else { - player = sanitize(setMessage.getName()); + player = sanitize(chatMessage.getName()); } try @@ -767,7 +766,7 @@ public class ChatCommandsPlugin extends Plugin .build(); log.debug("Setting response {}", response); - final MessageNode messageNode = setMessage.getMessageNode(); + final MessageNode messageNode = chatMessage.getMessageNode(); messageNode.setRuneLiteFormatMessage(response); chatMessageManager.update(messageNode); client.refreshChat(); @@ -778,7 +777,7 @@ public class ChatCommandsPlugin extends Plugin } } - private void clueLookup(SetMessage setMessage, String message) + private void clueLookup(ChatMessage chatMessage, String message) { if (!config.clue()) { @@ -799,7 +798,7 @@ public class ChatCommandsPlugin extends Plugin try { final Skill hiscoreSkill; - final HiscoreLookup lookup = getCorrectLookupFor(setMessage); + final HiscoreLookup lookup = getCorrectLookupFor(chatMessage); final HiscoreResult result = hiscoreClient.lookup(lookup.getName(), lookup.getEndpoint()); if (result == null) @@ -858,7 +857,7 @@ public class ChatCommandsPlugin extends Plugin String response = chatMessageBuilder.build(); log.debug("Setting response {}", response); - final MessageNode messageNode = setMessage.getMessageNode(); + final MessageNode messageNode = chatMessage.getMessageNode(); messageNode.setRuneLiteFormatMessage(response); chatMessageManager.update(messageNode); client.refreshChat(); @@ -872,22 +871,22 @@ public class ChatCommandsPlugin extends Plugin /** * Gets correct lookup data for message * - * @param setMessage chat message + * @param chatMessage chat message * @return hiscore lookup data */ - private HiscoreLookup getCorrectLookupFor(final SetMessage setMessage) + private HiscoreLookup getCorrectLookupFor(final ChatMessage chatMessage) { final String player; final HiscoreEndpoint ironmanStatus; - if (setMessage.getType().equals(ChatMessageType.PRIVATE_MESSAGE_SENT)) + if (chatMessage.getType().equals(ChatMessageType.PRIVATE_MESSAGE_SENT)) { player = client.getLocalPlayer().getName(); ironmanStatus = hiscoreEndpoint; } else { - player = sanitize(setMessage.getName()); + player = sanitize(chatMessage.getName()); if (player.equals(client.getLocalPlayer().getName())) { @@ -897,7 +896,7 @@ public class ChatCommandsPlugin extends Plugin else { // Get ironman status from their icon in chat - ironmanStatus = getHiscoreEndpointByName(setMessage.getName()); + ironmanStatus = getHiscoreEndpointByName(chatMessage.getName()); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java index 4f2ae79818..6ac89bf605 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chathistory/ChatHistoryPlugin.java @@ -30,8 +30,8 @@ import java.util.Queue; import java.util.Set; import javax.inject.Inject; import net.runelite.api.ChatMessageType; +import net.runelite.api.events.ChatMessage; import net.runelite.api.events.MenuOptionClicked; -import net.runelite.api.events.SetMessage; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.chat.QueuedMessage; import net.runelite.client.eventbus.Subscribe; @@ -76,11 +76,11 @@ public class ChatHistoryPlugin extends Plugin } @Subscribe - public void onSetMessage(SetMessage message) + public void onChatMessage(ChatMessage chatMessage) { // Start sending old messages right after the welcome message, as that is most reliable source // of information that chat history was reset - if (message.getValue().equals(WELCOME_MESSAGE)) + if (chatMessage.getMessage().equals(WELCOME_MESSAGE)) { QueuedMessage queuedMessage; @@ -92,15 +92,15 @@ public class ChatHistoryPlugin extends Plugin return; } - if (ALLOWED_HISTORY.contains(message.getType())) + if (ALLOWED_HISTORY.contains(chatMessage.getType())) { final QueuedMessage queuedMessage = QueuedMessage.builder() - .type(message.getType()) - .name(message.getName()) - .sender(message.getSender()) - .value(nbsp(message.getValue())) - .runeLiteFormattedMessage(nbsp(message.getMessageNode().getRuneLiteFormatMessage())) - .timestamp(message.getTimestamp()) + .type(chatMessage.getType()) + .name(chatMessage.getName()) + .sender(chatMessage.getSender()) + .value(nbsp(chatMessage.getMessage())) + .runeLiteFormattedMessage(nbsp(chatMessage.getMessageNode().getRuneLiteFormatMessage())) + .timestamp(chatMessage.getTimestamp()) .build(); if (!messageQueue.contains(queuedMessage)) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java index fd148c1e90..0bfd952e01 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java @@ -35,9 +35,9 @@ import java.util.stream.Collectors; import javax.inject.Inject; import net.runelite.api.Client; import net.runelite.api.MessageNode; +import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; -import net.runelite.api.events.SetMessage; import net.runelite.client.Notifier; import net.runelite.client.RuneLiteProperties; import net.runelite.client.chat.ChatColorType; @@ -124,29 +124,29 @@ public class ChatNotificationsPlugin extends Plugin } @Subscribe - public void onSetMessage(SetMessage event) + public void onChatMessage(ChatMessage chatMessage) { - MessageNode messageNode = event.getMessageNode(); + MessageNode messageNode = chatMessage.getMessageNode(); String nodeValue = Text.removeTags(messageNode.getValue()); boolean update = false; - switch (event.getType()) + switch (chatMessage.getType()) { case TRADE: - if (event.getValue().contains("wishes to trade with you.") && config.notifyOnTrade()) + if (chatMessage.getMessage().contains("wishes to trade with you.") && config.notifyOnTrade()) { - notifier.notify(event.getValue()); + notifier.notify(chatMessage.getMessage()); } break; case DUEL: - if (event.getValue().contains("wishes to duel with you.") && config.notifyOnDuel()) + if (chatMessage.getMessage().contains("wishes to duel with you.") && config.notifyOnDuel()) { - notifier.notify(event.getValue()); + notifier.notify(chatMessage.getMessage()); } break; case GAME: // Don't notify for notification messages - if (event.getName().equals(runeLiteProperties.getTitle())) + if (chatMessage.getName().equals(runeLiteProperties.getTitle())) { return; } @@ -170,7 +170,7 @@ public class ChatNotificationsPlugin extends Plugin if (config.notifyOnOwnName()) { - sendNotification(event); + sendNotification(chatMessage); } } } @@ -196,7 +196,7 @@ public class ChatNotificationsPlugin extends Plugin if (config.notifyOnHighlight()) { - sendNotification(event); + sendNotification(chatMessage); } } } @@ -208,7 +208,7 @@ public class ChatNotificationsPlugin extends Plugin } } - private void sendNotification(SetMessage message) + private void sendNotification(ChatMessage message) { String name = Text.removeTags(message.getName()); String sender = message.getSender(); @@ -224,7 +224,7 @@ public class ChatNotificationsPlugin extends Plugin stringBuilder.append(name).append(": "); } - stringBuilder.append(Text.removeTags(message.getValue())); + stringBuilder.append(Text.removeTags(message.getMessage())); String notification = stringBuilder.toString(); notifier.notify(notification); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java index b5ee817198..0b738c3f4b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java @@ -35,13 +35,13 @@ import net.runelite.api.ClanMemberRank; import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.VarClientStr; -import net.runelite.api.widgets.WidgetType; +import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameTick; -import net.runelite.api.events.SetMessage; import net.runelite.api.events.VarClientStrChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; +import net.runelite.api.widgets.WidgetType; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.game.ClanManager; @@ -134,20 +134,20 @@ public class ClanChatPlugin extends Plugin } @Subscribe - public void onSetMessage(SetMessage setMessage) + public void onChatMessage(ChatMessage chatMessage) { if (client.getGameState() != GameState.LOADING && client.getGameState() != GameState.LOGGED_IN) { return; } - if (setMessage.getType() == ChatMessageType.CLANCHAT && client.getClanChatCount() > 0) + if (chatMessage.getType() == ChatMessageType.CLANCHAT && client.getClanChatCount() > 0) { - insertClanRankIcon(setMessage); + insertClanRankIcon(chatMessage); } } - private void insertClanRankIcon(final SetMessage message) + private void insertClanRankIcon(final ChatMessage message) { final ClanMemberRank rank = clanManager.getRank(message.getName()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index 3d3d64b25b..ff8d6e39bb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -60,7 +60,6 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; -import net.runelite.api.events.SetMessage; import net.runelite.api.vars.SlayerUnlock; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; @@ -724,14 +723,14 @@ public class SlayerPlugin extends Plugin counter = null; } - void taskLookup(SetMessage setMessage, String message) + void taskLookup(ChatMessage chatMessage, String message) { if (!config.taskCommand()) { return; } - ChatMessageType type = setMessage.getType(); + ChatMessageType type = chatMessage.getType(); final String player; if (type.equals(ChatMessageType.PRIVATE_MESSAGE_SENT)) @@ -740,7 +739,7 @@ public class SlayerPlugin extends Plugin } else { - player = Text.removeTags(setMessage.getName()) + player = Text.removeTags(chatMessage.getName()) .replace('\u00A0', ' '); } @@ -787,7 +786,7 @@ public class SlayerPlugin extends Plugin .append(sb.toString()) .build(); - final MessageNode messageNode = setMessage.getMessageNode(); + final MessageNode messageNode = chatMessage.getMessageNode(); messageNode.setRuneLiteFormatMessage(response); chatMessageManager.update(messageNode); client.refreshChat(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java index 32605d4ed0..f0da75dc18 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtPlugin.java @@ -32,7 +32,21 @@ import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; import lombok.extern.slf4j.Slf4j; -import static net.runelite.api.AnimationID.*; +import static net.runelite.api.AnimationID.CONSTRUCTION; +import static net.runelite.api.AnimationID.FIREMAKING; +import static net.runelite.api.AnimationID.FLETCHING_BOW_CUTTING; +import static net.runelite.api.AnimationID.IDLE; +import static net.runelite.api.AnimationID.LOOKING_INTO; +import static net.runelite.api.AnimationID.WOODCUTTING_3A_AXE; +import static net.runelite.api.AnimationID.WOODCUTTING_ADAMANT; +import static net.runelite.api.AnimationID.WOODCUTTING_BLACK; +import static net.runelite.api.AnimationID.WOODCUTTING_BRONZE; +import static net.runelite.api.AnimationID.WOODCUTTING_DRAGON; +import static net.runelite.api.AnimationID.WOODCUTTING_INFERNAL; +import static net.runelite.api.AnimationID.WOODCUTTING_IRON; +import static net.runelite.api.AnimationID.WOODCUTTING_MITHRIL; +import static net.runelite.api.AnimationID.WOODCUTTING_RUNE; +import static net.runelite.api.AnimationID.WOODCUTTING_STEEL; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.InventoryID; @@ -43,9 +57,9 @@ import static net.runelite.api.ItemID.BRUMA_ROOT; import net.runelite.api.MessageNode; import net.runelite.api.Player; import net.runelite.api.events.AnimationChanged; +import net.runelite.api.events.ChatMessage; import net.runelite.api.events.GameTick; import net.runelite.api.events.ItemContainerChanged; -import net.runelite.api.events.SetMessage; import net.runelite.client.Notifier; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.config.ConfigManager; @@ -192,21 +206,21 @@ public class WintertodtPlugin extends Plugin } @Subscribe - public void onSetMessage(SetMessage setMessage) + public void onSetMessage(ChatMessage chatMessage) { if (!isInWintertodt) { return; } - ChatMessageType chatMessageType = setMessage.getType(); + ChatMessageType chatMessageType = chatMessage.getType(); if (chatMessageType != ChatMessageType.SERVER && chatMessageType != ChatMessageType.FILTERED) { return; } - MessageNode messageNode = setMessage.getMessageNode(); + MessageNode messageNode = chatMessage.getMessageNode(); final WintertodtInterruptType interruptType; if (messageNode.getValue().startsWith("The cold of")) diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/chatcommands/ChatCommandsPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/chatcommands/ChatCommandsPluginTest.java index 74e5fc25ae..cc6703db91 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/chatcommands/ChatCommandsPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/chatcommands/ChatCommandsPluginTest.java @@ -80,7 +80,7 @@ public class ChatCommandsPluginTest { when(client.getUsername()).thenReturn("Adam"); - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", "Your Corporeal Beast kill count is: 4.", null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", "Your Corporeal Beast kill count is: 4.", null, 0); chatCommandsPlugin.onChatMessage(chatMessageEvent); verify(configManager).setConfiguration("killcount.adam", "corporeal beast", 4); @@ -91,7 +91,7 @@ public class ChatCommandsPluginTest { when(client.getUsername()).thenReturn("Adam"); - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", "Your completed Theatre of Blood count is: 73.", null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", "Your completed Theatre of Blood count is: 73.", null, 0); chatCommandsPlugin.onChatMessage(chatMessageEvent); verify(configManager).setConfiguration("killcount.adam", "theatre of blood", 73); @@ -102,7 +102,7 @@ public class ChatCommandsPluginTest { when(client.getUsername()).thenReturn("Adam"); - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", "Your subdued Wintertodt count is: 4.", null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", "Your subdued Wintertodt count is: 4.", null, 0); chatCommandsPlugin.onChatMessage(chatMessageEvent); verify(configManager).setConfiguration("killcount.adam", "wintertodt", 4); @@ -113,7 +113,7 @@ public class ChatCommandsPluginTest { when(client.getUsername()).thenReturn("Adam"); - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", "Your Kree'arra kill count is: 4.", null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", "Your Kree'arra kill count is: 4.", null, 0); chatCommandsPlugin.onChatMessage(chatMessageEvent); verify(configManager).setConfiguration("killcount.adam", "kree'arra", 4); @@ -124,7 +124,7 @@ public class ChatCommandsPluginTest { when(client.getUsername()).thenReturn("Adam"); - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", "Your Barrows chest count is: 277.", null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", "Your Barrows chest count is: 277.", null, 0); chatCommandsPlugin.onChatMessage(chatMessageEvent); verify(configManager).setConfiguration("killcount.adam", "barrows chests", 277); @@ -138,10 +138,10 @@ public class ChatCommandsPluginTest when(client.getUsername()).thenReturn("Adam"); // This sets lastBoss - ChatMessage chatMessage = new ChatMessage(SERVER, "", "Your Kree'arra kill count is: 4.", null); + ChatMessage chatMessage = new ChatMessage(null, SERVER, "", "Your Kree'arra kill count is: 4.", null, 0); chatCommandsPlugin.onChatMessage(chatMessage); - chatMessage = new ChatMessage(SERVER, "", FIGHT_DURATION, null); + chatMessage = new ChatMessage(null, SERVER, "", FIGHT_DURATION, null, 0); chatCommandsPlugin.onChatMessage(chatMessage); verify(configManager).setConfiguration(eq("personalbest.adam"), eq("kree'arra"), eq(79)); @@ -155,10 +155,10 @@ public class ChatCommandsPluginTest when(client.getUsername()).thenReturn("Adam"); // This sets lastBoss - ChatMessage chatMessage = new ChatMessage(SERVER, "", "Your Zulrah kill count is: 4.", null); + ChatMessage chatMessage = new ChatMessage(null, SERVER, "", "Your Zulrah kill count is: 4.", null, 0); chatCommandsPlugin.onChatMessage(chatMessage); - chatMessage = new ChatMessage(SERVER, "", FIGHT_DURATION, null); + chatMessage = new ChatMessage(null, SERVER, "", FIGHT_DURATION, null, 0); chatCommandsPlugin.onChatMessage(chatMessage); verify(configManager).setConfiguration(eq("personalbest.adam"), eq("zulrah"), eq(55)); @@ -172,10 +172,10 @@ public class ChatCommandsPluginTest when(client.getUsername()).thenReturn("Adam"); // This sets lastBoss - ChatMessage chatMessage = new ChatMessage(SERVER, "", "Your Kree'arra kill count is: 4.", null); + ChatMessage chatMessage = new ChatMessage(null, SERVER, "", "Your Kree'arra kill count is: 4.", null, 0); chatCommandsPlugin.onChatMessage(chatMessage); - chatMessage = new ChatMessage(SERVER, "", NEW_PB, null); + chatMessage = new ChatMessage(null, SERVER, "", NEW_PB, null, 0); chatCommandsPlugin.onChatMessage(chatMessage); verify(configManager).setConfiguration(eq("personalbest.adam"), eq("kree'arra"), eq(181)); diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java index a120339da0..2105f089ef 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPluginTest.java @@ -33,7 +33,7 @@ import javax.inject.Inject; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.MessageNode; -import net.runelite.api.events.SetMessage; +import net.runelite.api.events.ChatMessage; import net.runelite.client.Notifier; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.util.Text; @@ -83,12 +83,12 @@ public class ChatNotificationsPluginTest MessageNode messageNode = mock(MessageNode.class); when(messageNode.getValue()).thenReturn("Deathbeam, Deathbeam OSRS"); - SetMessage setMessage = new SetMessage(); - setMessage.setType(ChatMessageType.PUBLIC); - setMessage.setMessageNode(messageNode); + ChatMessage chatMessage = new ChatMessage(); + chatMessage.setType(ChatMessageType.PUBLIC); + chatMessage.setMessageNode(messageNode); chatNotificationsPlugin.startUp(); // load highlight config - chatNotificationsPlugin.onSetMessage(setMessage); + chatNotificationsPlugin.onChatMessage(chatMessage); verify(messageNode).setValue("Deathbeam, Deathbeam OSRS"); } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/cooking/CookingPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/cooking/CookingPluginTest.java index 33b969015d..024a4de8b3 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/cooking/CookingPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/cooking/CookingPluginTest.java @@ -79,7 +79,7 @@ public class CookingPluginTest { for (String message : COOKING_MESSAGES) { - ChatMessage chatMessage = new ChatMessage(ChatMessageType.FILTERED, "", message, ""); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.FILTERED, "", message, "", 0); cookingPlugin.onChatMessage(chatMessage); } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/examine/ExaminePluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/examine/ExaminePluginTest.java index 7c00bab4a9..f7416f4aad 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/examine/ExaminePluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/examine/ExaminePluginTest.java @@ -94,7 +94,7 @@ public class ExaminePluginTest menuOptionClicked.setId(ItemID.ABYSSAL_WHIP); examinePlugin.onMenuOptionClicked(menuOptionClicked); - ChatMessage chatMessage = new ChatMessage(ChatMessageType.EXAMINE_ITEM, "", "A weapon from the abyss.", ""); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.EXAMINE_ITEM, "", "A weapon from the abyss.", "", 0); examinePlugin.onChatMessage(chatMessage); // This passes due to not mocking the ItemComposition for the whip @@ -112,7 +112,7 @@ public class ExaminePluginTest menuOptionClicked.setId(ItemID.ABYSSAL_WHIP); examinePlugin.onMenuOptionClicked(menuOptionClicked); - ChatMessage chatMessage = new ChatMessage(ChatMessageType.EXAMINE_ITEM, "", "100000 x Abyssal whip", ""); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.EXAMINE_ITEM, "", "100000 x Abyssal whip", "", 0); examinePlugin.onChatMessage(chatMessage); verify(examineClient, never()).submitItem(anyInt(), anyString()); diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java index 36ffcf643e..b8fc81a16a 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/itemcharges/ItemChargePluginTest.java @@ -76,19 +76,19 @@ public class ItemChargePluginTest @Test public void testOnChatMessage() { - ChatMessage chatMessage = new ChatMessage(ChatMessageType.SERVER, "", CHECK, ""); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SERVER, "", CHECK, "", 0); itemChargePlugin.onChatMessage(chatMessage); assertEquals(10, itemChargePlugin.getDodgyCharges()); - chatMessage = new ChatMessage(ChatMessageType.SERVER, "", PROTECT, ""); + chatMessage = new ChatMessage(null, ChatMessageType.SERVER, "", PROTECT, "", 0); itemChargePlugin.onChatMessage(chatMessage); assertEquals(9, itemChargePlugin.getDodgyCharges()); - chatMessage = new ChatMessage(ChatMessageType.SERVER, "", PROTECT_1, ""); + chatMessage = new ChatMessage(null, ChatMessageType.SERVER, "", PROTECT_1, "", 0); itemChargePlugin.onChatMessage(chatMessage); assertEquals(1, itemChargePlugin.getDodgyCharges()); - chatMessage = new ChatMessage(ChatMessageType.SERVER, "", BREAK, ""); + chatMessage = new ChatMessage(null, ChatMessageType.SERVER, "", BREAK, "", 0); itemChargePlugin.onChatMessage(chatMessage); assertEquals(10, itemChargePlugin.getDodgyCharges()); } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java index 18e6e23700..be5b08e71b 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java @@ -110,7 +110,7 @@ public class ScreenshotPluginTest @Test public void testClueScroll() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Seth", CLUE_SCROLL, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Seth", CLUE_SCROLL, null, 0); screenshotPlugin.onChatMessage(chatMessageEvent); assertEquals("medium", screenshotPlugin.getClueType()); @@ -120,7 +120,7 @@ public class ScreenshotPluginTest @Test public void testBarrowsChest() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Seth", BARROWS_CHEST, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Seth", BARROWS_CHEST, null, 0); screenshotPlugin.onChatMessage(chatMessageEvent); assertEquals(310, screenshotPlugin.getBarrowsNumber()); @@ -129,7 +129,7 @@ public class ScreenshotPluginTest @Test public void testChambersOfXericChest() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Seth", CHAMBERS_OF_XERIC_CHEST, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Seth", CHAMBERS_OF_XERIC_CHEST, null, 0); screenshotPlugin.onChatMessage(chatMessageEvent); assertEquals(489, screenshotPlugin.getChambersOfXericNumber()); @@ -138,7 +138,7 @@ public class ScreenshotPluginTest @Test public void testTheatreOfBloodChest() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Magic fTail", THEATRE_OF_BLOOD_CHEST, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Magic fTail", THEATRE_OF_BLOOD_CHEST, null, 0); screenshotPlugin.onChatMessage(chatMessageEvent); assertEquals(73, screenshotPlugin.gettheatreOfBloodNumber()); @@ -147,7 +147,7 @@ public class ScreenshotPluginTest @Test public void testValuableDrop() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", VALUABLE_DROP, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", VALUABLE_DROP, null, 0); screenshotPlugin.onChatMessage(chatMessageEvent); verify(drawManager).requestNextFrameListener(Matchers.any(Consumer.class)); @@ -156,7 +156,7 @@ public class ScreenshotPluginTest @Test public void testUntradeableDrop() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", UNTRADEABLE_DROP, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", UNTRADEABLE_DROP, null, 0); screenshotPlugin.onChatMessage(chatMessageEvent); verify(drawManager).requestNextFrameListener(Matchers.any(Consumer.class)); diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java index c0a16d3df0..6bfa00f4f2 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java @@ -38,7 +38,6 @@ import net.runelite.api.Player; import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.GameTick; -import net.runelite.api.events.SetMessage; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.Notifier; @@ -255,7 +254,7 @@ public class SlayerPluginTest @Test public void testPartnerTask() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", TASK_NEW_FROM_PARTNER, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", TASK_NEW_FROM_PARTNER, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals("Dust Devils", slayerPlugin.getTaskName()); @@ -265,7 +264,7 @@ public class SlayerPluginTest @Test public void testCheckSlayerGem() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", TASK_CHECKSLAYERGEM, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", TASK_CHECKSLAYERGEM, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals("Suqahs", slayerPlugin.getTaskName()); assertEquals(211, slayerPlugin.getAmount()); @@ -274,7 +273,7 @@ public class SlayerPluginTest @Test public void testCheckSlayerGemWildernessTask() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", TASK_CHECKSLAYERGEM_WILDERNESS, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", TASK_CHECKSLAYERGEM_WILDERNESS, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals("Suqahs", slayerPlugin.getTaskName()); assertEquals(211, slayerPlugin.getAmount()); @@ -284,7 +283,7 @@ public class SlayerPluginTest @Test public void testCheckSlayerGemKonarTask() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", TASK_CHECKSLAYERGEM_KONAR, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", TASK_CHECKSLAYERGEM_KONAR, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals("Blue dragons", slayerPlugin.getTaskName()); @@ -322,7 +321,7 @@ public class SlayerPluginTest @Test public void testOneTask() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Perterter", TASK_ONE, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Perterter", TASK_ONE, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals(1, slayerPlugin.getStreak()); @@ -333,7 +332,7 @@ public class SlayerPluginTest @Test public void testNoPoints() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Perterter", TASK_COMPLETE_NO_POINTS, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Perterter", TASK_COMPLETE_NO_POINTS, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals(3, slayerPlugin.getStreak()); @@ -344,7 +343,7 @@ public class SlayerPluginTest @Test public void testPoints() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Perterter", TASK_POINTS, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Perterter", TASK_POINTS, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals(9, slayerPlugin.getStreak()); @@ -356,7 +355,7 @@ public class SlayerPluginTest @Test public void testLargeStreak() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Perterter", TASK_LARGE_STREAK, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Perterter", TASK_LARGE_STREAK, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals(2465, slayerPlugin.getStreak()); @@ -371,7 +370,7 @@ public class SlayerPluginTest slayerPlugin.setTaskName("cows"); slayerPlugin.setAmount(42); - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Perterter", TASK_COMPLETE, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Perterter", TASK_COMPLETE, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals("", slayerPlugin.getTaskName()); @@ -384,7 +383,7 @@ public class SlayerPluginTest slayerPlugin.setTaskName("cows"); slayerPlugin.setAmount(42); - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Perterter", TASK_CANCELED, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Perterter", TASK_CANCELED, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals("", slayerPlugin.getTaskName()); @@ -394,7 +393,7 @@ public class SlayerPluginTest @Test public void testSuperiorNotification() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "Superior", SUPERIOR_MESSAGE, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "Superior", SUPERIOR_MESSAGE, null, 0); when(slayerConfig.showSuperiorNotification()).thenReturn(true); slayerPlugin.onChatMessage(chatMessageEvent); @@ -408,7 +407,7 @@ public class SlayerPluginTest @Test public void testBraceletSlaughter() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_SLAUGHTER, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", BRACLET_SLAUGHTER, null, 0); slayerPlugin.setAmount(42); slayerPlugin.setSlaughterChargeCount(10); @@ -418,18 +417,18 @@ public class SlayerPluginTest assertEquals(9, slayerPlugin.getSlaughterChargeCount()); assertEquals(43, slayerPlugin.getAmount()); - chatMessageEvent = new ChatMessage(SERVER, "", CHAT_BRACELET_SLAUGHTER_CHARGE, null); + chatMessageEvent = new ChatMessage(null, SERVER, "", CHAT_BRACELET_SLAUGHTER_CHARGE, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals(12, slayerPlugin.getSlaughterChargeCount()); - chatMessageEvent = new ChatMessage(SERVER, "", CHAT_BRACELET_SLAUGHTER_CHARGE_ONE, null); + chatMessageEvent = new ChatMessage(null, SERVER, "", CHAT_BRACELET_SLAUGHTER_CHARGE_ONE, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals(1, slayerPlugin.getSlaughterChargeCount()); slayerPlugin.setSlaughterChargeCount(1); - chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_SLAUGHTER_V3, null); + chatMessageEvent = new ChatMessage(null, SERVER, "", BRACLET_SLAUGHTER_V3, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals(30, slayerPlugin.getSlaughterChargeCount()); @@ -442,7 +441,7 @@ public class SlayerPluginTest slayerPlugin.onGameTick(new GameTick()); assertEquals(30, slayerPlugin.getSlaughterChargeCount()); - chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_SLAUGHTER_V2, null); + chatMessageEvent = new ChatMessage(null, SERVER, "", BRACLET_SLAUGHTER_V2, null, 0); slayerPlugin.setAmount(42); slayerPlugin.setSlaughterChargeCount(2); @@ -456,7 +455,7 @@ public class SlayerPluginTest @Test public void testBraceletExpeditious() { - ChatMessage chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_EXPEDITIOUS, null); + ChatMessage chatMessageEvent = new ChatMessage(null, SERVER, "", BRACLET_EXPEDITIOUS, null, 0); slayerPlugin.setAmount(42); slayerPlugin.setExpeditiousChargeCount(10); @@ -466,18 +465,18 @@ public class SlayerPluginTest assertEquals(41, slayerPlugin.getAmount()); assertEquals(9, slayerPlugin.getExpeditiousChargeCount()); - chatMessageEvent = new ChatMessage(SERVER, "", CHAT_BRACELET_EXPEDITIOUS_CHARGE, null); + chatMessageEvent = new ChatMessage(null, SERVER, "", CHAT_BRACELET_EXPEDITIOUS_CHARGE, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals(12, slayerPlugin.getExpeditiousChargeCount()); - chatMessageEvent = new ChatMessage(SERVER, "", CHAT_BRACELET_EXPEDITIOUS_CHARGE_ONE, null); + chatMessageEvent = new ChatMessage(null, SERVER, "", CHAT_BRACELET_EXPEDITIOUS_CHARGE_ONE, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals(1, slayerPlugin.getExpeditiousChargeCount()); slayerPlugin.setExpeditiousChargeCount(1); - chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_EXPEDITIOUS_V3, null); + chatMessageEvent = new ChatMessage(null, SERVER, "", BRACLET_EXPEDITIOUS_V3, null, 0); slayerPlugin.onChatMessage(chatMessageEvent); assertEquals(30, slayerPlugin.getExpeditiousChargeCount()); @@ -490,7 +489,7 @@ public class SlayerPluginTest slayerPlugin.onGameTick(new GameTick()); assertEquals(30, slayerPlugin.getExpeditiousChargeCount()); - chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_EXPEDITIOUS_V2, null); + chatMessageEvent = new ChatMessage(null, SERVER, "", BRACLET_EXPEDITIOUS_V2, null, 0); slayerPlugin.setAmount(42); slayerPlugin.setExpeditiousChargeCount(2); @@ -511,7 +510,7 @@ public class SlayerPluginTest slayerPlugin.setTaskName("Suqahs"); slayerPlugin.setAmount(231); - ChatMessage chatMessage = new ChatMessage(SERVER, "", TASK_UPDATE_COMBAT_BRACELET, null); + ChatMessage chatMessage = new ChatMessage(null, SERVER, "", TASK_UPDATE_COMBAT_BRACELET, null, 0); slayerPlugin.onChatMessage(chatMessage); assertEquals("Suqahs", slayerPlugin.getTaskName()); @@ -531,7 +530,7 @@ public class SlayerPluginTest when(slayerConfig.taskCommand()).thenReturn(true); when(chatClient.getTask(anyString())).thenReturn(task); - SetMessage setMessage = new SetMessage(); + ChatMessage setMessage = new ChatMessage(); setMessage.setType(ChatMessageType.PUBLIC); setMessage.setName("Adam"); setMessage.setMessageNode(mock(MessageNode.class)); @@ -553,12 +552,12 @@ public class SlayerPluginTest when(slayerConfig.taskCommand()).thenReturn(true); when(chatClient.getTask(anyString())).thenReturn(task); - SetMessage setMessage = new SetMessage(); - setMessage.setType(ChatMessageType.PUBLIC); - setMessage.setName("Adam"); - setMessage.setMessageNode(mock(MessageNode.class)); + ChatMessage chatMessage = new ChatMessage(); + chatMessage.setType(ChatMessageType.PUBLIC); + chatMessage.setName("Adam"); + chatMessage.setMessageNode(mock(MessageNode.class)); - slayerPlugin.taskLookup(setMessage, "!task"); + slayerPlugin.taskLookup(chatMessage, "!task"); verify(chatMessageManager, never()).update(any(MessageNode.class)); } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index 0c99443490..b67eea80ab 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -27,6 +27,7 @@ package net.runelite.mixins; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; +import java.util.Map; import javax.annotation.Nullable; import javax.inject.Named; import net.runelite.api.ChatMessageType; @@ -51,6 +52,7 @@ import static net.runelite.api.MenuAction.PLAYER_SEVENTH_OPTION; import static net.runelite.api.MenuAction.PLAYER_SIXTH_OPTION; import static net.runelite.api.MenuAction.PLAYER_THIRD_OPTION; import net.runelite.api.MenuEntry; +import net.runelite.api.MessageNode; import net.runelite.api.NPC; import net.runelite.api.Node; import net.runelite.api.PacketBuffer; @@ -100,6 +102,7 @@ import net.runelite.api.mixins.Shadow; import net.runelite.api.vars.AccountType; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; +import net.runelite.rs.api.RSChatLineBuffer; import net.runelite.rs.api.RSClanMemberManager; import net.runelite.rs.api.RSClient; import net.runelite.rs.api.RSDeque; @@ -1236,7 +1239,7 @@ public abstract class RSClientMixin implements RSClient } @Inject - @MethodHook("addChatMessage") + @MethodHook(value = "addChatMessage", end = true) public static void onAddChatMessage(int type, String name, String message, String sender) { Logger logger = client.getLogger(); @@ -1245,8 +1248,13 @@ public abstract class RSClientMixin implements RSClient logger.debug("Chat message type {}: {}", ChatMessageType.of(type), message); } + // Get the message node which was added + Map chatLineMap = client.getChatLineMap(); + RSChatLineBuffer chatLineBuffer = chatLineMap.get(type); + MessageNode messageNode = chatLineBuffer.getLines()[0]; + final ChatMessageType chatMessageType = ChatMessageType.of(type); - final ChatMessage chatMessage = new ChatMessage(chatMessageType, name, message, sender); + final ChatMessage chatMessage = new ChatMessage(messageNode, chatMessageType, name, message, sender, messageNode.getTimestamp()); client.getCallbacks().post(chatMessage); } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageNodeMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageNodeMixin.java index c8ed6cc772..da716252e7 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageNodeMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSMessageNodeMixin.java @@ -25,7 +25,6 @@ package net.runelite.mixins; import net.runelite.api.ChatMessageType; -import net.runelite.api.events.SetMessage; import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.MethodHook; import net.runelite.api.mixins.Mixin; @@ -49,15 +48,6 @@ public abstract class RSMessageNodeMixin implements RSMessageNode RSMessageNodeMixin() { rl$timestamp = (int) (System.currentTimeMillis() / 1000L); - - final SetMessage setMessage = new SetMessage(); - setMessage.setMessageNode(this); - setMessage.setType(getType()); - setMessage.setName(getName()); - setMessage.setSender(getSender()); - setMessage.setValue(getValue()); - setMessage.setTimestamp(rl$timestamp); - client.getCallbacks().post(setMessage); } @Inject @@ -103,14 +93,5 @@ public abstract class RSMessageNodeMixin implements RSMessageNode // Clear the runelite formatted message then. runeLiteFormatMessage = null; rl$timestamp = (int) (System.currentTimeMillis() / 1000L); - - final SetMessage setMessage = new SetMessage(); - setMessage.setMessageNode(this); - setMessage.setType(ChatMessageType.of(type)); - setMessage.setName(name); - setMessage.setSender(sender); - setMessage.setValue(value); - setMessage.setTimestamp(rl$timestamp); - client.getCallbacks().post(setMessage); } }