Wynncraft resends entire chat history line by line in some quests
kristofbolyai opened this issue ยท 17 comments
@magicus is this something ChatManager should handle?
So you mean that the +1 soul points are sent twice? What's triggering the "resend"?
Hm. I'm not sure how or when this happens. Is this if you have NPC dialogue overlay active, and the multi-line extraction enabled?
Was that the last message before the NPC dialog started?
I try to locate the last sent message by searching for the message text, stripped of formatting, to be able to detect if new messages arrive. This is inherently a bit hit-and-miss, where I could potentially misidentify messages. I can't really figure out how that would happen in this case, though...
Thanks for the log. Seems there are many issues I need to address there. Tracking a quest with a book seems to trigger the same "screen" like behavior, for instance.
Where can I find such dialogues? Is it like the initial quest where the caravan driver starts shouting at me?
It seems to be caused by NPC dialogue without "shift to continue". At least all of those types of NPC dialogue is broken.
It seems to be caused by NPC dialogue without "shift to continue". At least all of those types of NPC dialogue is broken.
does this type of dialogue trigger the same chat replacement feature as normal dialogue? i recall it not doing so but maybe i'm wrong
I did not think it did. I just thought these NPCs called out like normal chat messages. I'll have to look into it.
I've done some tests and analysis on this.
-
Tracking a quest does not cause "screens". I was worried this might be the case since old-style Wynncraft tracking continuously printed the tracking info to the chat. But that was skipped when they introduced scoreboard tracking. So the quest book tracking was just a red herring.
-
I was worried this was a bug in the ChatManager. But it's not, at least not what I think right now. It's more of a problem due to Wynncraft, that maybe ChatManager can help handling. It seems that with some NPC dialogs, like the one in Time Valley in the log, the entire chat history is repeated by Wynncraft, but not as a screen -- this we could have detected and handled easily, but line by line. This causes the "+1 soul point" message to actually be sent multiple times.
If my analysis is correct, then we have a huge problem to solve this. We'd need to assume that at any point in time, a chat message is the start of a "non-screen" redraw of the entire chat history. So we need to check it with the history, and if it matches, we hide it -- or rather, keep it aside, until we can confirm that all the following chat messages are indeed a repetition. Otherwise it might be like, e.g. a user chatting the same message (like "lol") several times, and then we should send it on as a normal, new chat message.
I sincerely hope this is not the case, but it sure looks like it from the logs... :-(
I need to get a character to the time valley quest to verify this myself. I'm not sure I have a class that is allowed to do the quest, but has not done it. So that might be a problem. Have you seen this elsewhere? I'm pretty sure Kings Recruit does not do this, but I can check.
Good news and bad news.
The bad news is, my suspicion were correct. This is actually how brain-dead Wynncraft does things.
The good news is, this happens in King's Recruit as well, so it is easy to reproduce.