Buddy behavior
Follow this workflow to handle buddy request.
Read time 1 minuteLast updated 20 hours ago
A user can add a buddy or delete a buddy. The following list details scenarios for when User A adds User B as a buddy:
- If User B is offline, then User A sees User B as unavailable.
-
When User B comes online, the following actions occur:
- If User B has an accept rule for User A, then User A sees User B's online status.
- If User B has a block rule for User A, then User A sees User B as unavailable.
- If User B does not have a block rule or an accept rule, and vx_req_account_anonymous_login.buddy_managment_mode is set to mode_auto_accept, then User A sees User B as available.
- If User B does not have a block rule or an accept rule, and vx_req_account_anonymous_login.buddy_managment_mode is set to mode_block, then User A sees User B as available.
- If User B does not have a block rule or an accept rule, and vx_request_account_anonymous_login.buddy_managment_mode is set to mode_application, then User B receives a vx_evt_subscription message. The game can then either ignore the subscription or issue a vx_req_account_send_subscription_reply_t message, and can either block or accept the subscription.
void HandleEvtSubscription(vx_evt_subscription *evt){ // Only approve buddies that have "wizard" in the name. if (strstr(evt->buddy_uri, "wizard")) { vx_req_account_send_subscription_reply_t *req; vx_req_account_send_subscription_reply_create(&req); req->account_handle = vx_strdup(evt->account_handle); req->buddy_uri = vx_strdup(evt->buddy_uri); req->rule_type = rule_allow; vx_issue_request3(&req->base, &request_count); }}