new LeaderboardBase()
You have to extends and override onGetLuaScripts function .
Members
-
redis
-
getter for _redis.
-
lbname
-
getter for _lbname.
-
scripts
-
getter for _scripts. Generally only private functions would care of this.
Methods
-
<static> create(redis, lbname)
-
Create leaderboard. This is a static factory method.
Parameters:
Name Type Description redis
Object the instance of redis client
lbname
string leaderborad name. Would be used as a redis key.
Returns:
- leaderboard instance.
- Type
- Promise.<Object>
-
<protected> onGetLuaScripts()
-
You have to override this function. The default implementation will throw an exception. The return value should be like this.
{ "lb_score_rank": { script: lua script in UTF8 string. }, "lb_rank": { script: lua script in UTF8 string. }, "lb_pos": { script: lua script in UTF8 string. }, "lb_range": { script: lua script in UTF8 string. } }
See static fields, too.
LeaderboardBase.lua = { getScoreRank: "lb_score_rank", getRank: "lb_rank", getPosition: "lb_pos", getRange: "lb_range" };
Returns:
script object.
- Type
- Object
-
clear()
-
clear.
Returns:
- Type
- Promise
-
count()
-
count.
Returns:
- Type
- Promise
-
remove(name)
-
remove.
Parameters:
Name Type Description name
string player name
Returns:
- Type
- Promise
-
setScore(name, score)
-
setScore.
Parameters:
Name Type Description name
string player name
score
number score
Returns:
- Type
- Promise
-
modifyScore(name, delta)
-
modifyScore.
Parameters:
Name Type Description name
string player name
delta
number delta to modify the score
Returns:
- Type
- Promise
-
getScoreAndRank(score)
-
- getScoreAndRank will provide you name's score and rank.
- The result would be an object contains
{ name: string, score: number, rank number }
Parameters:
Name Type Description score
number player name
Returns:
return Promise({Object. see above description});
- Type
- Promise.<Object>
-
getNeighbors(name, count)
-
- getNeighbors will pick up players (name's rank - count <= players <= name's rank + count).
- The result would be an object contains
{ list: [ {name: string, score: number, rank: number}, {name: string, score: number, rank: number}, {name: string, score: number, rank: number}, ..., ] }
Parameters:
Name Type Description name
string player name
count
number player counts to be picked.
Returns:
return Promise({Object. see above description});
- Type
- Promise.<Object>
-
getList(number, size)
-
- You can get the list by using this function.
- The result would be an object contains
{ page: page number starting from 1. maxPage: max page number. total: total player numbers in the board. list: [ {name: string, score: number, rank: number}, {name: string, score: number, rank: number}, {name: string, score: number, rank: number}, ..., ] }
Parameters:
Name Type Description number
number page index starting from 1.
size
number page size. The numbers of players in a page.
Returns:
return Promise({Object. see above description});
- Type
- Promise.<Object>