so others may contribute
This commit is contained in:
43
code/player_names.js
Normal file
43
code/player_names.js
Normal 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 isn’t 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);
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user