vp_login

From Virtual Paradise Wiki
Jump to navigation Jump to search
Method call snippet vp_login(instance, username, password, botname);
Login to the universe server; using the credentials of an existing user account.

Parameters

These are the parameters that this method requires:

Parameter Usage
VPInstance
instance
Pointer to the instance this method call is intended for
string
username
Use credentials of the account with this name
string
password
Password associated with the account
string
botname
Name that the bot will appear with in a world. There are no restrictions on what characters can be used.

Returns

This method returns a return code integer, which indicates whether the call was successful or errored for any reason:

Return code Cause
VP_RC_SUCCESS Successful call (for methods that have a registered callback, it only means the request has been sent)
VP_RC_STRING_TOO_LONG If any of the given string parameters exceed 255 bytes in length (when using UTF-8 encoded characters they can each be multiple bytes long)
VP_RC_INVALID_LOGIN The login credentials are incorrect
VP_RC_TIMEOUT Timeout
VP_RC_NOT_IN_UNIVERSE Universe request made while not connected to a universe server

The following attributes will be returned in VP_CALLBACK_LOGIN if the operation was successful:

Attribute Usage Also returned for
VP_MY_USER_ID User id of account used to log in

Behavior

  • If a VP_CALLBACK_LOGIN callback is set this function will return immediately and return the result using the callback, otherwise it will call vp_wait() in a loop until done.
  • When successfully logged in, bots will have square brackets around their name. For example, providing "Samantha" as the botname parameter will identify the bot as "[Samantha]".
  • The user ID of the account used to log in will be exposed to other users.
  • Bot names that contain UTF-8 encoded characters (e.g. "\xE2\x98\xAF" is the "Yin and Yang" symbol ☯) will display correctly in a browser.

Caveats

  • To log out from a universe, vp_destroy() must be called which will also disconnect the bot from the world.
  • If calling this while already logged in and entered into a world, then it will not update the identity of the bot inside the world (nor will it disconnect). Need to call vp_enter() for the identity in world to update.

Examples

int rc;

rc = vp_login(sdk, "myname", "mypassword", "botname");
if (rc)
  printf("Couldn't login (reason %d)\n", rc);

See also