private void IsFriendCallback(object Sender, IqResultEventArgs e) { object[] P = (object[])e.State; IsFriendCallback Callback = (IsFriendCallback)P[0]; object State = P[1]; string JID; bool Result; XmlElement E = e.FirstElement; if (e.Ok && E != null && E.LocalName == "isFriendResponse" && E.NamespaceURI == NamespaceProvisioning) { JID = XML.Attribute(E, "jid"); Result = XML.Attribute(E, "result", false); } else { Result = false; JID = null; } IsFriendEventArgs e2 = new IsFriendEventArgs(e, State, JID, Result); try { Callback(this, e2); } catch (Exception ex) { Log.Critical(ex); } }
private void CheckIfFriendCallback(object Sender, IsFriendEventArgs e2) { PresenceEventArgs e = (PresenceEventArgs)e2.State; if (e2.Ok && e2.Friend) { e.Accept(); RosterItem Item = this.client.GetRosterItem(e.FromBareJID); if (Item == null || Item.State == SubscriptionState.None || Item.State == SubscriptionState.From) { this.client.RequestPresenceSubscription(e.FromBareJID); } } else { e.Decline(); } }