/// <summary> /// Accept the user's calling card and add the card to their inventory /// </summary> /// <param name="client"></param> /// <param name="transactionID"></param> /// <param name="folderID"></param> private void OnAcceptCallingCard(IClientAPI client, UUID transactionID, UUID folderID) { MainConsole.Instance.DebugFormat( "[Universe CALLING CARD MODULE]: User {0} ({1}) accepted tid {2}, folder {3}", client.AgentId, client.Name, transactionID, folderID); UUID destID; lock (m_pendingCallingcardRequests) { if (!m_pendingCallingcardRequests.TryGetValue(transactionID, out destID)) { MainConsole.Instance.WarnFormat( "[Universe CALLING CARD MODULE]: Got a AcceptCallingCard from {0} without an offer before.", client.Name); return; } // else found pending calling card request with that transaction. m_pendingCallingcardRequests.Remove(transactionID); } IClientAPI friendClient = LocateClientObject(destID); // inform sender of the card that destination accepted the offer if (friendClient != null) { friendClient.SendAcceptCallingCard(transactionID); } // put a calling card into the inventory of receiver CreateCallingCard(client, destID, folderID, friendClient.Name); }