Use player map for scoreboard players
parent
36a1166cae
commit
403b6d8f34
|
@ -17,13 +17,12 @@ const parseWarLog = (lineArray, war) => {
|
|||
players: []
|
||||
};
|
||||
|
||||
const addPlayersIfNotExists = (inputPlayers) => {
|
||||
inputPlayers.forEach(player => {
|
||||
const addPlayerIfNotExists = (inputPlayer) => {
|
||||
const player = getPlayerAndFractionFromString(inputPlayer);
|
||||
if (player && player.name && player.fraction && !playerArrayContains(stats.players, player)) {
|
||||
player['warId'] = war._id;
|
||||
stats.players.push(player);
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
lineArray.some(line => {
|
||||
|
@ -52,14 +51,12 @@ const parseWarLog = (lineArray, war) => {
|
|||
friendlyFire: shooter ? target.fraction === shooter.fraction : false,
|
||||
fraction: shooter ? shooter.fraction : 'NONE'
|
||||
});
|
||||
|
||||
addPlayersIfNotExists([shooter, target]);
|
||||
}
|
||||
|
||||
/**
|
||||
* BUDGET
|
||||
*/
|
||||
if (line.includes('Budget')) {
|
||||
else if (line.includes('Budget')) {
|
||||
stats.clean.push(line);
|
||||
const budg = line.split(' ');
|
||||
if (line.includes('Endbudget')) {
|
||||
|
@ -79,7 +76,7 @@ const parseWarLog = (lineArray, war) => {
|
|||
/**
|
||||
* FLAG
|
||||
*/
|
||||
if (line.includes('Fahne')) {
|
||||
else if (line.includes('Fahne')) {
|
||||
stats.clean.push(line);
|
||||
const playerName = line.substring(line.lastIndexOf('t von ') + 6, line.lastIndexOf(' :OPT LOG END'));
|
||||
const flagFraction = line.includes('NATO Flagge') ? 'BLUFOR' : 'OPFOR';
|
||||
|
@ -97,7 +94,7 @@ const parseWarLog = (lineArray, war) => {
|
|||
/**
|
||||
* POINTS
|
||||
*/
|
||||
if (line.includes('Punkte')) {
|
||||
else if (line.includes('Punkte')) {
|
||||
stats.clean.push(line);
|
||||
const pt = line.split(' ');
|
||||
|
||||
|
@ -114,7 +111,7 @@ const parseWarLog = (lineArray, war) => {
|
|||
/**
|
||||
* RESPAWN
|
||||
*/
|
||||
if (line.includes('Respawn')) {
|
||||
else if (line.includes('Respawn')) {
|
||||
stats.clean.push(line);
|
||||
const resp = line.split(' ');
|
||||
const playerName = line.substring(line.lastIndexOf('Spieler:') + 9, line.lastIndexOf('-') - 1);
|
||||
|
@ -124,7 +121,7 @@ const parseWarLog = (lineArray, war) => {
|
|||
/**
|
||||
* REVIVE
|
||||
*/
|
||||
if (line.includes('Revive')) {
|
||||
else if (line.includes('Revive')) {
|
||||
stats.clean.push(line);
|
||||
const stabilized = !!line.includes('stabilisiert');
|
||||
const medicName = line.substring(line.lastIndexOf('wurde von ') + 10,
|
||||
|
@ -141,14 +138,12 @@ const parseWarLog = (lineArray, war) => {
|
|||
patient: patient.name,
|
||||
fraction: medic.fraction
|
||||
});
|
||||
|
||||
addPlayersIfNotExists([medic, patient]);
|
||||
}
|
||||
|
||||
/**
|
||||
* TRANSPORT
|
||||
*/
|
||||
if (line.includes('Transport ||')) {
|
||||
else if (line.includes('Transport ||')) {
|
||||
stats.clean.push(line);
|
||||
const driverString = line.substring(line.lastIndexOf('wurde von ') + 10, line.lastIndexOf(' eingeflogen'));
|
||||
const driver = getPlayerAndFractionFromString(driverString);
|
||||
|
@ -164,8 +159,14 @@ const parseWarLog = (lineArray, war) => {
|
|||
fraction: driver.fraction,
|
||||
distance: distance
|
||||
});
|
||||
}
|
||||
|
||||
addPlayersIfNotExists([driver, passenger]);
|
||||
/**
|
||||
* PLAYERS
|
||||
*/
|
||||
else if (line.includes('Fraktionsübersicht ||')) {
|
||||
const playerString = line.substring(line.lastIndexOf('Fraktionsübersicht || ') + 22, line.lastIndexOf(' :OPT LOG END'));
|
||||
addPlayerIfNotExists(playerString)
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue