Constructor
new LevelManager(client, options)
Parameters:
Name | Type | Description |
---|---|---|
client | Discord. | Discord client. |
options | LevelManagerOptions | Options for the level hub. |
Fires:
- LevelManager#event:managerReady - When the manager is ready.
Throws:
- - If some property of options is missing, or if options is undefined.
- Type
- MissingValue
- - If some property of options is not the correct type.
- Type
- InvalidValue
Extends
- EventEmitter
Members
achievement :Array.<Achievement>
- The default achievements when create a new guild entry
Type:
- Array.<Achievement>
autoSave :Boolean
- If the data will be saved automatically
Type:
- Boolean
client :Discord.Client
- Discord client
Type:
- Discord.
Client
eventsPath :String
- The path to the events folder
Type:
- String
guilds :GuildManager
- The guild manager
Type:
maxXpToLevelUp :Number
- The max xp to level up
Type:
- Number
mongoUri :String
- MongoDB Uri
Type:
- String
ranks :Array.<Rank>
- The default ranks when create a new guild entry
Type:
- Array.<Rank>
saveInterval :Number
- The interval to save the data in the database
Type:
- Number
xpFunction :function
- The function that calculate the xp to level up
Type:
- function
Methods
(async) addXp(member, xp, guildopt) → {Promise.<boolean>}
Add a certain amount of xp to a member of a guild, there is no need to create a user entry, it will be created automatically if it doesn't exist.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
member | Discord. | The member that will receive the xp. | |
xp | Number | The amount of xp that will be added. | |
guild | Discord. | <optional> | The guild where the member is. |
Fires:
- LevelManager#event:levelUp - When a member level up.
- LevelManager#event:xpAdded - When a member receives xp.
Throws:
- - If member or xp is missing.
- Type
- MissingValue
- - If member or xp is invalid.
- Type
- InvalidValue
Returns:
- Return true if the member has leveled up.
- Type:
- Promise.<boolean>
(async) degradeRank(member, guildIdopt) → {Promise.<UserCard>}
Manually rank down a member.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
member | Discord. | The member that will be ranked down. | ||
guildId | Discord. | <optional> | 'global' | The guild where the member is. |
Fires:
- LevelManager#event:rankDown - When a member rank down.
Throws:
- - If member is missing.
- Type
- MissingValue
- - If member or guildId is invalid.
- Type
- InvalidValue
Returns:
- Return the user data of the member.
- Type:
- Promise.<UserCard>
leaderboard(guildIdopt) → {Array.<UserCard>}
Create an array of the top members of the guild (you can put a limit).
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
guildId | LeaderboardOptions | <optional> | { guildId: 'global', limit: 10 } | The guild where the leaderboard will be. |
Throws:
- - If guildId is missing.
- Type
- MissingValue
- - If guildId or limit is invalid.
- Type
- InvalidValue
Returns:
- Return an array of the top members.
- Type:
- Array.<UserCard>
(async) levelUp(member, guildIdopt) → {Promise.<UserCard>}
Manually level up a member.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
member | Discord. | The member that will be leveled up. | ||
guildId | Discord. | <optional> | 'global' | The guild where the member is. |
Fires:
- LevelManager#event:levelUp - When a member level up.
Throws:
- - If member is missing.
- Type
- MissingValue
- - If member or guildId is invalid.
- Type
- InvalidValue
Returns:
- Return the user data of the member.
- Type:
- Promise.<UserCard>
(async) rankUp(member, guildIdopt) → {Promise.<UserCard>}
Manually rank up a member.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
member | Discord. | The member that will be ranked up. | ||
guildId | Discord. | <optional> | 'global' | The guild where the member is. |
Fires:
- LevelManager#event:rankUp - When a member rank up.
Throws:
- - If member is missing.
- Type
- MissingValue
- - If member or guildId is invalid.
- Type
- InvalidValue
Returns:
- Return the user data of the member.
- Type:
- Promise.<UserCard>
(async) removeLevel(member, guildIdopt) → {Promise.<UserCard>}
Decrease the level of a member.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
member | Discord. | The member that will be leveled down. | ||
guildId | Discord. | <optional> | 'global' | The guild where the member is. |
Fires:
- LevelManager#event:levelDown - When a member level down.
Throws:
- - If member is missing.
- Type
- MissingValue
- - If member or guildId is invalid.
- Type
- InvalidValue
Returns:
- Return the user data of the member.
- Type:
- Promise.<UserCard>
(async) saveData() → {Promise.<void>}
Save all of guilds data to your database.
Returns:
- Type:
- Promise.<void>
Events
levelDown
Emits when a member has leveled down.
PropertieslevelUp
Emits when a member has leveled up.
PropertiesName | Type | Description |
---|---|---|
user | UserCard | The user that leveled up. |
guildObject | Guild | The guildObject where the user is. |
managerReady
Emitted when the manager is ready.
PropertiesName | Type | Description |
---|---|---|
client | Discord. | Discord client. |
rankDown
Emits when a member has ranked down.
PropertiesName | Type | Description |
---|---|---|
user | UserCard | The user that ranked down. |
guild | Guild | The guild where the user is. |
rank | Rank | The new rank of the user. |
rankUp
Emits when a member has ranked up.
PropertiesName | Type | Description |
---|---|---|
user | UserCard | The user that ranked up. |
guild | Guild | The guild where the user is. |
rank | Rank | The new rank of the user. |
xpAdded
Emits when a member receives xp.
PropertiesName | Type | Description |
---|---|---|
user | UserCard | The user that received the xp. |
guildObject | Guild | The guildObject where the user is. |
xp | Number | The amount of xp that the user received. |