Ticket #3956: t3956_chataddressee_rough_sketch_v1.patch
File t3956_chataddressee_rough_sketch_v1.patch, 1.6 KB (added by , 8 years ago) |
---|
-
binaries/data/mods/public/gui/session/messages.js
function handlePlayerAssignmentsMessage( 497 497 } 498 498 } 499 499 500 500 function updateChatAddressees() 501 501 { 502 // Remember previously selected item 503 let chatAddressee = Engine.GetGUIObjectByName("chatAddressee"); 504 let selectedName = chatAddressee.list_data[chatAddressee.selected] || ""; 505 selectedName = selectedName.substr(0, 4) == "/msg" && selected.substr(5); 506 502 507 let addressees = [ 503 508 { 504 509 "label": translateWithContext("chat addressee", "Everyone"), 505 510 "cmd": "" 506 511 } … … function updateChatAddressees() 541 546 "cmd": "/msg " + g_PlayerAssignments[guid].name, 542 547 "label": colorBox + g_PlayerAssignments[guid].name 543 548 }); 544 549 } 545 550 546 let chatAddressee = Engine.GetGUIObjectByName("chatAddressee"); 551 if (selectedName && Object.keys(g_PlayerAssignments).every(guid => g_PlayerAssignments[guid].name != selectedName) 552 addressees.push({ 553 "cmd": "/msg " + selectedName, 554 "label": sprintf(translate("\\[OFFLINE] %(player)s"), { "player": selectedName }) 555 }); 556 557 let oldChatAddressee = chatAddressee.list_data[chatAddressee.selected]; 547 558 chatAddressee.list = addressees.map(adressee => adressee.label); 548 559 chatAddressee.list_data = addressees.map(adressee => adressee.cmd); 549 chatAddressee.selected = 0;560 chatAddressee.selected = selectedIndex || Math.max(0, chatAddressee.list_data.indexOf(oldChatAddressee)); 550 561 } 551 562 552 563 /** 553 564 * Send text as chat. Don't look for commands. 554 565 *