diff --git a/binaries/data/mods/public/gui/session/messages.js b/binaries/data/mods/public/gui/session/messages.js index 17a8b8a52a..ab895deaec 100644 --- a/binaries/data/mods/public/gui/session/messages.js +++ b/binaries/data/mods/public/gui/session/messages.js @@ -28,24 +28,76 @@ var g_ChatTimers = []; * Handle all netmessage types that can occur. */ var g_NetMessageTypes = { - "netstatus": msg => handleNetStatusMessage(msg), - "netwarn": msg => addNetworkWarning(msg), - "players": msg => handlePlayerAssignmentsMessage(msg), - "paused": msg => setClientPauseState(msg.guid, msg.pause), - "rejoined": msg => addChatMessage({ "type": "rejoined", "guid": msg.guid }), - "kicked": msg => addChatMessage({ "type": "system", "text": sprintf(translate("%(username)s has been kicked"), { "username": msg.username }) }), - "banned": msg => addChatMessage({ "type": "system", "text": sprintf(translate("%(username)s has been banned"), { "username": msg.username }) }), - "chat": msg => addChatMessage({ "type": "message", "guid": msg.guid, "text": msg.text }), - "aichat": msg => addChatMessage({ "type": "message", "guid": msg.guid, "text": msg.text, "translate": true }), - "gamesetup": msg => "", // Needed for autostart - "start": msg => "" + "netstatus": msg => { + handleNetStatusMessage(msg); + }, + "netwarn": msg => { + addNetworkWarning(msg); + }, + "players": msg => { + handlePlayerAssignmentsMessage(msg); + }, + "paused": msg => { + setClientPauseState(msg.guid, msg.pause); + }, + "rejoined": msg => { + addChatMessage({ + "type": "rejoined", + "guid": msg.guid + }); + }, + "kicked": msg => { + addChatMessage({ + "type": "kicked", + "username": msg.username, + "banned": msg.banned + }); + }, + "chat": msg => { + addChatMessage({ + "type": "message", + "guid": msg.guid, + "text": msg.text + }); + }, + "aichat": msg => { + addChatMessage({ + "type": "message", + "guid": msg.guid, + "text": msg.text, + "translate": true + }); + }, + "gamesetup": msg => {}, // Needed for autostart + "start": msg => {} }; var g_FormatChatMessage = { "system": msg => msg.text, - "connect": msg => sprintf(translate("%(player)s is starting to rejoin the game."), { "player": colorizePlayernameByGUID(msg.guid) }), - "disconnect": msg => sprintf(translate("%(player)s has left the game."), { "player": colorizePlayernameByGUID(msg.guid) }), - "rejoined": msg => sprintf(translate("%(player)s has rejoined the game."), { "player": colorizePlayernameByGUID(msg.guid) }), + "connect": msg => + sprintf(translate("%(player)s is starting to rejoin the game."), { + "player": colorizePlayernameByGUID(msg.guid) + }), + "disconnect": msg => + sprintf(translate("%(player)s has left the game."), { + "player": colorizePlayernameByGUID(msg.guid) + }), + "rejoined": msg => + sprintf(translate("%(player)s has rejoined the game."), { + "player": colorizePlayernameByGUID(msg.guid) + }), + "kicked": msg => + sprintf( + msg.banned ? + translate("%(username)s has been banned") : + translate("%(username)s has been kicked"), + { + "username": colorizePlayernameHelper( + msg.username, + g_Players.findIndex(p => p.name == msg.username) + ) + } + ), "clientlist": msg => getUsernameList(), "message": msg => formatChatCommand(msg), "defeat": msg => formatDefeatMessage(msg), @@ -62,7 +114,9 @@ var g_StatusMessageTypes = { "connected": msg => translate("Connected to the server."), "disconnected": msg => translate("Connection to the server has been lost.") + "\n" + // Translation: States the reason why the client disconnected from the server. - sprintf(translate("Reason: %(reason)s."), { "reason": getDisconnectReason(msg.reason, true) }), + sprintf(translate("Reason: %(reason)s."), { + "reason": getDisconnectReason(msg.reason, true) + }), "waiting_for_players": msg => translate("Waiting for other players to connect..."), "join_syncing": msg => translate("Synchronising gameplay with other players..."), "active": msg => "" diff --git a/source/network/NetClient.cpp b/source/network/NetClient.cpp index 9d413801b8..fd9131ebea 100644 --- a/source/network/NetClient.cpp +++ b/source/network/NetClient.cpp @@ -711,7 +711,8 @@ bool CNetClient::OnKicked(void *context, CFsmEvent* event) client->GetScriptInterface().Eval("({})", &msg); client->GetScriptInterface().SetProperty(msg, "username", message->m_Name); - client->GetScriptInterface().SetProperty(msg, "type", message->m_Ban ? std::string("banned") : std::string("kicked")); + client->GetScriptInterface().SetProperty(msg, "type", CStr("kicked")); + client->GetScriptInterface().SetProperty(msg, "banned", message->m_Ban != 0); client->PushGuiMessage(msg); return true;