public void SetOrder(byte[] data) { DisplayOrderData newData = new DisplayOrderData(data); memberIDToIndex.Clear(); for (int i = 0; i < newData.keys.Length; i++) { memberIDToIndex.Add(newData.keys[i], newData.values[i]); } }
public void UpdateWithLobbyMembers(long lobbyId) { var members = lobbyManager.GetMemberUsers(lobbyId); long counter = 1; foreach (var item in members) { long index; if (memberIDToIndex.TryGetValue(item.Id, out index)) { UpdateDisplayForId(item, index); counter++; } else { UpdateDisplayForId(item, counter++); if (GameManager.INSTANCE.IsTheHost()) { memberIDToIndex.Add(item.Id, counter - 1); } } } for (int i = (int)counter; i < PlayerPortraitsCanvas.INSTANCE.pairedPortriats.Count; i++) { UpdateDisplayForId(new Discord.User(), i); } if (GameManager.INSTANCE.IsTheHost() && DiscordLobbyService.INSTANCE.Online()) { List <long> keys = new List <long>(); List <long> values = new List <long>(); foreach (var item in memberIDToIndex) { keys.Add(item.Key); values.Add(item.Value); } DisplayOrderData data = new DisplayOrderData(keys.ToArray(), values.ToArray()); DiscordNetworkLayerService.INSTANCE.SendMessegeToAllOthers(NetworkChannel.PORTRAITS_SYNC, data.ToBytes()); } }