diff --git a/code/hooks.js b/code/hooks.js index f415fe62..b6a7ef6c 100644 --- a/code/hooks.js +++ b/code/hooks.js @@ -15,6 +15,9 @@ // required to successfully boot the plugin. // // Here’s more specific information about each event: +// playerNameResolved: called when unresolved player name get resolved. +// Argument is {names: object} which names[guid] is the +// resolved player name. // portalSelected: called when portal on map is selected/unselected. // Provide guid of selected and unselected portal. // mapDataRefreshStart: called when we start refreshing map data @@ -49,7 +52,7 @@ window._hooks = {} window.VALID_HOOKS = [ - 'portalSelected', + 'playerNameResolved', 'portalSelected', 'mapDataRefreshStart', 'mapDataRefreshEnd', 'portalAdded', 'linkAdded', 'fieldAdded', 'portalDetailsUpdated', diff --git a/code/player_names.js b/code/player_names.js index d8bfda37..0f895d53 100644 --- a/code/player_names.js +++ b/code/player_names.js @@ -68,9 +68,11 @@ window.resolvePlayerNames = function() { window.playersInResolving = window.playersInResolving.concat(p); postAjax('getPlayersByGuids', d, function(dat) { + var resolvedName = {}; if(dat.result) { $.each(dat.result, function(ind, player) { window.setPlayerName(player.guid, player.nickname); + resolvedName[player.guid] = player.nickname; // remove from array window.playersInResolving.splice(window.playersInResolving.indexOf(player.guid), 1); }); @@ -82,6 +84,9 @@ window.resolvePlayerNames = function() { //therefore, not a good idea to automatically retry by adding back to the playersToResolve list } + // Run hook 'playerNameResolved' with the resolved player names + window.runHooks('playerNameResolved', {names: resolvedName}); + //TODO: have an event triggered for this instead of hard-coded single function call if(window.selectedPortal) window.renderPortalDetails(window.selectedPortal);