@@ -32,7 +32,7 @@ RegisterNetEvent("yourFramework:onPlayerLoad", function()
3232end )
3333
3434--- refresh job blips on playerData job change
35- AddEventHandler (' yourFramework:: onJobChange' , function ()
35+ AddEventHandler (' yourFramework:onJobChange' , function ()
3636 RefreshJobBlips ()
3737end )
3838
@@ -75,6 +75,7 @@ FRAMEWORK = exports['your_framework']['export_name']()
7575
7676--- @class Player
7777--- @field source number id of player
78+ --- @field playerName string character name
7879--- @field identifier string unique identifier of player to using it in db
7980--- @field job PlayerJob
8081--- @field addMoney fun ( amount : number ) adding money after job complete
@@ -103,6 +104,7 @@ function GetPlayerFromId(playerId)
103104
104105 frameworkPlayer .addMoney (method , amount )
105106 end ,
107+ playerName = frameworkPlayer .firstname .. ' ' .. frameworkPlayer .lastname
106108 }
107109
108110 return player
@@ -115,6 +117,32 @@ function CanPlayerWork(player)
115117 return player .job .name == Config .JobName
116118end
117119
120+ --- @class RankingPlayer
121+ --- @field name string name of player
122+ --- @field xp number
123+ --- @field level number
124+
125+ --- getting top5 players
126+ --- @return RankingPlayer[] --max 5 elements
127+ function GetRanking ()
128+ local ranking = {}
129+ local result = GetRankingQuery ()
130+ for i = 1 , # result , 1 do
131+ local name = MySQL .scalar .await (
132+ ' SELECT CONCAT(firstname, " ", lastname) FROM characters WHERE unique_id = ?' ,
133+ { result [i ].identifier }
134+ )
135+ local level = GetJobTypeForXP (result [i ].xp )
136+ table.insert (ranking , {
137+ name = name ,
138+ level = level ,
139+ xp = result [i ].xp
140+ })
141+ end
142+
143+ return ranking
144+ end
145+
118146MySQL .ready (function ()
119147 if not FRAMEWORK .IsJobExisting (Config .JobName ) then
120148 lib .print .error (string.format (" `%s` job doesnt exists!! Add this job in your framework" , Config .JobName ))
0 commit comments