Ticket #3865: PM.patch

File PM.patch, 2.5 KB (added by scythetwirler, 8 years ago)
  • binaries/data/mods/public/gui/lobby/lobby.js

     
    6464const g_SystemColor = "150 0 0";
    6565
    6666/**
     67 * Color for private messages in the chat.
     68 */
     69const g_PrivateMessageColor = "0 150 0";
     70
     71/**
    6772 * Used for highlighting the sender of chat messages.
    6873 */
    6974const g_SenderFont = "sans-bold-13";
     
    160165        "private-message": msg => {
    161166            if (Engine.LobbyGetPlayerRole(msg.from) == "moderator")
    162167                addChatMessage({
    163                     "from": "(Private) " + escapeText(msg.from), // TODO: placeholder
     168                    "from": escapeText(msg.from),
    164169                    "text": escapeText(msg.text.trim()), // some XMPP clients send trailing whitespace
    165                     "datetime": msg.datetime
     170                    "datetime": msg.datetime,
     171                    "private" : true
    166172                });
    167173        }
    168174    },
     
    875881    else
    876882    {
    877883        // Translation: IRC message prefix.
    878         senderString = '[font="' + g_SenderFont + '"]' + sprintf(translate("<%(sender)s>"), { "sender": coloredFrom }) + '[/font]';
     884        if (msg.private)
     885            senderString = sprintf(translateWithContext("lobby private message", "(%(whisper)s) <%(sender)s>"), {
     886                "whisper": '[color="' + g_PrivateMessageColor + '"]' + translate("Received Whisper")  + '[/color]',
     887                "sender": coloredFrom
     888            });
     889        else
     890            senderString = sprintf(translate("<%(sender)s>"), { "sender": coloredFrom });
     891        senderString = '[font="' + g_SenderFont + '"]' + senderString + '[/font]';
    879892        // Translation: IRC message.
    880893        formattedMessage = sprintf(translate("%(sender)s %(message)s"), { "sender": senderString, "message": msg.text });
    881894    }
  • source/lobby/XmppClient.cpp

     
    646646/**
    647647 * Handle a room message.
    648648 */
    649 void XmppClient::handleMUCMessage(glooxwrapper::MUCRoom*, const glooxwrapper::Message& msg, bool)
     649void XmppClient::handleMUCMessage(glooxwrapper::MUCRoom*, const glooxwrapper::Message& msg, bool priv)
    650650{
    651651    DbgXMPP(msg.from().resource() << " said " << msg.body());
    652652
    653653    GUIMessage message;
    654654    message.type = L"chat";
    655     message.level = L"room-message";
     655    message.level = priv ? L"private-message" : L"room-message";
    656656    message.from = wstring_from_utf8(msg.from().resource().to_string());
    657657    message.text = wstring_from_utf8(msg.body().to_string());
    658658    if (msg.when())