Exemplo n.º 1
0
        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;
                    }
                }
            });
        }
Exemplo n.º 2
0
 private void OnToxGroupNamelistChange(object sender, ToxEventArgs.GroupNamelistChangeEventArgs e)
 {
     Logger.Log(LogLevel.Warning, "ToxGroupNamelistChange not supported, ignored");
 }