Opened 5 years ago

Closed 3 years ago

Last modified 9 months ago

#3306 closed enhancement (fixed)

Display chat scrollback again when returning from gamesetup

Reported by: elexis Owned by: elexis
Priority: Nice to Have Milestone: Alpha 23
Component: Multiplayer lobby Keywords: beta
Cc: Patch: Phab:D819

Description (last modified by elexis)

Currently chat messages are only displayed in the OnTick() function in lobby.js, i.e. only once when they were received in javascript. However if you get into the gamesetup and return immediately, the chat will be blank.

This means you will miss messages (imagine someone sending you one while you were just clicking on the host game button and returned, because you noticed that someone wrote your nickname).

The XmppClient.cpp needs to save the last N messages, since saving values in JS doesn't work (After returning from the gamesetup, the values are overwritten again, see #3287).

There is a setting lobby.history that already remembers the number of chat messages to scroll back.

A script function must be added to JSInterface_Lobby.h, so that one can get the scrollback in the init() function in lobby.js.

Change History (8)

comment:1 by elexis, 4 years ago

Keywords: simple added

comment:2 by Imarok, 4 years ago

Description: modified (diff)

comment:3 by Imarok, 4 years ago

refs #3832

comment:4 by scythetwirler, 4 years ago

Keywords: beta added

comment:5 by fpre_O_O_O_O_O_O, 3 years ago

maybe all chat since in lobby

comment:6 by elexis, 3 years ago

Description: modified (diff)
Keywords: simple removed
Milestone: BacklogAlpha 23
Patch: Phab:D819

comment:7 by elexis, 3 years ago

Owner: set to elexis
Resolution: fixed
Status: newclosed

In 20070:

Display previously received lobby chat messages when returning from the gamesetup.

Differential Revision:
Fixes #3306
Patch By: fpre / ffffffff

comment:8 by elexis, 9 months ago

In 23172:

Rewrite lobby page to use class semantics, add more gamedetails labels, improve performance using batch processing and caching and gain possibility for game creation/player-join/leave events, refs #5387.

Game selection details features:

  • Display victory conditions following their sending but missing display following rP14098, refs rP19642.
  • Display the host of the match and the game name in the selected game details following rP19703, refs D1666.
  • Display mods if the mods differ (without having to attempt to join the game prior) following rP21301.

Performance features:

  • Implement batch message processing in the XmppClient to rebuild GUI objects only once when receiving backlog or returning from a match.
  • Implement Game class to cache gamelist, filter and sorting values, as they rarely change but are accessed often.
  • Cache sprintf objects.

Security fixes:

  • Add escapeText in lobby/ to avoid players breaking the lobby for every participant, supersedes D720, comments by bb.
  • Do not hide broadcasted unrecognized chat commands that mods used as leaking private channels, fixes #5615.

Defect fixes:

  • Fix XmppClient.cpp storing unused historic message types resulting in memory waste and unintentional replay of for instance disconnect/announcements messages following both rP20070/D819 and rP22855/D2265, refs #3306.
  • Fix XmppClient.cpp victoryCondition -> victoryConditions gamesetup.js change from rP21474/D1240.
  • Fix leaderboard/profile page cancel hotkey closing the lobby dialog as well and removes cancel hotkey note from lobby_panels.xml from rP20886/D817 since the described issue was fixed by rP22200/D1701.
  • Fix lobby playing menu sound in a running game after having closed the lobby dialog following introduction in rP20886/D817.
  • Fix GUI on nick change by updating g_Username.
  • Update profile panel only with data matching the player requested.

Hack erasure:

  • Object semantics make it cheap to add state and cache values, storing literals in properties while removing globals, adding events while decoupling components and gaining moddability.
  • Erase comments and translation comments stating that this would be IRC!!, supersedes D1136.
  • Introduce Status chat message type to supersede "/special" chat command + "isSpecial" property from rP14098 (formerly g_specialKey rP17360) deluxe hack.
  • Introduce System chat message type to supersede system errors disguising as chat from a mock user called "system".

Code cleanups:

  • Move code from XML to JS.
  • Move size values from JS to XML, especially following rP20886/D817 and rP21003/D1051.
  • Rename "user" to "player".
  • Fix lobby/ eslint warnings, refs D2261.
  • Remove message.nick emptiness check from rP20064/D835, since XEP-0045 dictates that it is non-empty.
  • Add translated string for deleted subjects.
  • Add TODOs for some evident COList issues, refs #5638.

Differential Revision:

Note: See TracTickets for help on using tickets.