Interface IEconomyPlayerBalancesApiClient
The PlayerBalances methods provide access to the current player's balances, and allow you to update them.
Namespace: Unity.Services.Economy
Syntax
public interface IEconomyPlayerBalancesApiClient
Methods
DecrementBalanceAsync(String, Int32, DecrementBalanceOptions)
Decrements the balance of the specified currency for the currently logged in user.
This method optionally takes a writeLock string. If provided, then an exception will be thrown unless the writeLock matches the writeLock received by a previous read, in order to provide optimistic concurrency. If not provided, the transaction will proceed regardless of any existing writeLock in the data. Throws a EconomyException with a reason code and explanation if the request is badly formed, unauthorized or uses a missing resource.
Declaration
Task<PlayerBalance> DecrementBalanceAsync(string currencyId, int amount, DecrementBalanceOptions options = null)
Parameters
Type | Name | Description |
---|---|---|
String | currencyId | The currency ID to update |
Int32 | amount | The amount to decrement by |
DecrementBalanceOptions | options | (Optional) Use to set a write lock for optimistic concurrency |
Returns
Type | Description |
---|---|
Task<PlayerBalance> | The updated player balance for the relevant currency. |
Exceptions
Type | Condition |
---|---|
EconomyException | Thrown if request is unsuccessful |
EconomyValidationException | Thrown if the service returned validation error. |
EconomyRateLimitedException | Thrown if the service returned rate limited error. |
GetBalancesAsync(GetBalancesOptions)
Gets the current balances for the currently signed in player. The balances are available on the returned object using the
Balances
GetNextAsync
HasNext
Declaration
Task<GetBalancesResult> GetBalancesAsync(GetBalancesOptions options = null)
Parameters
Type | Name | Description |
---|---|---|
GetBalancesOptions | options | (Optional) Use to set the number of items to fetch per call. |
Returns
Type | Description |
---|---|
Task<GetBalancesResult> | A GetBalancesResult object, with properties as specified above. |
Exceptions
Type | Condition |
---|---|
EconomyException | Thrown if request is unsuccessful |
EconomyRateLimitedException | Thrown if the service returned rate limited error. |
IncrementBalanceAsync(String, Int32, IncrementBalanceOptions)
Increments the balance of the specified currency for the currently logged in user.
This method optionally takes a writeLock string. If provided, then an exception will be thrown unless the writeLock matches the writeLock received by a previous read, in order to provide optomistic concurrency. If not provided, the transaction will proceed regardless of any existing writeLock in the data. Throws a EconomyException with a reason code and explanation if the request is badly formed, unauthorized or uses a missing resource.
Declaration
Task<PlayerBalance> IncrementBalanceAsync(string currencyId, int amount, IncrementBalanceOptions options = null)
Parameters
Type | Name | Description |
---|---|---|
String | currencyId | The currency ID to update |
Int32 | amount | The amount to increment by |
IncrementBalanceOptions | options | (Optional) Use to set a write lock for optimistic concurrency |
Returns
Type | Description |
---|---|
Task<PlayerBalance> | The updated player balance for the relevant currency. |
Exceptions
Type | Condition |
---|---|
EconomyException | Thrown if request is unsuccessful |
EconomyValidationException | Thrown if the service returned validation error. |
EconomyRateLimitedException | Thrown if the service returned rate limited error. |
SetBalanceAsync(String, Int64, SetBalanceOptions)
Sets the balance of the specified currency for the currently logged in user. Will throw an exception if the currency doesn't exist, or if the set amount will take the balance above/below the maximum/minimum allowed for that currency.
This method optionally takes a writeLock string. If provided, then an exception will be thrown unless the writeLock matches the writeLock received by a previous read, in order to provide optimistic concurrency. If not provided, the transaction will proceed regardless of any existing writeLock in the data. Throws a EconomyException with a reason code and explanation if the request is badly formed, unauthorized or uses a missing resource.
Declaration
Task<PlayerBalance> SetBalanceAsync(string currencyId, long balance, SetBalanceOptions options = null)
Parameters
Type | Name | Description |
---|---|---|
String | currencyId | The currency ID to update |
Int64 | balance | The amount to set the balance to |
SetBalanceOptions | options | (Optional) Used to set a write lock for optimistic concurrency |
Returns
Type | Description |
---|---|
Task<PlayerBalance> | The updated player balance for the relevant currency. |
Exceptions
Type | Condition |
---|---|
EconomyException | Thrown if request is unsuccessful |
EconomyValidationException | Thrown if the service returned validation error. |
EconomyRateLimitedException | Thrown if the service returned rate limited error. |
Events
BalanceUpdated
Fires when the SDK updates a player's balance. The called action will be passed the currency ID that was updated.
Note that this will NOT fire for balance changes from elsewhere not in this instance of the SDK, for example other server-side updates or updates from other devices.
Declaration
event Action<string> BalanceUpdated
Event Type
Type | Description |
---|---|
Action<String> |