rock-mod
Version:
Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.
81 lines (80 loc) • 2.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MockPlayersManager = void 0;
const MockPlayer_1 = require("./MockPlayer");
const MockEntitiesManager_1 = require("../entity/MockEntitiesManager");
const RockMod_1 = require("../../../RockMod");
const Vectors_1 = require("../../../../shared/common/utils/math/Vectors");
const shared_1 = require("../../../../shared");
const types_1 = require("../../../net/common/events/types");
class MockPlayersManager extends MockEntitiesManager_1.MockEntitiesManager {
_nextId;
constructor() {
super({
baseObjectsType: "player",
});
this._nextId = 0;
}
getByName(name) {
const player = this.findByName(name);
if (!player) {
throw new Error(`Player with name ${name} not found`);
}
return player;
}
findByName(name) {
for (const player of this.iterator.all()) {
if (player.name === name) {
return player;
}
}
return null;
}
getBySocialClub(socialClub) {
const player = this.findBySocialClub(socialClub);
if (!player) {
throw new Error(`Player with socialClub ${socialClub} not found`);
}
return player;
}
findBySocialClub(socialClub) {
for (const player of this.iterator.all()) {
if (player.socialClub === socialClub) {
return player;
}
}
return null;
}
createPlayer(options = {}) {
const { id = this._nextId++, name = `Player${id}`, socialClub = `Player${id}`, position = new Vectors_1.Vector3D(0, 0, 0), dimension = 0, health = 100, armour = 0, ip = "127.0.0.1", serial = `MOCK_${id}`, } = options;
const player = new MockPlayer_1.MockPlayer({
id,
type: shared_1.BaseObjectType.Player,
name,
socialClub,
position,
dimension,
health,
armour,
ip,
serial,
model: 0,
rotation: new Vectors_1.Vector3D(0, 0, 0),
});
this.registerBaseObject(player);
return player;
}
simulateConnect(options = {}) {
const player = this.createPlayer(options);
RockMod_1.RockMod.instance.net.events.emitInternal(types_1.ServerInternalEventName.PlayerConnected, player);
return player;
}
simulateDisconnect(player) {
if (!this._baseObjects.has(player.id)) {
throw new Error(`Player with id ${player.id} not found`);
}
RockMod_1.RockMod.instance.net.events.emitInternal(types_1.ServerInternalEventName.PlayerDisconnected, player);
this.unregisterBaseObject(player);
}
}
exports.MockPlayersManager = MockPlayersManager;