Colorize playernames in the kick/ban chat notification, refs #3241.

This was SVN commit r18391.
This commit is contained in:
elexis 2016-06-16 17:13:02 +00:00
parent 450973a624
commit a874b3c1c3
2 changed files with 71 additions and 16 deletions

View File

@ -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 => ""

View File

@ -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;