Ticket #3171: t3171_clear_muc_messages_v5_16789.patch

File t3171_clear_muc_messages_v5_16789.patch, 2.0 KB (added by elexis, 9 years ago)

Cleaned even more using lambda.

  • binaries/data/mods/public/gui/lobby/lobby.js

     
    1212var g_mapSizes = {};
    1313const g_mapTypesText = [translateWithContext("map", "Skirmish"), translateWithContext("map", "Random"), translate("Scenario")];
    1414const g_mapTypes = ["skirmish", "random", "scenario"];
    1515var g_userRating = ""; // Rating of user, defaults to Unrated
    1616var g_modPrefix = "@";
    17 var g_joined = false;
    1817// Block spammers for 30 seconds.
    1918var SPAM_BLOCK_LENGTH = 30;
    2019
    2120////////////////////////////////////////////////////////////////////////////////////////////////
    2221
     
    701700            case "join":
    702701                if (nick == g_Name)
    703702                {
    704703                    // We just joined, we need to get the full player list
    705704                    [playerList, presenceList, nickList, ratingList] = updatePlayerList();
    706                     // Don't display any joins until our join request bounces back
    707                     // Our join message should be the last one as we just got added to the stack
    708                     g_joined = true;
    709                     break;
    710705                }
    711                 else if (g_joined)
     706                else
    712707                {
    713708                    var [name, status, rating] = formatPlayerListEntry(nick, presence, "-");
    714709                    playerList.push(name);
    715710                    presenceList.push(status);
    716711                    nickList.push(nick);
  • source/lobby/XmppClient.cpp

     
    492492 *
    493493 * @return A JS array containing all known players and their presences
    494494 */
    495495void XmppClient::GUIGetPlayerList(ScriptInterface& scriptInterface, JS::MutableHandleValue ret)
    496496{
     497    // Clear outdated presence updates
     498    std::remove_if(m_GuiMessageQueue.begin(), m_GuiMessageQueue.end(),
     499        [](XmppClient::GUIMessage& message)
     500        {
     501            return message.type == L"muc";
     502        }
     503    );
     504
    497505    JSContext* cx = scriptInterface.GetContext();
    498506    JSAutoRequest rq(cx);
    499507   
    500508    scriptInterface.Eval("([])", ret);
    501509