private void Tox_OnGroupNamelistChange(object sender, ToxEventArgs.GroupNamelistChangeEventArgs e) { MainWindow.Instance.UInvoke(() => { var group = FindGroup(e.GroupNumber); if (group == null) { Debugging.Write("We don't know about this group!"); return; } var peer = group.FindPeer(ProfileManager.Instance.Tox.GetGroupPeerPublicKey(e.GroupNumber, e.PeerNumber)); switch (e.Change) { case ToxChatChange.PeerAdd: { if (peer != null) { Debugging.Write("Received ToxChatChange.PeerAdd but that peer is already in our list, replacing..."); group.Peers.Remove(peer); } peer = new GroupPeer(e.PeerNumber, ProfileManager.Instance.Tox.GetGroupPeerPublicKey(e.GroupNumber, e.PeerNumber)); string name = ProfileManager.Instance.Tox.GetGroupMemberName(e.GroupNumber, e.PeerNumber); if (!string.IsNullOrEmpty(name)) { peer.Name = name; } group.Peers.Add(peer); break; } case ToxChatChange.PeerDel: { if (peer == null) { Debugging.Write("Received ToxChatChange.PeerDel but we don't know about this peer, ignoring..."); } else { group.Peers.Remove(peer); } break; } case ToxChatChange.PeerName: { if (peer == null) { Debugging.Write("Received ToxChatChange.PeerName but we don't know about this peer, HELP!"); } else { peer.Name = ProfileManager.Instance.Tox.GetGroupMemberName(e.GroupNumber, e.PeerNumber); } break; } } }); }
private void OnToxGroupNamelistChange(object sender, ToxEventArgs.GroupNamelistChangeEventArgs e) { Logger.Log(LogLevel.Warning, "ToxGroupNamelistChange not supported, ignored"); }