diff --git a/index.js b/index.js index b57be56..bf11d66 100644 --- a/index.js +++ b/index.js @@ -1 +1,2 @@ -module.exports = require(`./lib/MineplexAPIWrapper`); \ No newline at end of file +var MineplexAPIWrapper = require(`./lib/MineplexAPIWrapper`); +module.exports = MineplexAPIWrapper; \ No newline at end of file diff --git a/lib/Errors.js b/lib/Errors.js new file mode 100644 index 0000000..05be98a --- /dev/null +++ b/lib/Errors.js @@ -0,0 +1,3 @@ +module.exports = { + NOT_FOUND: `Not found` +}; \ No newline at end of file diff --git a/lib/MineplexAPIWrapper.js b/lib/MineplexAPIWrapper.js index b71fdf7..fbaa765 100644 --- a/lib/MineplexAPIWrapper.js +++ b/lib/MineplexAPIWrapper.js @@ -3,6 +3,8 @@ var ServerStatus = require('./ServerStatus'); var Player = require('./Player'); var Amplifiers = require('./Amplifier'); +var log = require('frozor-logger'); + class MineplexAPIWrapper{ constructor(apikey){ this.api = new MineplexAPI(apikey); @@ -41,6 +43,14 @@ class MineplexAPIWrapper{ callback(true, new Player.Player(res)); }); + }; + + getPlayerStats(player, callback){ + this.getPlayerInfo(player, (success, res)=>{ + if(!success) return callback(false, res); + + callback(true, res.getStats()); + }); } getPlayerFriends(player, callback){ diff --git a/lib/Player/Components/PlayerStats.js b/lib/Player/Components/PlayerStats.js index 4e3f841..6e27161 100644 --- a/lib/Player/Components/PlayerStats.js +++ b/lib/Player/Components/PlayerStats.js @@ -5,31 +5,39 @@ class PlayerStats{ for(var item in data){ var info = item.split('.'); var game = info[0]; - var stat = info[1]; + var stat = info.splice(1).join(' '); var value = data[item]; this.addStat(game, stat, value); } } - getStats(game){ + addStat(game, stat, value){ if(!this._stats[game]) this._stats[game] = {}; - return this._stats[game]; + this._stats[game][stat] = value; } - getStat(game, stat){ - var gameStats = this.getStats(game); - return (gameStats[stat]) ? gameStats[stat] : 0; + getStats(){ + return this._stats; } - addStat(game, stat, value){ + getStatsForGame(game){ if(!this._stats[game]) this._stats[game] = {}; - this._stats[game][stat] = value; + return this._stats[game]; + } + + getStatForGame(game, stat){ + var gameStats = this.getStatsForGame(game); + return (gameStats[stat]) ? gameStats[stat] : 0; } toString(){ return JSON.stringify(this._stats); } + + toJSON(){ + return this._stats; + } } module.exports = PlayerStats; \ No newline at end of file diff --git a/lib/Player/Player.js b/lib/Player/Player.js index 39037fb..afcd388 100644 --- a/lib/Player/Player.js +++ b/lib/Player/Player.js @@ -6,6 +6,8 @@ class Player extends PlayerComponents.Data{ this._accountId = data.accountId; this._rank = data.rank; this._lastLogin = new Date(data.lastLogin); + this._level = data.level; + this._levColor = data.levelColor; this.status = new PlayerComponents.Status(data.playerStatus); this.friends = new PlayerComponents.Friends(data.friends); this.stats = new PlayerComponents.Stats(data.playerStats); @@ -34,6 +36,14 @@ class Player extends PlayerComponents.Data{ getStats(){ return this.stats; } + + getLevel(){ + return this._level; + } + + getLevelColor(){ + return this._levColor; + } } module.exports = Player; \ No newline at end of file diff --git a/mineplex-api-wrapper.iml b/mineplex-api-wrapper.iml new file mode 100644 index 0000000..3f00c85 --- /dev/null +++ b/mineplex-api-wrapper.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file