org.starhope.appius.user
Interface AbstractUser

All Superinterfaces:
Comparable<Object>, DataRecordBacked<UserRecord>, HasVariables, RoomListener, Serializable
All Known Subinterfaces:
PetFromInventory, ScriptPuppet, TrainCar
All Known Implementing Classes:
AbstractNonPlayerCharacter, Ejecta, GeneralUser, Particle, Plebeian, Projectile, QuestItemExchanger, User

public interface AbstractUser
extends RoomListener, Comparable<Object>, HasVariables, Serializable, DataRecordBacked<UserRecord>

Any “thing” that exists in the game world and participates therein should implement the AbstractUser interface. This interface provides the “physicality” (no, that's not a word) necessary for something to participate in the game rooms.

AbstractUser, along with Room and AbstractZone, are the three main classes that are used to describe the game world. ( AppiusClaudiusCaecus and AppiusConfig are also major ingredients, however.)

Pretty much everything in the Appius game server hangs off of these few classes.

The AbstractUser provides a messaging interface for users (players), non-player characters, and also moving “animate” objects in the world, like Ejecta (which include projectiles, particles, and the like).

Users have delegate objects which describe them more fully, such as enrolments (subscriptions), inventory, buddy lists, and avatar classes.

A user always exists in exactly one room. To “hide” from the game, the user can enter into a Limbo room; typically, each zone has a room named “nowhere” for that purpose.

User Variables

A user also has a hash map of string-string user variables associated with it. These variables are used to portray important information to connected game clients, and often reflect server-side status information. For example, users who should not be interacted with as though they were normal characters/players in the game will have “noClick” set to “true”.

Certain user variables are defined for all Appian clients and implementations. In general, any user variables in ALL CAPS are reserved for implementors' own use, and the core server will not interfere with such variables.

Stock User Variables

Implementors are free to pick and choose from among the following for their own purposes, but the Appius server may set — and may expect to be honoured, to various degrees — the following variables.

d
The directional vector of the user.

This was used exclusively in Appius 1.0 for player placement and movement. Note that this has been superseded by the more flexible Commands.do_go(JSONObject, AbstractUser, Room) “go do” system.

The directional vector data is split on the character “~” into the following series of fields:

startX ~ startY ~ endX ~ endY ~ facing ~ startTime ~ travelRate

It must be noted that the avatar's position along the directional vector specified by “d” can be the start (not yet moving), the end (already completed), or any point along the line segment connecting them. It is the responsibility of the client application to properly compute the current position of the avatar.

noClick
If “true,” the avatar should not be treated as a normal player-character and subject to things like examination, conversation, buddy lists, and the like. This is, for example, used by projectiles.
ejecta
If “true,” this user is a transient effect (Ejecta) ejecta object, such as a projectile or a simple animated effect (puff of smoke, &c.) The client may wish to treat it differently in user interface operations.
notable
If “true,” the user is a notable character of some specific value in the game. The client may wish to provide some special presentation of the user, e.g. boldfacing their nametag.

Author:
brpocock@star-hope.org

Method Summary
 void acceptErrorReply(String command, String error, org.json.JSONObject result, Room userCurrentRoomInZone)
           
 void acceptMessage(String title, String label, String content)
          Accept an administrative/moderator message with the full range of options.
 void acceptPrivateMessage(AbstractUser speaker, String speech)
          Accept a private message from another user (a whisper)
 void acceptSuccessReply(String command, org.json.JSONObject jsonData, Room room)
           
 void addBuddy(AbstractUser buddy)
           
 void addGiftSubscription(int months, int days)
           
 void addItem(int itemID)
           
 void assertLocationUnlocked()
          WRITEME: Document this method brpocock@star-hope.org
 void assertStaffLevel(int staffLevelStaffMember)
          x-deprecated use Security.hasCapability(AbstractUser, SecurityCapability) for new code
 void attend(AbstractUser byLogin)
           
 void ban(AbstractUser u, String banReason)
           
 boolean canTalk()
           
 void doffClothes()
          WRITEME
 void doTransport()
          WRITEME
 int getAge()
           
 AgeBracket getAgeGroup()
          Get the user's age bracket.
 String getApprovedDateString()
           
 AvatarClass getAvatarClass()
           
 String getAvatarLabel()
          The avatar label is the text block that is displayed with the avatar for this object.
 Colour getBaseColor()
           
 Collection<String> getBuddyListNames()
          WRITEME: document this method (brpocock@star-hope.org, Jan 11, 2010)
 String getCurrentAction()
          Normally “Walk” but can be any action that the client recognizes for the avatar type
 String getDebugName()
          Get a version of the user's ID and name suitable for use in debugging dumps.
 String getDialect()
           
 String getDisplayName()
           
 Colour getExtraColor()
           
 String getFacing()
          Get the string identifying the direction which this object is facing.
 double getHeight()
          Height in pixels.
 Inventory getInventory()
          WRITEME: document this method (brpocock@star-hope.org, Feb 19, 2010)
 String getIPAddress()
           
 int getKickedByUserID()
           
 String getKickedMessage()
           
 String getKickedReasonCode()
           
 Timestamp getKickedUntil()
           
 long getLag()
           
 String getLanguage()
           
 Coord3D getLocation()
          Gets the current start coördinates
 Coord3D getLocationForUpdate()
          Gets the current coördinates.
 String getMail()
           
 BigDecimal getMoney(Currency currency)
          To be deprecated in favour of getWallet() ASAP!
 Date getNameApprovedAt()
           
 Date getNameRequestedAt()
           
 PathFinder getPathFinder()
          WRITEME: Document this method brpocock@star-hope.org
 org.json.JSONObject getPublicInfo()
           Returned packet contains:
 String getRegisteredDateString()
           
 String getResponsibleMail()
           
 int getRoomNumber()
          WRITEME: document this method (brpocock@star-hope.org, Jan 11, 2010)
 ServerThread getServerThread()
           
 double getSizeScalar()
          WRITEME: Document this method brpocock@star-hope.org
 int getStaffLevel()
          WRITEME: document this method (brpocock@star-hope.org, Jan 11, 2010)
 long getStartT()
           
 Coord3D getTarget()
          Gets the current target
 double getTravelRate()
          WRITEME: document this method (brpocock@star-hope.org, Nov 24, 2009)
 long getTravelStart()
          WRITEME: document this method (brpocock@star-hope.org, Nov 24, 2009)
 int getUserID()
          Get the user ID number for this user
 Iterator<UserListEntry> getUserListIterator(String moniker)
          WRITEME: Document this method brpocock@star-hope.org
 Map<String,String> getUserVariables()
          WRITEME: document this method (brpocock@star-hope.org, Jan 11, 2010)
 String getVariable(String string)
          WRITEME: document this method (brpocock@star-hope.org, Oct 31, 2009)
 Wallet getWallet()
           
 Coord3D handleWalkFail(Room room, Coord3D to)
          Called from pathfinders and rooms when the user tries to go someplace and can't get there, to allow them to plot a course around obstacles.
 boolean hasStaffLevel(int i)
           
 boolean hasVariable(String string)
          WRITEME: document this method (brpocock@star-hope.org, Nov 30, 2009)
 void ignore(AbstractUser byLogin)
           
 boolean isBanned()
           
 boolean isCanceled()
           
 boolean isKicked()
           
 boolean isNPC()
          WRITEME: document this method (brpocock@star-hope.org, Oct 31, 2009)
 boolean isOnline()
          WRITEME: document this method (brpocock@star-hope.org, Oct 31, 2009)
 boolean isPaidMember()
           
 void kick(AbstractUser u, String kickReason, int duration)
           
 void liftBan(AbstractUser authority)
          remove a ban placed upon this user
 boolean needsParent()
          Identify whether this account is owned by a child (per COPPA age-13 rules), and if it needs a parent account associated with it to give permission to play the game.
 void purchase(GenericItemReference itemToBuy)
          WRITEME: Document this method brpocock@star-hope.org
 void removeBuddy(AbstractUser byLogin)
           
 void reportedToModeratorBy(AbstractUser u)
           
 void reportedToModeratorBy(AbstractUser u, String reason)
           
 void sendBuddyList(String whichList, List<UserListEntry> users)
          Sends a buddy list JSON packet
 void sendEarnings(Room room, String string)
           
 void sendMigrate(AbstractZone refugeeZone)
          WRITEME: document this method (brpocock@star-hope.org, Jan 11, 2010)
 void sendOops()
          WRITEME
 void sendResponse(org.json.JSONObject result)
           
 void sendWardrobe()
          WRITEME
 void setAgeGroupToSystem()
          WRITEME
 void setBaseColor(Colour colour)
          WRITEME
 void setCanTalk(boolean b)
          WRITEME
 void setCurrentAction(String newAction)
          Normally “Walk” but can be any action that the client recognizes for the avatar type
 void setExtraColor(Colour colour)
           
 void setFacing(String newFacing)
           
 void setLastActive()
          WRITEME
 void setLocation(Coord3D coord3d)
           
 void setMail(String email)
          WRITEME
 void setParent(Parent newParent)
          If this is a child account (per COPPA), then associate a parent record with it.
 int setRoom(Room room)
           
 void setStartT(long when)
          set the time at which the player started moving — not necessarily the same as getTravelStart() because that value is updated over time, this value is when they actually started moving along the path altogether
 void setTarget(Coord3D coord3d)
          Sets the target coordinates for movement
 void setTravelRate(double rate)
          WRITEME: document this method (brpocock@star-hope.org, Nov 24, 2009)
 void setTravelStart(long l)
          WRITEME: Document this method brpocock@star-hope.org
 void setVariable(String varName, String varValue)
          WRITEME: document this method (brpocock@star-hope.org, Dec 1, 2009)
 void speak(Room room, String string)
           
 boolean takeAttack(DamageTypeRanks attack)
          WRITEME: Document this method brpocock@star-hope.org
 org.json.JSONObject toJSON()
           
 String toSFSXML()
           
 void unlockLocation()
          Unlock an user's location, locked by a call to getLocationForUpdate() (q.v.)
 void updateWallet()
          review your current wallet currency amounts, they may have changed
 
Methods inherited from interface org.starhope.appius.game.RoomListener
acceptGameAction, acceptGameStateChange, acceptObjectJoinRoom, acceptObjectPartRoom, acceptOutOfBandMessage, acceptPublicMessage, acceptPublicMessage, acceptUserAction, acceptUserVariableUpdate, getRoom, getZone
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface org.starhope.appius.types.HasVariables
deleteVariable, getVariables, resetVariables, setVariable, setVariables
 
Methods inherited from interface org.starhope.appius.user.DataRecordBacked
setBackingRecord
 

Method Detail

acceptErrorReply

void acceptErrorReply(String command,
                      String error,
                      org.json.JSONObject result,
                      Room userCurrentRoomInZone)
Parameters:
command - The command which produced the error
error - The error code
result - The additional JSON data describing the error
userCurrentRoomInZone - The room in which the user was standing when the error occurred.

acceptMessage

void acceptMessage(String title,
                   String label,
                   String content)
Accept an administrative/moderator message with the full range of options. If the user is currently online, forward this message to them.

Parameters:
content - The contents of the message
title - The title of the message
label - A label which nominally identifies the source of the message

acceptPrivateMessage

void acceptPrivateMessage(AbstractUser speaker,
                          String speech)
Accept a private message from another user (a whisper)

Parameters:
speaker - the person whispering
speech - what was whispered

acceptSuccessReply

void acceptSuccessReply(String command,
                        org.json.JSONObject jsonData,
                        Room room)
Parameters:
room - WRITEME
command - WRITEME
jsonData - WRITEME

addBuddy

void addBuddy(AbstractUser buddy)
Parameters:
buddy - WRITEME

addGiftSubscription

void addGiftSubscription(int months,
                         int days)
Parameters:
months - WRITEME
days - WRITEME

addItem

void addItem(int itemID)
Parameters:
itemID - the item ID to be instantiated and added

assertLocationUnlocked

void assertLocationUnlocked()
WRITEME: Document this method brpocock@star-hope.org


assertStaffLevel

void assertStaffLevel(int staffLevelStaffMember)
                      throws PrivilegeRequiredException
x-deprecated use Security.hasCapability(AbstractUser, SecurityCapability) for new code

Parameters:
staffLevelStaffMember - WRITEME
Throws:
PrivilegeRequiredException - WRITEME

attend

void attend(AbstractUser byLogin)
Parameters:
byLogin - WRITEME

ban

void ban(AbstractUser u,
         String banReason)
         throws PrivilegeRequiredException
Parameters:
u - WRITEME
banReason - WRITEME
Throws:
PrivilegeRequiredException - WRITEME

canTalk

boolean canTalk()
Returns:
WRITEME

doffClothes

void doffClothes()
WRITEME


doTransport

void doTransport()
WRITEME


getAge

int getAge()
Returns:
WRITEME

getAgeGroup

AgeBracket getAgeGroup()
Get the user's age bracket. Note that system (robot) users will have the special age bracket type AgeBracket.System.

Returns:
the age bracket of the user
See Also:
AgeBracket

getApprovedDateString

String getApprovedDateString()
Returns:
WRITEME

getAvatarClass

AvatarClass getAvatarClass()
Returns:
WRITEME

getAvatarLabel

String getAvatarLabel()
The avatar label is the text block that is displayed with the avatar for this object. It should be unique but isn't guaranteed to be distinct as user names are. (At any given moment, there can be only one object with a given avatar label in the room, but there can be only one user with a given name in the multiverse.) For users, this is the user name.

Returns:
The avatar label

getBaseColor

Colour getBaseColor()
Returns:
base colour

getBuddyListNames

Collection<String> getBuddyListNames()
WRITEME: document this method (brpocock@star-hope.org, Jan 11, 2010)

Returns:
WRITEME

getCurrentAction

String getCurrentAction()
Normally “Walk” but can be any action that the client recognizes for the avatar type

Returns:
the currentAction

getDebugName

String getDebugName()
Get a version of the user's ID and name suitable for use in debugging dumps. The format is: “LOGIN” #ID — e.g. "“Pil” #2". Note the use of typographically correct quotation marks

Returns:
A string with the user's login string and user ID number, formatted for debugging output

getDialect

String getDialect()
Returns:
WRITEME

getDisplayName

String getDisplayName()
Returns:
WRITEME

getExtraColor

Colour getExtraColor()
Returns:
extra colour

getFacing

String getFacing()
Get the string identifying the direction which this object is facing. One of: N,S,E,W,NE,NW,SW,SE.

Returns:
The facing direction of this object

getHeight

double getHeight()
Height in pixels. This is used as a scaling-factor for the avatar file; it's assumed that other dimensions of the avatar will be scaled proportionally

Returns:
height in pixels

getInventory

Inventory getInventory()
WRITEME: document this method (brpocock@star-hope.org, Feb 19, 2010)

Returns:
WRITEME

getIPAddress

String getIPAddress()
Returns:
WRITEME

getKickedByUserID

int getKickedByUserID()
Returns:
WRITEME

getKickedMessage

String getKickedMessage()
Returns:
WRITEME

getKickedReasonCode

String getKickedReasonCode()
Returns:
WRITEME

getKickedUntil

Timestamp getKickedUntil()
Returns:
WRITEME

getLag

long getLag()
Returns:
round-trip lag time

getLanguage

String getLanguage()
Returns:
WRITEME

getLocation

Coord3D getLocation()
Gets the current start coördinates

Returns:
the location at which the user was located at getTravelStart()

getLocationForUpdate

Coord3D getLocationForUpdate()
Gets the current coördinates. Performs an update to ensure that they are “current” as of “now.” Also blocks on this method if anyone else is trying to do the same thing. After calling this method, you must call unlockLocation() to free up other threads' ability to position this AbstractUser.

Returns:
the current coördinates of the user

getMail

String getMail()
Returns:
WRITEME

getMoney

BigDecimal getMoney(Currency currency)
To be deprecated in favour of getWallet() ASAP!

Parameters:
currency - units
Returns:
amount

getNameApprovedAt

Date getNameApprovedAt()
Returns:
WRITEME

getNameRequestedAt

Date getNameRequestedAt()
Returns:
WRITEME

getPathFinder

PathFinder getPathFinder()
WRITEME: Document this method brpocock@star-hope.org

Returns:
the pathfinder object

getPublicInfo

org.json.JSONObject getPublicInfo()

Returned packet contains:

Returns:
WRITEME

getRegisteredDateString

String getRegisteredDateString()
Returns:
WRITEME

getResponsibleMail

String getResponsibleMail()
Returns:
WRITEME

getRoomNumber

int getRoomNumber()
WRITEME: document this method (brpocock@star-hope.org, Jan 11, 2010)

Returns:
WRITEME

getServerThread

ServerThread getServerThread()
Returns:
WRITEME

getSizeScalar

double getSizeScalar()
WRITEME: Document this method brpocock@star-hope.org

Returns:
scalar

getStaffLevel

int getStaffLevel()
WRITEME: document this method (brpocock@star-hope.org, Jan 11, 2010)

Returns:
WRITEME

getStartT

long getStartT()
Returns:
the time at which the user intentionally moved last

getTarget

Coord3D getTarget()
Gets the current target

Returns:
the target toward which the user is moving

getTravelRate

double getTravelRate()
WRITEME: document this method (brpocock@star-hope.org, Nov 24, 2009)

Returns:
WRITEME

getTravelStart

long getTravelStart()
WRITEME: document this method (brpocock@star-hope.org, Nov 24, 2009)

Returns:
the time at which the object started moving (msec since epoch)

getUserID

int getUserID()
Get the user ID number for this user

Returns:
An unique user ID

getUserListIterator

Iterator<UserListEntry> getUserListIterator(String moniker)
WRITEME: Document this method brpocock@star-hope.org

Parameters:
moniker - WRITEME
Returns:
WRITEME

getUserVariables

Map<String,String> getUserVariables()
WRITEME: document this method (brpocock@star-hope.org, Jan 11, 2010)

Returns:
WRITEME

getVariable

String getVariable(String string)
WRITEME: document this method (brpocock@star-hope.org, Oct 31, 2009)

Specified by:
getVariable in interface HasVariables
Parameters:
string - WRITEME
Returns:
WRITEME

getWallet

Wallet getWallet()
Returns:
the user's wallet (currency inventory)

handleWalkFail

Coord3D handleWalkFail(Room room,
                       Coord3D to)
Called from pathfinders and rooms when the user tries to go someplace and can't get there, to allow them to plot a course around obstacles.

Parameters:
room - the destination room
to - the destination coördinates
Returns:
the coördinates in the current room toward which the user should proceed

hasStaffLevel

boolean hasStaffLevel(int i)
Parameters:
i - WRITEME
Returns:
WRITEME deprecated to be replaced with Security.hasCapability(AbstractUser,SecurityCapability)

hasVariable

boolean hasVariable(String string)
WRITEME: document this method (brpocock@star-hope.org, Nov 30, 2009)

Parameters:
string - WRITEME
Returns:
WRITEME

ignore

void ignore(AbstractUser byLogin)
Parameters:
byLogin - WRITEME

isBanned

boolean isBanned()
Returns:
WRITEME

isCanceled

boolean isCanceled()
Returns:
WRITEME

isKicked

boolean isKicked()
Returns:
WRITEME

isNPC

boolean isNPC()
WRITEME: document this method (brpocock@star-hope.org, Oct 31, 2009)

Returns:
WRITEME

isOnline

boolean isOnline()
WRITEME: document this method (brpocock@star-hope.org, Oct 31, 2009)

Returns:
WRITEME

isPaidMember

boolean isPaidMember()
Returns:
WRITEME

kick

void kick(AbstractUser u,
          String kickReason,
          int duration)
          throws PrivilegeRequiredException
Parameters:
u - WRITEME
kickReason - WRITEME
duration - WRITEME
Throws:
PrivilegeRequiredException - WRITEME

liftBan

void liftBan(AbstractUser authority)
             throws PrivilegeRequiredException
remove a ban placed upon this user

Parameters:
authority - WRITEME
Throws:
PrivilegeRequiredException - WRITEME

needsParent

boolean needsParent()
Identify whether this account is owned by a child (per COPPA age-13 rules), and if it needs a parent account associated with it to give permission to play the game.

Returns:
true, if this user needs a parent account associated with it per COPPA

purchase

void purchase(GenericItemReference itemToBuy)
              throws NonSufficientFundsException,
                     NotFoundException,
                     AlreadyExistsException
WRITEME: Document this method brpocock@star-hope.org

Parameters:
itemToBuy - WRITEME
Throws:
NonSufficientFundsException - WRITEME
NotFoundException - WRITEME
AlreadyExistsException - WRITEME

removeBuddy

void removeBuddy(AbstractUser byLogin)
Parameters:
byLogin - WRITEME

reportedToModeratorBy

void reportedToModeratorBy(AbstractUser u)
Parameters:
u - WRITEME

reportedToModeratorBy

void reportedToModeratorBy(AbstractUser u,
                           String reason)
Parameters:
u - WRITEME
reason - WRITEME

sendBuddyList

void sendBuddyList(String whichList,
                   List<UserListEntry> users)
Sends a buddy list JSON packet

Parameters:
whichList - the name of the user list. Special names are “$buddy” or “$ignore”
users - the users on that list

sendEarnings

void sendEarnings(Room room,
                  String string)
Parameters:
room - WRITEME
string - WRITEME

sendMigrate

void sendMigrate(AbstractZone refugeeZone)
                 throws UserDeadException
WRITEME: document this method (brpocock@star-hope.org, Jan 11, 2010)

Parameters:
refugeeZone - WRITEME
Throws:
UserDeadException - WRITEME

sendOops

void sendOops()
WRITEME


sendResponse

void sendResponse(org.json.JSONObject result)
Parameters:
result - WRITEME

sendWardrobe

void sendWardrobe()
WRITEME


setAgeGroupToSystem

void setAgeGroupToSystem()
WRITEME


setBaseColor

void setBaseColor(Colour colour)
WRITEME

Parameters:
colour - WRITEME

setCanTalk

void setCanTalk(boolean b)
WRITEME

Parameters:
b - WRITEME

setCurrentAction

void setCurrentAction(String newAction)
Normally “Walk” but can be any action that the client recognizes for the avatar type

Parameters:
newAction - the currentAction to set

setExtraColor

void setExtraColor(Colour colour)
Parameters:
colour - WRITEME

setFacing

void setFacing(String newFacing)
Parameters:
newFacing - the new facing direction

setLastActive

void setLastActive()
WRITEME


setLocation

void setLocation(Coord3D coord3d)
Parameters:
coord3d - new 3D coordinates

setMail

void setMail(String email)
             throws GameLogicException
WRITEME

Parameters:
email - WRITEME
Throws:
GameLogicException - WRITEME

setParent

void setParent(Parent newParent)
               throws GameLogicException,
                      ForbiddenUserException,
                      AlreadyExistsException
If this is a child account (per COPPA), then associate a parent record with it. Affiliated with Parent class and needsParent()

Parameters:
newParent - the new parent record to associate with this user
Throws:
ForbiddenUserException - if the parent is not allowed to register/associate new child accounts (usually due to having other child accounts which are banned)
GameLogicException - if this user account does not need a parent record (adult account or system/robot account)
AlreadyExistsException - if the parent account has the maximum allowed children.

setRoom

int setRoom(Room room)
Parameters:
room - WRITEME
Returns:
WRITEME

setStartT

void setStartT(long when)
set the time at which the player started moving — not necessarily the same as getTravelStart() because that value is updated over time, this value is when they actually started moving along the path altogether

Parameters:
when - the time at which the user last made a conscious change in their movement

setTarget

void setTarget(Coord3D coord3d)
Sets the target coordinates for movement

Parameters:
coord3d - the new target

setTravelRate

void setTravelRate(double rate)
WRITEME: document this method (brpocock@star-hope.org, Nov 24, 2009)

Parameters:
rate - WRITEME

setTravelStart

void setTravelStart(long l)
WRITEME: Document this method brpocock@star-hope.org

Parameters:
l - WRITEME

setVariable

void setVariable(String varName,
                 String varValue)
Description copied from interface: HasVariables
WRITEME: document this method (brpocock@star-hope.org, Dec 1, 2009)

Specified by:
setVariable in interface HasVariables
Parameters:
varName - the user variable name
varValue - the user variable value

speak

void speak(Room room,
           String string)
Parameters:
room - the room in which to speak. Typically, the user must be present in that room.
string - the speech (or emote)

takeAttack

boolean takeAttack(DamageTypeRanks attack)
WRITEME: Document this method brpocock@star-hope.org

Parameters:
attack - WRITEME
Returns:
WRITEME

toJSON

org.json.JSONObject toJSON()
Returns:
a JavaScript Object representing this user

toSFSXML

String toSFSXML()
Returns:
a string representing Smart Fox Server Pro style of XML data

unlockLocation

void unlockLocation()
Unlock an user's location, locked by a call to getLocationForUpdate() (q.v.)


updateWallet

void updateWallet()
review your current wallet currency amounts, they may have changed