/*
The scoreboard is a simple wrapper around the Bukkit Scoreboard API.
It's only concerned with display of scores, not maintaining them - that's the game's job.
*/
module.exports = function( options ) {
var temp = {};
var ccScoreboard;
var DisplaySlot = org.bukkit.scoreboard.DisplaySlot;
return {
start: function( ) {
var objective,
slot,
ccObj;
ccScoreboard = server.scoreboardManager.getNewScoreboard();
for ( objective in options ) {
ccObj = ccScoreboard.registerNewObjective( objective, 'dummy' );
for ( slot in options[ objective ] ) {
ccObj.displaySlot = DisplaySlot[ slot ];
ccObj.displayName = options[ objective ][ slot ];
}
},
stop: function(){
var objective, slot;
ccScoreboard.getObjective(objective).unregister();
ccScoreboard.clearSlot( DisplaySlot[ slot ] );
update: function( objective, player, score ) {
if ( player.scoreboard && player.scoreboard != ccScoreboard ) {
temp[player.name] = player.scoreboard;
player.scoreboard = ccScoreboard;
ccScoreboard
.getObjective( objective )
.getScore( player )
.score = score;
restore: function( player ) {
// offlineplayers don't have a scoreboard
if ( player.scoreboard ) {
player.scoreboard = temp[ player.name ];
};