UNPKG

rock-mod

Version:

Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.

82 lines (81 loc) 2.96 kB
"use strict"; 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.PlayerQuit, player, "disconnect", ""); this.unregisterBaseObject(player); RockMod_1.RockMod.instance.net.events.emitInternal(types_1.ServerInternalEventName.PlayerDisconnected, player); } } exports.MockPlayersManager = MockPlayersManager;