unb-api
v1.4.0
Published
API wrapper for UnbelievaBoat Discord Bot API
Downloads
1,026
Maintainers
Readme
UnbelievaBoat API
Installation
npm install unb-api
Documentation
Full API documentation is located at https://unbelievaboat.com/api/docs
Example
const { Client } = require('unb-api');
const client = new Client('TOKEN'); // Get your API token from https://unbelievaboat.com/api/docs
const guildID = '305129477627969547';
const userID = '261674810914897931';
client.getUserBalance(guildID, userID).then(user => console.log(user));
client.getGuildLeaderboard(guildID, { sort: 'cash' }).then(lb => console.log(lb));
Constructor
new Client(token, [options])
Options
| Type | Property | Description |
|--------|---------------|--------------------------------------------------------------------------------|
| String | baseURL?
| API hostname. Defaults to https://unbelievaboat.com/api |
| Number | version?
| API version. Defaults to the latest version |
| Number | maxRetries?
| Maximum number of times to retry a request if it's rate-limited. Defaults to 3 |
Methods
Economy
getUserBalance(guildId: string, userId: string)
Returns: Promise<User>
setUserBalance(guildId: string, userId: string, balance: Balance, reason?: string)
Returns: Promise<User>
editUserBalance(guildId: string, userId: string, balance: Balance, reason?: string)
Returns: Promise<User>
getGuildLeaderboard(guildId: string, query?: ListOptions)
Returns: Promise<User[]> | Promise<{ users: User[], totalPages: number }>
[!NOTE]
If the query forgetGuildLeaderboard
includes a page parameter, the response will be an object containing both users and totalPages.
Otherwise, it will return a simple array of User[].
Generic
getGuild(guildId: string)
Returns: Promise<Guild>
getApplicationPermission(guildId: string)
Returns: Promise<Permission>
Items
getItems(guildId: string, options?: ListOptions)
Returns: Promise<{ page: number, totalPages: number, items: StoreItem[] }>
getItem(guildId: string, itemId: string)
Returns: Promise<StoreItem>
createItem(guildId: string)
Returns: Promise<StoreItem>
editItem(guildId: string, itemId: string, data: StoreItem | object, options?: { cascadeUpdate?: boolean })
Returns: Promise<StoreItem>
deleteItem(guildId: string, itemId: string)
Returns: Promise<any>
getInventoryItems(guildId: string, userId: string, options?: ListOptions)
Returns: Promise<{ page: number, totalPages: number, items: InventoryItem[] }>
getInventoryItem(guildId: string, userId: string, itemId: string)
Returns: Promise<InventoryItem>
addInventoryItem(guildId: string, userId: string, itemId: string, quantity?: string | number, options?: { inventoryUserId?: string })
Returns: Promise<InventoryItem>
removeInventoryItem(guildId: string, userId: string, itemId: string, quantity?: string | number)
Returns: Promise<any>
ListOptions Parameters
| Type | Property |
|----------|-----------|
| String[] | sort?
|
| Number | limit?
|
| Number | offset?
|
| Number | page?
|
Structures
User
| Type | Property | Description |
|--------|-----------|--------------------------------------------------------------------------------------------------|
| Number | rank?
| Leaderboard rank of the user. This is only present on getUserBalance() and getGuildLeaderboard() |
| String | user_id
| User ID of the discord user. |
| Number | cash
| User's cash balance. |
| Number | bank
| User's bank balance. |
| Number | total
| User's total balance. |
Guild
| Type | Property | Description |
|--------|------------------|--------------------------|
| String | id
| Guild ID. |
| String | name
| Guild name. |
| Number | icon
| Icon hash. |
| Number | iconURL
| Icon url. |
| String | ownerID
| User ID of the owner. |
| Number | memberCount
| Total number of members. |
| String | currencySymbol
| Currency symbol |
StoreItem
| Type | Property | Description |
|---------|------------------|---------------------------------------------------------------------------|
| String | id
| Unique ID of the item in the store. |
| String | name
| Name of the item. |
| String | description?
| Description of the item. |
| Number | price
| Price of the item. |
| Number | stockRemaining
| Amount of stock remaining for the item. |
| Boolean | unlimitedStock
| Whether the item has unlimited stock. |
| Boolean | isInventory
| Indicates if the item will be added to a user’s inventory when purchased. |
| Date | expiresAt?
| Expiration date of the item. |
| Boolean | isUsable
| Whether the item can be used by the user. |
| Boolean | isSellable
| Whether the item can be sold by the user. |
| Array | requirements
| Requirements needed to purchase the item. |
| Array | actions
| Actions performed when the item is used. |
| String | emojiUnicode?
| Unicode emoji associated with the item. |
| String | emojiId?
| Custom emoji ID associated with the item. |
InventoryItem
| Type | Property | Description |
|-------------------------------------------------|-----------------|-----------------------------------------------|
| String | itemId
| Unique ID of the item in the inventory. |
| Number | quantity
| Quantity of the item in the user's inventory. |
| String | name
| Name of the item. |
| String | description?
| Description of the item. |
| Boolean | isUsable
| Whether the item can be used by the user. |
| Boolean | isSellable
| Whether the item can be sold by the user. |
| StoreItemRequirement[] | requirements
| Requirements needed to use the item. |
| StoreItemAction[] | actions
| Actions performed when the item is used. |
| String | emojiUnicode?
| Unicode emoji associated with the item. |
| String | emojiId?
| Custom emoji ID associated with the item. |
StoreItemRequirement
| Type | Property | Description |
|-------------------------------|-------------|---------------------------------------------------------------------------------------|
| StoreItemRequirementType | type
| Type of requirement. Could be one of ROLE
, TOTAL_BALANCE
, or ITEM
. |
| StoreItemRequirementMatchType | matchType
| Specifies how the requirement must be met. Can be EVERY
, AT_LEAST_ONE
, or NONE
. |
| String[] | ids
| An array of IDs that correspond to roles, items, or other required entities. |
| Number | balance
| Minimum balance required (applicable if type
is TOTAL_BALANCE
). |
StoreItemAction
| Type | Property | Description |
|---------------------|------------|------------------------------------------------------------------------------------------------------------------------------------------|
| StoreItemActionType | type
| Type of action. Could be one of RESPOND
, ADD_ROLES
, REMOVE_ROLES
, ADD_BALANCE
, REMOVE_BALANCE
, ADD_ITEMS
, or REMOVE_ITEMS
. |
| String[] | ids
| An array of IDs corresponding to roles, items, or other entities involved in the action. |
| Object | message?
| Discord message object, only applicable if type
is RESPOND
. |
| Number | balance?
| Balance amount to be added or removed (applicable if type
is ADD_BALANCE
or REMOVE_BALANCE
). |
Permission
| Type | Property | Description |
|--------|----------|------------------------------------------------------------|
| Number | allow
| The allowed bitwise permissions number. |
| String | json
| JSON representation of the allowed and denied permissions. |