so others may contribute

This commit is contained in:
Stefan Breunig
2013-02-01 13:11:14 +01:00
commit a07ee0cc3d
24 changed files with 3278 additions and 0 deletions

43
code/player_names.js Normal file
View File

@ -0,0 +1,43 @@
// PLAYER NAMES //////////////////////////////////////////////////////
// Player names are cached in local storage forever. There is no GUI
// element from within the total conversion to clean them, but you
// can run localStorage.clean() to reset it.
// retrieves player name by GUID. If the name is not yet available, it
// will be added to a global list of GUIDs that need to be resolved.
// The resolve method is not called automatically.
window.getPlayerName = function(guid) {
if(localStorage[guid]) return localStorage[guid];
// only add to queue if it isnt already
if(playersToResolve.indexOf(guid) === -1 && playersInResolving.indexOf(guid) === -1) {
console.log('resolving player guid=' + guid);
playersToResolve.push(guid);
}
return '{'+guid.slice(0, 12)+'}';
}
// resolves all player GUIDs that have been added to the list. Reruns
// renderPortalDetails when finished, so that then-unresolved names
// get replaced by their correct versions.
window.resolvePlayerNames = function() {
if(window.playersToResolve.length === 0) return;
var p = window.playersToResolve;
var d = {guids: p};
playersInResolving = window.playersInResolving.concat(p);
playersToResolve = [];
postAjax('getPlayersByGuids', d, function(dat) {
$.each(dat.result, function(ind, player) {
localStorage[player.guid] = player.nickname;
// remove from array
window.playersInResolving.splice(window.playersInResolving.indexOf(player.guid), 1);
});
if(window.selectedPortal)
window.renderPortalDetails(window.selectedPortal);
},
function() {
// append failed resolves to the list again
console.warn('resolving player guids failed: ' + p.join(', '));
window.playersToResolve.concat(p);
});
}