Ticket #3388: t3388_fix_initial_playerlist.diff
File t3388_fix_initial_playerlist.diff, 2.6 KB (added by , 9 years ago) |
---|
-
binaries/data/mods/public/gui/lobby/lobby.js
44 44 mapTypeFilter.list_data = [""].concat(g_mapTypes); 45 45 46 46 Engine.LobbySetPlayerPresence("available"); 47 47 Engine.SendGetGameList(); 48 48 Engine.SendGetBoardList(); 49 updatePlayerList();50 49 updateSubject(Engine.LobbyGetRoomSubject()); 51 50 52 51 resetFilters(); 53 52 } 54 53 … … 762 761 updateLeaderboard(); 763 762 updatePlayerList(); 764 763 // Disable the 'host' button 765 764 Engine.GetGUIObjectByName("hostButton").enabled = false; 766 765 } 767 else if (message.text == "connected") 768 { 769 Engine.GetGUIObjectByName("hostButton").enabled = true; 770 } 766 // else if (message.text == "connected") // currently we don't attempt to rejoin 771 767 break; 772 768 case "error": 773 769 addChatMessage({ "from": "system", "text": text, "color": "150 0 0" }); 774 770 break; 775 771 case "internal": 776 772 switch (message.text) 777 773 { 774 case "join-completed": 775 updatePlayerList(); 776 break; 778 777 case "gamelist updated": 779 778 updateGameList(); 780 779 break; 781 780 case "boardlist updated": 782 781 updateLeaderboard(); -
source/lobby/XmppClient.cpp
801 801 DbgXMPP(nick << " left the room"); 802 802 m_PlayerMap.erase(nick); 803 803 } 804 804 else 805 805 { 806 /* During the initialization process, we recieve join messages for everyone 807 * currently in the room. We don't want to display these, so we filter them 808 * out. We will always be the last to join during initialization. 809 */ 810 if (!m_initialLoadComplete) 806 // Send user join/leave events after we joined 807 if (m_initialLoadComplete) 811 808 { 812 if (m_mucRoom->nick().to_string() == nick) 813 m_initialLoadComplete = true; 809 if (m_PlayerMap.find(nick) == m_PlayerMap.end()) 810 CreateSimpleMessage("muc", nick, "join"); 811 else 812 CreateSimpleMessage("muc", nick, "presence"); 813 } 814 else if (m_mucRoom->nick().to_string() == nick) 815 { 816 m_initialLoadComplete = true; 817 CreateSimpleMessage("system", "join-completed", "internal"); 814 818 } 815 else if (m_PlayerMap.find(nick) == m_PlayerMap.end())816 CreateSimpleMessage("muc", nick, "join");817 else818 CreateSimpleMessage("muc", nick, "presence");819 819 820 820 DbgXMPP(nick << " is in the room, presence : " << (int)presenceType); 821 821 m_PlayerMap[nick].resize(3); 822 822 m_PlayerMap[nick][0] = presenceString; 823 823 m_PlayerMap[nick][2] = roleString;