diff --git a/plugins/player-tracker.user.js b/plugins/player-tracker.user.js index cf1391c5..d8fc7832 100644 --- a/plugins/player-tracker.user.js +++ b/plugins/player-tracker.user.js @@ -2,7 +2,7 @@ // @id iitc-plugin-player-tracker@breunigs // @name IITC Plugin: Player tracker // @category Layer -// @version 0.10.4.@@DATETIMEVERSION@@ +// @version 0.10.5.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ @@ -111,15 +111,15 @@ window.plugin.playerTracker.getLimit = function() { window.plugin.playerTracker.discardOldData = function() { var limit = plugin.playerTracker.getLimit(); - $.each(plugin.playerTracker.stored, function(pguid, player) { + $.each(plugin.playerTracker.stored, function(plrname, player) { var i; var ev = player.events; for(i = 0; i < ev.length; i++) { if(ev[i].time >= limit) break; } if(i === 0) return true; - if(i === ev.length) return delete plugin.playerTracker.stored[pguid]; - plugin.playerTracker.stored[pguid].events.splice(0, i); + if(i === ev.length) return delete plugin.playerTracker.stored[plrname]; + plugin.playerTracker.stored[plrname].events.splice(0, i); }); } @@ -141,7 +141,7 @@ window.plugin.playerTracker.processNewData = function(data) { if(json[1] < limit) return true; // find player and portal information - var pguid, lat, lng, guid, name, address; + var plrname, lat, lng, guid, name, address; var skipThisMessage = false; $.each(json[2].plext.markup, function(ind, markup) { switch(markup[0]) { @@ -157,14 +157,17 @@ window.plugin.playerTracker.processNewData = function(data) { } break; case 'PLAYER': - pguid = markup[1].plain; + plrname = markup[1].plain; break; case 'PORTAL': // link messages are “player linked X to Y” and the player is at // X. lat = lat ? lat : markup[1].latE6/1E6; lng = lng ? lng : markup[1].lngE6/1E6; - guid = guid ? guid : markup[1].guid; + + // no GUID in the data any more - but we need some unique string. use the latE6,lngE6 + guid = guid ? guid : markup[1].latE6+","+markup[1].lngE6; + name = name ? name : markup[1].name; address = address ? address : markup[1].address; break; @@ -172,7 +175,7 @@ window.plugin.playerTracker.processNewData = function(data) { }); // skip unusable events - if(!pguid || !lat || !lng || !guid || skipThisMessage) return true; + if(!plrname || !lat || !lng || !guid || skipThisMessage) return true; var newEvent = { latlngs: [[lat, lng]], @@ -182,13 +185,13 @@ window.plugin.playerTracker.processNewData = function(data) { address: address }; - var playerData = window.plugin.playerTracker.stored[pguid]; + var playerData = window.plugin.playerTracker.stored[plrname]; // short-path if this is a new player if(!playerData || playerData.events.length === 0) { - plugin.playerTracker.stored[pguid] = { + plugin.playerTracker.stored[plrname] = { // this always resolves, as the chat delivers this data - nick: pguid, + nick: plrname, team: json[2].plext.team, events: [newEvent] }; @@ -209,7 +212,7 @@ window.plugin.playerTracker.processNewData = function(data) { if(evts[cmp].time === json[1]) { evts[cmp].latlngs.push([lat, lng]); evts[cmp].guids.push(guid); - plugin.playerTracker.stored[pguid].events = evts; + plugin.playerTracker.stored[plrname].events = evts; return true; } @@ -234,7 +237,7 @@ window.plugin.playerTracker.processNewData = function(data) { } // update player data - plugin.playerTracker.stored[pguid].events = evts; + plugin.playerTracker.stored[plrname].events = evts; }); } @@ -271,9 +274,9 @@ window.plugin.playerTracker.drawData = function() { var split = PLAYER_TRACKER_MAX_TIME / 4; var now = new Date().getTime(); - $.each(plugin.playerTracker.stored, function(pguid, playerData) { + $.each(plugin.playerTracker.stored, function(plrname, playerData) { if(!playerData || playerData.events.length === 0) { - console.warn('broken player data for pguid=' + pguid); + console.warn('broken player data for plrname=' + plrname); return true; } @@ -309,7 +312,7 @@ window.plugin.playerTracker.drawData = function() { } popup += ''; - var playerLevelDetails = window.plugin.guessPlayerLevels.fetchLevelDetailsByPlayer(pguid); + var playerLevelDetails = window.plugin.guessPlayerLevels.fetchLevelDetailsByPlayer(plrname); if(playerLevelDetails.min == 8) { popup += 'Level ' + getLevel(8); } else { @@ -429,7 +432,7 @@ window.plugin.playerTracker.handleData = function(data) { window.plugin.playerTracker.findUserPosition = function(nick) { nick = nick.toLowerCase(); var foundPlayerData = undefined; - $.each(plugin.playerTracker.stored, function(pguid, playerData) { + $.each(plugin.playerTracker.stored, function(plrname, playerData) { if (playerData.nick.toLowerCase() === nick) { foundPlayerData = playerData; return false;