Skip to content
This repository was archived by the owner on Jul 2, 2024. It is now read-only.

Commit 9d4da5d

Browse files
committed
improve handling of teams
1 parent 3759f60 commit 9d4da5d

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

src/Data/PacketEntity.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,17 @@ export class PacketEntity {
4242
}
4343

4444
public getProperty(originTable: string, name: string) {
45-
for (const prop of this.props) {
46-
if (prop.definition.ownerTableName === originTable && prop.definition.name === name) {
47-
return prop;
48-
}
45+
const prop = PacketEntity.getPropByFullName(this.props, `${originTable}.${name}`);
46+
if (prop) {
47+
return prop;
4948
}
5049
throw new Error(`Property not found in entity (${originTable}.${name})`);
5150
}
5251

52+
public hasProperty(originTable: string, name: string) {
53+
return PacketEntity.getPropByFullName(this.props, `${originTable}.${name}`) !== null;
54+
}
55+
5356
public clone(): PacketEntity {
5457
const result = new PacketEntity(this.serverClass, this.entityIndex, this.pvs);
5558
for (const prop of this.props) {

src/PacketHandler/PacketEntities.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ function handleEntity(entity: PacketEntity, match: Match, message: PacketMessage
172172
}
173173
break;
174174
case'CTFTeam':
175-
try {
175+
if (entity.hasProperty('DT_Team', 'm_iTeamNum')) {
176176
const teamId = entity.getProperty('DT_Team', 'm_iTeamNum').value as TeamNumber;
177177
if (!match.teams.has(teamId)) {
178178
const team = {
@@ -185,7 +185,7 @@ function handleEntity(entity: PacketEntity, match: Match, message: PacketMessage
185185
match.teams.set(teamId, team);
186186
match.teamEntityMap.set(entity.entityIndex, team);
187187
}
188-
} catch (e) {
188+
} else {
189189
const team = match.teamEntityMap.get(entity.entityIndex);
190190
if (!team) {
191191
throw new Error(`No team with entity id: ${entity.entityIndex}`);
@@ -208,7 +208,6 @@ function handleEntity(entity: PacketEntity, match: Match, message: PacketMessage
208208

209209
}
210210
}
211-
// process.exit();
212211
}
213212
break;
214213
case 'CObjectSentrygun':

0 commit comments

Comments
 (0)