leaderboard5
v1.1.1
Published
Easily create game leaderboards
Downloads
4
Maintainers
Readme
Leaderboard5
Leaderboard5 is a javascript library for making leaderboards for games. See/clone a working example of the:
server here
client here
Installation
Use the package manager npm to install leaderboard5.
npm i leaderboard5
Usage
Standard usage (for deploying)
var l = require("leaderboard5");
var config = {
file:"ree.txt", // file where scoreboard is kept
delimeter:"\n", // delimeter seperating values
favornewest:true, // true if newer names should show up before older names IF the score is the same
maxlen:10, // length of scoreboard
sortby:"score", // the JSON property to sort by
sortof:l.Leaderboard5.HIGHEST, // Leaderboard5.LOWEST to sort lowest first (e.g. fastest time), Leaderboard5.HIGHEST to sort highest first (e.g. highest score)
createReqSystem:true, // true if you want an express request system to be created (/getleaderboard for json leaderboard, /sendscore?data=json&?key=key)
path:"/", // Set the path for multiple leaderboards on the same server
key:"03b77154-acdd-4af8-a0ab-7804dba11244",// Key needed to write to leaderboard
port:8080, // port to run express on
}
var allTimeLeaderBoard =new l.Leaderboard5(config);
To submit score (on game server)
const request = require('request');
function sendscore(name,score){
request('http://myurl.com/sendscore?data='+JSON.stringify({name:name,score:score})+"&key=03b77154-acdd-4af8-a0ab-7804dba11244", function(err, res, body) { });
}
To get leaderboard (on client)
// simple Http Client
var HttpClient=function(){this.get=function(t,e){var n=new XMLHttpRequest;n.onreadystatechange=function(){4==n.readyState&&200==n.status&&e(n.responseText)},n.open("GET",t,!0),n.send(null)}};
var client = new HttpClient();
var url = "https://myurl.com";
client.get(url+"/getleaderboard",function(str){
var jsona = JSON.parse(str);
alert(str);
})
Basic usage (testing, no req system)
var l = require("leaderboard5");
var config = {
file:"ree.txt", // file where scoreboard is kept
delimeter:"\n", // delimeter seperating values
favornewest:true, // true if newer names should show up before older names IF the score is the same
maxlen:10, // length of scoreboard
sortby:"score", // the JSON property to sort by
sortof:l.Leaderboard5.HIGHEST, // Leaderboard5.LOWEST to sort lowest first (e.g. fastest time), Leaderboard5.HIGHEST to sort highest first (e.g. highest score)
createReqSystem:false, // true if you want an express request system to be created (/getleaderboard for json leaderboard, /sendscore?data=json&?key=key)
key:"123456", // Key needed to write to leaderboard
port:8080, // port to run express on
}
var allTimeLeaderBoard =new l.Leaderboard5(config);
allTimeLeaderBoard.clear(function(){
allTimeLeaderBoard.addPlay({name:"albert",score:5},function(){
});
});
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.