player tracker plugin
- rename pguid to plrname - players haven't had GUIDs for ages, and it's easy to confuse with portal GUIDs - portal GUIDs removed. create a temporary unique string from the portal lat/lng - will be fine for player tracker itself
This commit is contained in:
parent
db3d9f25c8
commit
074eab268a
@ -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 += '<span style="font-weight:bold;margin-left:10px;">';
|
||||
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user