mirror of
https://github.com/demostf/demo.js
synced 2026-06-04 09:04:13 +02:00
minor fixes
This commit is contained in:
parent
f78840dfcf
commit
aae67aec9c
4 changed files with 23 additions and 10 deletions
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -665,9 +665,7 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"text-encoding-shim": {
|
"text-encoding-shim": {
|
||||||
"version": "1.0.0",
|
"version": "git+https://gitlab.com/hongaar/text-encoding-shim.git#83ff0f77f48d05b8ce83ddc7ca49d8df61363b31"
|
||||||
"resolved": "https://registry.npmjs.org/text-encoding-shim/-/text-encoding-shim-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-3C8y0Kb2IeOalsShWo7NzTGHwNY="
|
|
||||||
},
|
},
|
||||||
"through2": {
|
"through2": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bit-buffer": "^0.2.3",
|
"bit-buffer": "^0.2.3",
|
||||||
"snappyjs": "^0.6.0",
|
"snappyjs": "^0.6.0",
|
||||||
"text-encoding-shim": "^1.0.0"
|
"text-encoding-shim": "git+https://gitlab.com/hongaar/text-encoding-shim.git#83ff0f77f48d05b8ce83ddc7ca49d8df61363b31"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^8.0.31",
|
"@types/node": "^8.0.31",
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,17 @@ import {EventEmitter} from 'events';
|
||||||
import {Header} from './Data/Header';
|
import {Header} from './Data/Header';
|
||||||
import {Match} from './Data/Match';
|
import {Match} from './Data/Match';
|
||||||
import {Parser} from './Parser';
|
import {Parser} from './Parser';
|
||||||
|
import {Packet} from './Data/Packet';
|
||||||
|
|
||||||
export class Analyser extends EventEmitter {
|
export class Analyser extends EventEmitter {
|
||||||
private parser: Parser;
|
private readonly parser: Parser;
|
||||||
private match: Match;
|
public readonly match: Match;
|
||||||
|
private analysed: boolean = false;
|
||||||
|
|
||||||
constructor(parser: Parser) {
|
constructor(parser: Parser) {
|
||||||
super();
|
super();
|
||||||
this.parser = parser;
|
this.parser = parser;
|
||||||
|
this.match = new Match(this.parser.parserState);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getHeader(): Header {
|
public getHeader(): Header {
|
||||||
|
|
@ -17,14 +20,20 @@ export class Analyser extends EventEmitter {
|
||||||
}
|
}
|
||||||
|
|
||||||
public getBody(): Match {
|
public getBody(): Match {
|
||||||
if (!this.match) {
|
if (!this.analysed) {
|
||||||
this.match = new Match(this.parser.parserState);
|
for (const packet of this.getPackets()) {
|
||||||
for (const packet of this.parser.getPackets()) {
|
|
||||||
this.match.handlePacket(packet);
|
|
||||||
this.emit('packet', packet);
|
this.emit('packet', packet);
|
||||||
}
|
}
|
||||||
this.emit('done');
|
this.emit('done');
|
||||||
}
|
}
|
||||||
|
this.analysed = true;
|
||||||
return this.match;
|
return this.match;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public * getPackets(): IterableIterator<Packet> {
|
||||||
|
for (const packet of this.parser.getPackets()) {
|
||||||
|
this.match.handlePacket(packet);
|
||||||
|
yield packet;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -130,4 +130,10 @@ export class Match {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getPlayerByUserId(userId: number): Player | null {
|
||||||
|
const user = this.getUserInfo(userId);
|
||||||
|
const player = this.playerEntityMap.get(user.entityId);
|
||||||
|
return player || null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue